/* ==========================================================================
   DESIGN TOKENS 
   ========================================================================== */
:root {
    /* 1. Estrutura, Painéis e Textos */
    --p-card-bg: #f8fafc; 
    --p-card-borda: #e2e8f0;
    --p-card-sombra: rgba(15, 23, 42, 0.05);
    
    --p-texto-titulo: #1e293b;
    --p-texto-base: #475569;
    --p-texto-suave: #64748b;
    --p-texto-destaque: #3b82f6;

    /* 2. Inputs e Formulários */
    --p-input-bg: #f8fafc;
    --p-input-borda: #cbd5e1;
    --p-input-readonly-bg: #f1f5f9;
    --p-input-upload-bg: #f1f5f9;
    --p-input-focus: #2563eb;
    --p-input-btn-upload: #2563eb;
    --p-input-btn-upload-hover: #1d4ed8;

    /* 3. Listas e Modais */
    --p-lista-bg: #f8fafc;
    --p-lista-borda: #e2e8f0;
    --p-modal-overlay: rgba(15, 23, 42, 0.6);
    --p-modal-sombra: rgba(15, 23, 42, 0.3);

    /* =========================================================
       4. CORES SEMÂNTICAS (Blindadas contra Temas)
       ========================================================= */
    --sem-primario: #2563eb;       /* Ações principais (Azul) */
    --sem-primario-hover: #1d4ed8;
    --sem-perigo: #dc2626;         /* Botões de exclusão/fechar (Vermelho) */
    --sem-sucesso: #16a34a;        /* Toggles e chips selecionados (Verde) */
    --sem-desligado: #9ca3af;      /* Toggles desligados (Cinza) */
    --sem-secundario: #64748b;     /* Botões neutros */
    
    --sem-admin-borda: #f59e0b;    /* Borda da seção Admin (Laranja) */
    --sem-dev-borda: #8b5cf6;      /* Borda da seção Dev (Roxo) */
    
    /* Chips Específicos */
    --p-chip-bg: #f1f5f9;
    --p-chip-borda: transparent;
    --p-chip-sombra: #e2e8f0;
    --sem-chip-mat-sel: #10b981;             /* Verde de material selecionado */
    --sem-chip-mat-sombra: rgba(16, 185, 129, 0.4);
    --sem-chip-turma-sel: #7c3aed;           /* Roxo de turma selecionada */
    --sem-chip-turma-sombra: rgba(124, 58, 237, 0.3);

    /* 5. Estruturas Menores (Caixas de conteúdo) */
    --p-box-bg: #f1f5f9;
    --p-box-borda: #e2e8f0;
    --p-divisor: rgba(59, 130, 246, 0.5);

    /* 6. Semânticas de Módulos */
    /* EJA */
    --sem-eja-bg: #e0e7ff; --sem-eja-borda: #4f46e5; --sem-eja-titulo: #4338ca; --sem-eja-texto: #334155;
    /* Material de Apoio */
    --sem-material-bg: #f0fdf4; --sem-material-borda: #bbf7d0; --sem-material-texto: #1e293b; --sem-material-hover: #dcfce7;
    /* Boletim (Aprovado/Reprovado/Cursando) */
    --sem-cursando-bg: #fef9c3; --sem-cursando-borda: #fde047; --sem-cursando-texto: #854d0e;
    --sem-aprovado-bg: #dcfce7; --sem-aprovado-borda: #86efac; --sem-aprovado-texto: #14532d;
    --sem-reprovado-bg: #fee2e2; --sem-reprovado-borda: #fca5a5; --sem-reprovado-texto: #991b1b;
    /* Botões de Ação Secundária/Perigo */
    --sem-perigo-light-bg: rgba(239, 68, 68, 0.1);
    --sem-perigo-light-borda: rgba(239, 68, 68, 0.3);

    /* 7. Caixas de Mensagens e Alertas */
    --sem-denuncia-bg: #fef2f2; --sem-denuncia-borda: #ef4444;
    --sem-resposta-bg: #f0fdf4; --sem-resposta-borda: #bbf7d0; --sem-resposta-texto: #166534; --sem-resposta-destaque: #14532d;
    --sem-badge-aguarda-bg: #f1f5f9; --sem-badge-aguarda-texto: #64748b;
    
    --sem-aviso-amarelo-bg: #fff3cd; --sem-aviso-amarelo-borda: #ffeeba; --sem-aviso-amarelo-texto: #856404;
    --sem-info-azul-bg: #eff6ff; --sem-info-azul-borda: #60a5fa; --sem-info-azul-texto: #1e40af; --sem-info-azul-destaque: #1d4ed8;

    /* 8. Widgets de Configuração */
    --sem-niver-bg: #fdf2f8; --sem-niver-borda: #fbcfe8; --sem-niver-texto: #9d174d; --sem-niver-code-bg: #f8fafc; --sem-niver-code-texto: #be185d;
    --sem-crono-bg: #ecfdf5; --sem-crono-borda: #10b981; --sem-crono-texto: #065f46;
    
    --cor-divisor-pontilhado: #06b6d4;

    /* 9. MAI Grade */
    --maigrade-bg: rgba(14, 165, 233, 0.1);
    --maigrade-border: #0ea5e9;
    --maigrade-icone: #0ea5e9;
    --maigrade-titulo: #0284c7;

   /* 10. Reserva de Espaços */
    --sem-reserva-primario: #f59e0b;
    --sem-reserva-bg: #fffbeb;
    --sem-reserva-borda: #fcd34d;
    --sem-reserva-texto: #92400e;
    --sem-reserva-sombra: rgba(245, 158, 11, 0.3);
}

body.dark {
    --p-card-bg: #1e293b;
    --p-card-borda: #334155;
    --p-card-sombra: rgba(2, 6, 23, 0.4);
    
    --p-texto-titulo: #f8fafc;
    --p-texto-base: #cbd5e1;
    --p-texto-suave: #94a3b8;
    --p-texto-destaque: #60a5fa;

    /* 2. Inputs */
    --p-input-bg: #0f172a;
    --p-input-borda: #475569;
    --p-input-readonly-bg: #1e293b;
    --p-input-upload-bg: #0f172a;
    --p-input-focus: #60a5fa;
    --p-input-btn-upload: #3b82f6;
    --p-input-btn-upload-hover: #2563eb;

    /* 3. Listas e Modais */
    --p-lista-bg: #0f172a;
    --p-lista-borda: #334155;
    --p-modal-overlay: rgba(2, 6, 23, 0.8);
    --p-modal-sombra: rgba(2, 6, 23, 0.5);

    /* 4. Semânticas Adaptadas */
    --sem-primario: #3b82f6;
    --sem-primario-hover: #2563eb;
    --sem-sucesso: #059669;
    
    --p-chip-bg: #1e293b;
    --p-chip-borda: #475569;
    --p-chip-sombra: #0f172a;
    --sem-chip-mat-sel: #059669;
    --sem-chip-mat-sombra: rgba(5, 150, 105, 0.5);

    --p-box-bg: #0f172a;
    --p-box-borda: #334155;
    --p-divisor: rgba(248, 250, 252, 0.2);

    --sem-eja-bg: #1e1b4b; --sem-eja-borda: #6366f1; --sem-eja-titulo: #818cf8; --sem-eja-texto: #cbd5e1;
    --sem-material-bg: #064e3b; --sem-material-borda: #065f46; --sem-material-texto: #e2e8f0; --sem-material-hover: #065f46;
    
    --sem-cursando-bg: #422006; --sem-cursando-borda: #a16207; --sem-cursando-texto: #fef08a;
    --sem-aprovado-bg: #064e3b; --sem-aprovado-borda: #166534; --sem-aprovado-texto: #bbf7d0;
    --sem-reprovado-bg: #450a0a; --sem-reprovado-borda: #991b1b; --sem-reprovado-texto: #fca5a5;
    
    --sem-perigo-light-bg: rgba(239, 68, 68, 0.2);
    --sem-perigo-light-borda: #7f1d1d;

    --sem-denuncia-bg: #450a0a; --sem-denuncia-borda: #ef4444;
    --sem-resposta-bg: #064e3b; --sem-resposta-borda: #065f46; --sem-resposta-texto: #86efac; --sem-resposta-destaque: #dcfce7;
    --sem-badge-aguarda-bg: #334155; --sem-badge-aguarda-texto: #cbd5e1;

    --sem-aviso-amarelo-bg: #422006; --sem-aviso-amarelo-borda: #854d0e; --sem-aviso-amarelo-texto: #fde047;
    --sem-info-azul-bg: #172554; --sem-info-azul-borda: #3b82f6; --sem-info-azul-texto: #dbeafe; --sem-info-azul-destaque: #93c5fd;

    --sem-niver-bg: #311322; --sem-niver-borda: #701a3e; --sem-niver-texto: #f9a8d4; --sem-niver-code-bg: #4c1d33; --sem-niver-code-texto: #fce7f3;
    --sem-crono-bg: #064e3b; --sem-crono-borda: #059669; --sem-crono-texto: #34d399;
    
    --cor-divisor-pontilhado: #1e40af;

    --maigrade-bg: rgba(14, 165, 233, 0.15);
    --maigrade-border: #38bdf8;
    --maigrade-icone: #38bdf8;
    --maigrade-titulo: #7dd3fc;

    --sem-reserva-primario: #fbbf24;
    --sem-reserva-bg: #422006;
    --sem-reserva-borda: #9a3412;
    --sem-reserva-texto: #fde68a;
    --sem-reserva-sombra: rgba(251, 191, 36, 0.2);
}

/* =========================================================
   1. LAYOUT GERAL & DASHBOARD
   ========================================================= */
.dashboard-container {
    max-width: 900px; margin: 20px auto; padding: 20px; display: flex; flex-direction: column; gap: 20px;
}
.col-esquerda, .col-direita {
    display: flex; flex-direction: column; gap: 20px; width: 100%;
}
.card-painel {
    background: var(--p-card-bg); padding: 25px; border-radius: 12px;
    box-shadow: 0 4px 15px var(--p-card-sombra); border: 1px solid var(--p-card-borda); height: fit-content;
}

.painel-header {
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid var(--p-card-borda); padding-bottom: 15px; margin-bottom: 20px;
}

/* Botões Padrão */
.btn-acao {
    background: var(--sem-primario); color: #ffffff; padding: 10px 20px; border: none; border-radius: 8px; cursor: pointer;
    font-weight: 500; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    transition: none !important; animation: none !important; transform: none !important; opacity: 1 !important;
}
.btn-acao:hover { filter: brightness(1.1); transform: none; }
.btn-acao:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }

.btn-danger { background: var(--sem-perigo); }
.btn-toggle { background: var(--sem-sucesso); }
.btn-toggle.off { background: var(--sem-desligado); }
.btn-secondary { background: var(--sem-secundario); }

.secao-admin { display: none; border-left: 4px solid var(--sem-admin-borda); padding-left: 20px; }
.secao-dev { display: none; border-left: 4px solid var(--sem-dev-borda); padding-left: 20px; }

/* =========================================================
   2. PERFIL (HERO SECTION)
   ========================================================= */
.profile-hero { text-align: center; padding: 40px 20px; }

.avatar-large {
    width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
    border: 4px solid var(--sem-primario); margin-bottom: 15px;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.3);
}

.profile-name { font-size: 24px; margin: 5px 0; color: var(--p-texto-titulo); font-weight: bold; }
.profile-username { font-size: 16px; color: var(--p-texto-destaque); font-weight: 600; margin-top: -5px; margin-bottom: 5px; }
.profile-email { color: var(--p-texto-suave); font-size: 14px; margin-bottom: 25px; }
.profile-actions { display: flex; justify-content: center; gap: 15px; }
.hero-separator { margin-top: 30px; padding-top: 20px; text-align: center; border-top: 1px solid var(--p-texto-destaque); }
#conteudo-cronometro { transition: opacity 0.3s ease-in-out; }

/* =========================================================
   3. FORMULÁRIOS & INPUTS
   ========================================================= */
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }
.full-width { grid-column: 1 / -1; }

.input-group label, .titulo-secao {
    display: block; margin-bottom: 5px; font-weight: bold; font-size: 13px; color: var(--p-texto-base);
}
.input-group input, .input-group textarea, .input-group select {
    width: 100%; padding: 10px; border: 1px solid var(--p-input-borda); border-radius: 6px; box-sizing: border-box;
    background: var(--p-input-bg); color: var(--p-texto-titulo); font-family: inherit;
}
input[readonly] { background-color: var(--p-input-readonly-bg); color: var(--p-texto-suave); cursor: not-allowed; border-color: var(--p-card-borda); }

/* --- ESTILO DO INPUT DE ARQUIVO (UPLOAD) --- */
#mat-arquivo, #aviso-imagem, #input-csv-aniversarios, #pgm-arquivo {
    width: 100%; padding: 8px; background: var(--p-input-upload-bg); border: 1px solid var(--p-input-borda);
    border-radius: 8px; color: var(--p-texto-base); font-size: 14px; cursor: pointer; transition: 0.2s;
}
#mat-arquivo:hover, #aviso-imagem:hover, #input-csv-aniversarios:hover, #pgm-arquivo:hover { 
    border-color: var(--p-input-focus); background: var(--p-input-bg); 
}

#mat-arquivo::file-selector-button, #aviso-imagem::file-selector-button, #input-csv-aniversarios::file-selector-button, #pgm-arquivo::file-selector-button {
    margin-right: 15px; border: none; background: var(--p-input-btn-upload); padding: 8px 16px; border-radius: 6px;
    color: #ffffff; font-weight: 600; cursor: pointer; transition: background .2s; font-family: inherit;
}
#mat-arquivo::file-selector-button:hover, #aviso-imagem::file-selector-button:hover, #input-csv-aniversarios::file-selector-button:hover, #pgm-arquivo::file-selector-button:hover {
    background: var(--p-input-btn-upload-hover);
}


/* =========================================================
   4. MODAIS (ESTRUTURA GERAL)
   ========================================================= */
.modal-settings-overlay, .modal-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--p-modal-overlay);
    backdrop-filter: blur(5px); z-index: 2000; justify-content: center; align-items: center; padding: 20px; box-sizing: border-box;
}

.modal-settings-content, .modal-content {
    background: var(--p-card-bg); width: 100%; max-width: 600px; border-radius: 16px; padding: 25px;
    box-shadow: 0 10px 40px var(--p-modal-sombra); max-height: 90vh; overflow-y: auto; position: relative;
    animation: slideUp 0.3s ease-out; border: 1px solid var(--p-card-borda); color: var(--p-texto-titulo);
}
@keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.modal-header {
    display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;
    border-bottom: 1px solid var(--p-card-borda); padding-bottom: 15px;
}
.modal-header h2 { margin: 0; font-size: 20px; color: var(--p-texto-titulo); }

.btn-close-modal, .btn-fechar-modal {
    background: none; border: none; font-size: 24px; color: var(--p-texto-suave); cursor: pointer; transition: 0.2s;
}
.btn-close-modal:hover, .btn-fechar-modal:hover { color: var(--sem-perigo); }

/* =========================================================
   5. ALERTA DINÂMICO (MAI ALERT)
   ========================================================= */
.mai-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--p-modal-overlay); z-index: 9999;
    display: none; justify-content: center; align-items: center; backdrop-filter: blur(4px);
}
.mai-modal-overlay.active { display: flex; animation: fadeIn 0.2s; }

.mai-modal-box {
    background: var(--p-card-bg); width: 90%; max-width: 400px; padding: 25px; border-radius: 16px; text-align: center;
    box-shadow: 0 10px 30px var(--p-modal-sombra); border: 1px solid var(--p-card-borda); transform: scale(0.95); animation: popIn 0.3s forwards;
}

.mai-modal-icon { font-size: 40px; margin-bottom: 15px; }
.mai-modal-title { font-size: 20px; font-weight: bold; color: var(--p-texto-titulo); margin-bottom: 10px; }
.mai-modal-text { font-size: 14px; color: var(--p-texto-base); margin-bottom: 20px; line-height: 1.5; }
.mai-modal-actions { display: flex; gap: 10px; justify-content: center; }

.mai-btn { padding: 10px 20px; border-radius: 8px; border: none; cursor: pointer; font-weight: bold; font-size: 14px; flex: 1; }
.mai-btn-confirm, .mai-btn-close { background: var(--sem-primario); color: #ffffff; }
.mai-btn-cancel { background: var(--p-box-bg); color: var(--p-texto-base); border: 1px solid var(--p-card-borda); }

@keyframes popIn { to { transform: scale(1); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* =========================================================
   6. LISTAS ADMINISTRATIVAS
   ========================================================= */
.lista-admin { list-style: none; padding: 0; margin: 10px 0 0 0; max-height: 300px; overflow-y: auto; }

.lista-admin li {
    display: flex; justify-content: space-between; align-items: center; background: var(--p-lista-bg);
    padding: 12px; border-bottom: 1px solid var(--p-lista-borda); font-size: 13px; border-radius: 8px; margin-bottom: 8px; transition: 0.2s;
}
.lista-admin li strong { color: var(--p-texto-titulo); font-size: 14px; display: block; margin-bottom: 2px; }
.lista-admin li span { color: var(--p-texto-suave); }
.lista-admin li a { color: var(--sem-primario) !important; }

body.dark #modal-gerenciar-materiais div[style*="background: #f1f5f9"] { background-color: var(--p-lista-bg) !important; border-color: var(--p-card-borda); }

/* =========================================================
    7. CHIPS
    ========================================================= */
#grid-chips-materiais, .grid-chips-turmas-novo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 5px; }

.chip-turma-mat, .chip-turma {
    background-color: var(--p-chip-bg); color: var(--p-texto-suave); border: 1px solid var(--p-chip-borda);
    padding: 10px 0; text-align: center; border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.2s ease; user-select: none; box-shadow: 0 2px 0 var(--p-chip-sombra);
}
.chip-turma-mat:hover, .chip-turma:hover { filter: brightness(0.95); }
body.dark .chip-turma-mat:hover, body.dark .chip-turma:hover { filter: brightness(1.2); color: #ffffff; }

.chip-turma-mat.selected {
    background-color: var(--sem-chip-mat-sel); color: #ffffff; border-color: var(--sem-chip-mat-sel); box-shadow: 0 4px 10px var(--sem-chip-mat-sombra); transform: translateY(-1px);
}
.chip-turma.selected {
    background-color: var(--sem-chip-turma-sel); border-color: var(--sem-chip-turma-sel); color: #ffffff; box-shadow: 0 2px 5px var(--sem-chip-turma-sombra);
}

/* =========================================================
    8. FUNCIONALIDADES ESPECÍFICAS
    ========================================================= */
.divisor-funcao { margin: 25px 0; border: 0; border-top: 2px dashed var(--p-divisor); transition: border-color 0.3s ease; }

/* Estilo do Card da EJA */
.box-refeicao.eja { border-left: 4px solid var(--sem-eja-borda); background: var(--sem-eja-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; }
.box-refeicao.eja h4 { margin: 0 0 10px 0; color: var(--sem-eja-titulo); }
.box-refeicao.eja .nota-eja { font-size: 11px; opacity: 0.7; margin-top: 5px; color: var(--sem-eja-texto); }

/* Box de Troca de Senha/Email */
.box-troca { background: var(--p-box-bg); padding: 15px; border-radius: 8px; border: 1px solid var(--p-box-borda); margin-top: 10px; }
.box-troca h4 { margin: 0 0 10px 0; color: var(--p-texto-destaque); font-size: 14px; }

/* Acordeão (Sanfona) */
.accordion-header { display: flex; justify-content: space-between; align-items: center; cursor: pointer; padding: 12px 0; border-bottom: 1px solid transparent; transition: 0.2s; user-select: none; }
.accordion-header:hover { opacity: 0.8; }
.accordion-header h3 { margin: 0; font-size: 16px; color: var(--p-texto-titulo); }
.accordion-header i { transition: transform 0.3s ease; color: var(--p-texto-suave); }

/* Tarefas */
.item-tarefa { display: flex; justify-content: space-between; align-items: center; background: var(--p-box-bg); padding: 10px; border-radius: 6px; margin-bottom: 8px; border: 1px solid var(--p-box-borda); transition: 0.2s; }
.item-tarefa.concluida span { text-decoration: line-through; color: var(--p-texto-suave); }

.btn-check { background: none; border: 1px solid var(--p-input-borda); width: 24px; height: 24px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; color: transparent; margin-right: 10px; }
.item-tarefa.concluida .btn-check { background: var(--sem-sucesso); border-color: var(--sem-sucesso); color: #ffffff; }

.btn-trash { background: none; border: none; color: var(--sem-perigo); cursor: pointer; }

/* Materiais de Apoio (Aluno) */
.item-material { background: var(--sem-material-bg); border: 1px solid var(--sem-material-borda); padding: 12px; border-radius: 8px; display: flex; align-items: center; justify-content: space-between; transition: 0.2s; text-decoration: none; color: var(--sem-material-texto); }
.item-material:hover { transform: translateX(5px); background: var(--sem-material-hover); }
.subtexto-material { font-size: 11px; color: inherit; opacity: 0.8; margin-top: 2px; }

/* =========================================================
       9. RESPONSIVIDADE (PC)
       ========================================================= */
@media (min-width: 1100px) {
    .dashboard-container { max-width: 98%; margin: 0 auto; padding: 30px; display: grid; grid-template-columns: 350px 1fr; gap: 30px; align-items: start; }
    .dashboard-container .card-painel, #painel-aluno, #painel-professor, #editor-horario-prof, #painel-dev { width: 100%; max-width: none !important; }
    .form-grid { gap: 20px; }
    #container-datas-multiplas { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 15px 25px; padding: 20px; margin-top: 20px; align-items: end; }
    #container-datas-multiplas p { grid-column: 1 / -1; margin-bottom: 10px; }
    #container-datas-multiplas label { display: flex; flex-direction: column; font-size: 13px; font-weight: 600; }
}

/* =========================================================
       10. PAINEL ALUNO & BOLETIM (CARD LAYOUT)
       ========================================================= */
.grid-boletim { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; align-items: center; margin-bottom: 15px; padding: 15px; background: var(--p-card-bg); border: 1px solid var(--p-card-borda); border-radius: 12px; box-shadow: 0 2px 5px var(--p-card-sombra); }
.grid-boletim>div:nth-child(1) { grid-column: 1 / -1; font-weight: bold; color: var(--p-texto-titulo); font-size: 16px; margin-bottom: 5px; text-transform: capitalize; }
.grid-boletim>div:nth-child(2), .grid-boletim>div:nth-child(3), .grid-boletim>div:nth-child(4) { display: flex; justify-content: center; }

.status-nota { grid-column: 1 / -1; margin-top: 5px; padding: 10px; border-radius: 8px; text-align: center; font-weight: 800; font-size: 12px; text-transform: uppercase; }
.header-boletim { display: none !important; }

.input-nota { width: 100%; text-align: center; padding: 12px; border: 1px solid var(--p-input-borda); border-radius: 8px; background: var(--p-input-bg); font-weight: bold; color: var(--p-texto-titulo); font-size: 14px; }
.col-tri { display: flex; flex-direction: column; align-items: center; width: 100%; }
.label-tri { font-size: 10px; color: var(--p-texto-suave); font-weight: bold; text-transform: uppercase; margin-bottom: 3px; }

.status-nota.cursando { background-color: var(--sem-cursando-bg); color: var(--sem-cursando-texto) !important; border: 1px solid var(--sem-cursando-borda); }
.status-nota.aprovado { background-color: var(--sem-aprovado-bg); color: var(--sem-aprovado-texto) !important; border: 1px solid var(--sem-aprovado-borda); }
.status-nota.reprovado { background-color: var(--sem-reprovado-bg); color: var(--sem-reprovado-texto) !important; border: 1px solid var(--sem-reprovado-borda); }

body.dark #painel-aluno>div[style*="background: #fff"], body.dark div[style*="border-left: 5px solid #8b5cf6"] { background-color: var(--p-card-bg) !important; border-color: var(--p-card-borda) !important; color: var(--p-texto-titulo) !important; }
body.dark #painel-aluno h2, body.dark #painel-aluno h3 { color: var(--p-texto-titulo) !important; }
body.dark #painel-aluno p { color: var(--p-texto-suave) !important; }
body.dark #painel-aluno div[style*="background: #f8fafc"] { background-color: var(--p-box-bg) !important; border-color: var(--p-box-borda) !important; }

body.dark .btn-sobre-escola { background: var(--p-box-bg) !important; border-color: var(--p-box-borda) !important; }
body.dark .btn-sobre-escola h3 { color: var(--p-texto-titulo) !important; }
body.dark .btn-sobre-escola p { color: var(--p-texto-suave) !important; }
body.dark .btn-sobre-escola i.fa-chevron-right { color: var(--p-texto-base) !important; }

/* =========================================================
    11. MODAL CRIAR GRUPO
    ========================================================= */
.box-selecao-turmas { background: var(--p-box-bg); border-radius: 12px; padding: 15px; border: 1px solid var(--p-box-borda); }
.header-selecao { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.label-selecao { font-size: 13px; font-weight: bold; color: var(--p-texto-titulo); }

.btn-limpar-selecao { background: var(--sem-perigo-light-bg); border: 1px solid var(--sem-perigo-light-borda); color: var(--sem-perigo); font-size: 11px; font-weight: bold; cursor: pointer; text-transform: uppercase; padding: 4px 10px; border-radius: 6px; transition: 0.2s; }
.btn-limpar-selecao:hover { background: var(--sem-perigo); color: #ffffff; }

.filtros-rapidos { display: flex; gap: 8px; margin-bottom: 12px; }
.btn-filtro-serie { flex: 1; background: var(--p-input-bg); border: 1px solid var(--p-input-borda); padding: 8px; font-size: 12px; font-weight: bold; color: var(--p-texto-suave); border-radius: 8px; cursor: pointer; transition: 0.2s; text-align: center; box-shadow: 0 1px 2px var(--p-card-sombra); }
.btn-filtro-serie:hover { border-color: var(--p-texto-destaque); color: var(--p-texto-destaque); filter: brightness(0.95); }
.btn-filtro-serie:active { transform: scale(0.96); }

.input-wrapper { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.form-vertical-moderno { display: flex; flex-direction: column; gap: 15px; }
.input-wrapper label { font-size: 13px; font-weight: 600; color: var(--p-texto-base); margin-bottom: 6px; text-align: left; width: 100%; display: block; }
.input-wrapper input, .input-wrapper textarea { width: 100%; padding: 12px; border-radius: 8px; border: 1px solid var(--p-input-borda); background: var(--p-box-bg); font-size: 14px; transition: 0.2s; box-sizing: border-box; font-family: inherit; color: var(--p-texto-titulo); }
.input-wrapper textarea { resize: vertical; }
.input-wrapper input:focus, .input-wrapper textarea:focus { border-color: var(--sem-chip-turma-sel); background: var(--p-card-bg); outline: none; }

.grid-tempo { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 15px; width: 100%; margin-bottom: 15px; }
.input-wrapper input[type="time"] { font-family: inherit; color: var(--p-texto-titulo); height: 44px; }

.switch-box { background: var(--p-box-bg); border: 1px solid var(--p-box-borda); padding: 12px 15px; border-radius: 10px; display: flex; justify-content: space-between; align-items: center; }
.switch-label { font-size: 13px; font-weight: bold; color: var(--p-texto-titulo); }
.switch-desc { font-size: 11px; color: var(--p-texto-suave); }

.dias-wrapper { display: flex; gap: 8px; justify-content: center; margin-bottom: 5px; }
.chip-dia { width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--p-input-bg); border: 1px solid var(--p-input-borda); color: var(--p-texto-suave); font-size: 12px; font-weight: bold; cursor: pointer; transition: 0.2s; }
.chip-dia:hover { border-color: var(--sem-chip-turma-sel); color: var(--sem-chip-turma-sel); }
.chip-dia.selected { background: var(--sem-chip-turma-sel); color: #ffffff; border-color: var(--sem-chip-turma-sel); transform: scale(1.1); box-shadow: 0 2px 8px var(--sem-chip-turma-sombra); }
.chip-dia.todos { width: auto; padding: 0 15px; border-radius: 20px; }

.box-refeicao, .custom-select { position: relative; z-index: 1; transition: z-index 0s; }
.box-refeicao:has(.options-list.active), .custom-select:has(.options-list.active) { z-index: 9999 !important; }
.box-refeicao.frente, .custom-select.frente { z-index: 9999 !important; }

/* =========================================================
     SISTEMA DE FEEDBACK & CAIXA DE ENTRADA
     ========================================================= */
.box-inbox-trigger { margin: 20px 0; padding: 15px; background: var(--p-box-bg); border-radius: 8px; border: 1px solid var(--p-box-borda); display: flex; justify-content: space-between; align-items: center; color: var(--p-texto-titulo); }
.box-inbox-trigger h3 { color: var(--p-texto-titulo); }
.box-inbox-trigger p { color: var(--p-texto-suave); }

.inbox-tabs { display: flex; border-bottom: 1px solid var(--p-card-borda); margin-bottom: 15px; }
.inbox-tab { flex: 1; padding: 12px; background: none; border: none; border-bottom: 2px solid transparent; font-weight: 600; color: var(--p-texto-suave); cursor: pointer; transition: all 0.2s; }
.inbox-tab:hover { background-color: var(--p-box-bg); color: var(--p-texto-titulo); }
.inbox-tab.active { color: var(--sem-primario); border-bottom-color: var(--sem-primario); }

.badge-count { background: var(--sem-perigo); color: #ffffff; padding: 2px 6px; border-radius: 10px; font-size: 10px; margin-left: 5px; vertical-align: middle; }

.item-msg { background: var(--p-card-bg); border: 1px solid var(--p-card-borda); border-radius: 8px; padding: 15px; margin-bottom: 10px; border-left: 4px solid var(--p-input-borda); color: var(--p-texto-titulo); }
.item-msg.tipo-denuncia { border-left-color: var(--sem-denuncia-borda); background: var(--sem-denuncia-bg); }

.msg-header { display: flex; justify-content: space-between; font-size: 12px; color: var(--p-texto-suave); margin-bottom: 8px; }
.msg-body { font-size: 14px; line-height: 1.4; color: var(--p-texto-base); }

.item-meu-feedback { background: var(--p-card-bg); padding: 15px; border-radius: 8px; border: 1px solid var(--p-card-borda); margin-bottom: 10px; box-shadow: 0 1px 2px var(--p-card-sombra); color: var(--p-texto-titulo); }

.box-resposta { margin-top: 10px; padding: 10px; border-radius: 6px; background: var(--sem-resposta-bg); border: 1px solid var(--sem-resposta-borda); }
.box-resposta strong, .box-resposta i { color: var(--sem-resposta-texto); }
.box-resposta div { color: var(--sem-resposta-destaque); }

.badge-status { padding: 2px 8px; border-radius: 12px; font-size: 10px; font-weight: bold; }
.badge-status.respondido { background: var(--sem-aprovado-bg); color: var(--sem-aprovado-texto); }
.badge-status.aguardando { background: var(--sem-badge-aguarda-bg); color: var(--sem-badge-aguarda-texto); }

.aviso-anonimo-box { display: none; background: var(--sem-aviso-amarelo-bg); color: var(--sem-aviso-amarelo-texto); padding: 10px; border-radius: 5px; font-size: 12px; margin-bottom: 15px; border: 1px solid var(--sem-aviso-amarelo-borda); }

#lista-feedback { background: var(--p-box-bg); border: 1px solid var(--p-card-borda); }

.modal-flex { max-height: 85vh; display: flex; flex-direction: column; }
.filters-container { background-color: var(--p-box-bg); border: 1px solid var(--p-card-borda); padding: 12px; border-radius: 12px; margin-bottom: 15px; display: flex; gap: 10px; flex-wrap: wrap; transition: background-color 0.3s, border-color 0.3s; }

.lista-scroll { overflow-y: auto; flex: 1; padding-right: 5px; margin: 0 -5px 0 0; }
.prova-item { padding: 14px; border-bottom: 1px solid var(--p-card-borda); display: flex; justify-content: space-between; align-items: center; background-color: var(--p-card-bg); margin-bottom: 8px; border-radius: 10px; box-shadow: 0 1px 2px var(--p-card-sombra); color: var(--p-texto-titulo); transition: transform 0.2s, background-color 0.3s; }
.prova-item:hover { transform: translateY(-2px); box-shadow: 0 4px 12px var(--p-modal-sombra); }

.badge-turma { font-weight: normal; font-size: 11px; background: var(--p-input-readonly-bg); padding: 3px 8px; border-radius: 6px; margin-left: 6px; color: var(--p-texto-suave); border: 1px solid var(--p-input-borda); vertical-align: middle; }
.contador-texto { text-align: right; font-size: 12px; color: var(--p-texto-suave); margin-top: 10px; font-weight: 500; }
.texto-secundario { color: var(--p-texto-suave) !important; }

.lista-scroll::-webkit-scrollbar { width: 6px; }
.lista-scroll::-webkit-scrollbar-track { background: transparent; }
.lista-scroll::-webkit-scrollbar-thumb { background-color: var(--scrollbar-thumb); border-radius: 20px; }

#container-datas-multiplas { grid-column: 1 / -1; margin-top: 15px; padding: 15px; border-radius: 12px; animation: slideDown 0.3s ease; background-color: var(--sem-info-azul-bg); border: 2px solid var(--sem-info-azul-borda); }
#container-datas-multiplas p { color: var(--sem-info-azul-texto); border-bottom: 1px solid var(--sem-info-azul-borda); padding-bottom: 5px; }
#container-datas-multiplas label { color: var(--sem-info-azul-destaque) !important; }

@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

.modal-filter-bar { background: var(--p-box-bg); padding: 15px 25px; border-bottom: 1px solid var(--p-card-borda); display: flex; align-items: center; gap: 15px; }
.filter-label { font-size: 12px; font-weight: bold; color: var(--p-texto-suave); white-space: nowrap; text-transform: uppercase; }
.modal-body-scroll { padding: 10px 25px 25px 25px; overflow-y: auto; flex: 1; }

.divisor-dinamico { width: 100%; border: 0; border-top: 2px dotted var(--cor-divisor-pontilhado); margin: 10px 0; height: 1px; }

/* Aniversários */
.box-config-niver { background: var(--sem-niver-bg); padding: 15px; border-radius: 8px; border: 1px solid var(--sem-niver-borda); margin-bottom: 15px; }
.txt-niver-info { font-size: 13px; color: var(--sem-niver-texto); margin-bottom: 10px; }
.box-config-niver code { background: var(--sem-niver-code-bg); padding: 2px 5px; border-radius: 4px; color: var(--sem-niver-code-texto); }

/* Cronômetros */
.box-config-crono { background: var(--sem-crono-bg); padding: 15px; border-radius: 8px; border: 1px solid var(--sem-crono-borda); margin-bottom: 15px; }
.txt-crono-info { font-size: 13px; margin-bottom: 10px; color: var(--sem-crono-texto); }

/* PREVIEW DO AVISO */
.texto-preview-desc { font-size: 13px; color: var(--p-texto-suave); margin-bottom: 15px; }
.card-injetado-preview { background: var(--p-card-bg); border: 1px solid var(--p-card-borda); border-radius: 12px; box-shadow: 0 4px 15px var(--p-card-sombra); text-align: left; padding: 15px; }

/* MAI GRADE */
.card-maigrade { background: var(--maigrade-bg); padding: 15px; border-radius: 8px; border: 1px solid var(--maigrade-border); text-align: center; transition: 0.3s ease; }
.btn-maigrade-outline { flex: 1; background: transparent; border: 1px solid var(--maigrade-border); color: var(--maigrade-icone); padding: 10px 15px; border-radius: 8px; font-weight: bold; cursor: pointer; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: 0.2s; box-sizing: border-box; }
.btn-maigrade-outline:hover { background: var(--maigrade-bg); }

/* ==========================================================================
   TEMAS SAZONAIS NO PERFIL
   ========================================================================== */
/* --- ANO NOVO --- */
body.tema-anonovo {
    --sem-primario: #ca8a04;
    --sem-primario-hover: #a16207;
    --p-texto-destaque: #ca8a04;
    --p-input-focus: #ca8a04;
    --p-input-btn-upload: #ca8a04;
    --p-input-btn-upload-hover: #a16207;
}
body.tema-anonovo.dark {
    --sem-primario: #eab308;
    --sem-primario-hover: #ca8a04;
    --p-texto-destaque: #facc15;
}

/* --- VOLTA ÀS AULAS --- */
body.tema-volta-aulas {
    --sem-primario: #2563eb;
    --sem-primario-hover: #1d4ed8;
    --p-texto-destaque: #2563eb;
}
body.tema-volta-aulas.dark {
    --sem-primario: #3b82f6;
    --sem-primario-hover: #2563eb;
    --p-texto-destaque: #60a5fa;
}

/* --- CARNAVAL --- */
body.tema-carnaval {
    --sem-primario: #ec4899; 
    --sem-primario-hover: #db2777;
    --p-texto-destaque: #db2777;
    --p-input-focus: #ec4899;
    --p-input-btn-upload: #ec4899;
    --p-input-btn-upload-hover: #db2777;
}
body.tema-carnaval.dark {
    --sem-primario: #a855f7;
    --sem-primario-hover: #9333ea;
    --p-texto-destaque: #c084fc;
    --p-input-focus: #a855f7;
    --p-input-btn-upload: #a855f7;
    --p-input-btn-upload-hover: #9333ea;
}

/* --- SÃO JOÃO --- */
body.tema-saojoao {
    --sem-primario: #c2410c;
    --sem-primario-hover: #9a3412;
    --p-texto-destaque: #c2410c;
    --p-input-focus: #c2410c;
    --p-input-btn-upload: #c2410c;
    --p-input-btn-upload-hover: #9a3412;
}
body.tema-saojoao.dark {
    --sem-primario: #ea580c;
    --sem-primario-hover: #c2410c;
    --p-texto-destaque: #fb923c;
}

/* --- DIA DO ESTUDANTE --- */
body.tema-estudante {
    --sem-primario: #0d9488;
    --sem-primario-hover: #0f766e;
    --p-texto-destaque: #0d9488;
    --p-input-focus: #0d9488;
    --p-input-btn-upload: #0d9488;
    --p-input-btn-upload-hover: #0f766e;
}
body.tema-estudante.dark {
    --sem-primario: #14b8a6;
    --sem-primario-hover: #0d9488;
    --p-texto-destaque: #2dd4bf;
}

/* --- NATAL --- */
body.tema-natal {
    --sem-primario: #15803d;
    --sem-primario-hover: #14532d;
    --p-texto-destaque: #16a34a;
    --p-input-focus: #15803d;
    --p-input-btn-upload: #15803d;
    --p-input-btn-upload-hover: #14532d;
}
body.tema-natal.dark {
    --sem-primario: #22c55e;
    --sem-primario-hover: #16a34a;
    --p-texto-destaque: #4ade80;
    --p-input-focus: #22c55e;
    --p-input-btn-upload: #22c55e;
    --p-input-btn-upload-hover: #16a34a;
}

/* --- PÁSCOA --- */
body.tema-pascoa {
    --sem-primario: #d97706;
    --sem-primario-hover: #b45309;
    --p-texto-destaque: #d97706;
    --p-input-focus: #d97706;
    --p-input-btn-upload: #d97706;
    --p-input-btn-upload-hover: #b45309;
}
body.tema-pascoa.dark {
    --sem-primario: #fbbf24;
    --sem-primario-hover: #f59e0b;
    --p-texto-destaque: #fcd34d;
}

/* --- 18 DE MAIO E OUTUBRO ROSA --- */
body.tema-maio18 {
    --sem-primario: #d97706;
    --sem-primario-hover: #b45309;
    --p-texto-destaque: #d97706;
}
body.tema-outubro {
    --sem-primario: #db2777;
    --sem-primario-hover: #be185d;
    --p-texto-destaque: #db2777;
    --p-input-focus: #db2777;
    --p-input-btn-upload: #db2777;
    --p-input-btn-upload-hover: #be185d;
}
body.tema-outubro.dark {
    --sem-primario: #f472b6;
    --sem-primario-hover: #db2777;
    --p-texto-destaque: #fbcfe8;
}

/* ESTILOS DO MÓDULO DE RESERVA DE ESPAÇOS */
.calendario-reserva-grid {
   display: grid;
   grid-template-columns: repeat(7, 1fr);
   gap: 6px;
   font-family: inherit;
}

.reserva-dia-card {
   background: var(--p-box-bg);
   color: var(--p-texto-titulo);
   border: 1px solid var(--p-box-borda);
   padding: 12px 5px;
   text-align: center;
   border-radius: 8px;
   cursor: pointer;
   font-size: 13px;
   font-weight: bold;
   transition: all 0.2s ease;
}

.reserva-dia-card:hover {
   background: var(--sem-reserva-primario);
   color: #ffffff;
   border-color: var(--sem-reserva-primario);
   transform: translateY(-2px);
}

.reserva-dia-card.selecionado {
   background: var(--sem-reserva-primario) !important;
   color: #ffffff !important;
   border-color: var(--sem-reserva-primario) !important;
   box-shadow: 0 4px 12px var(--sem-reserva-sombra);
}

.reserva-slot-box {
   display: flex;
   flex-direction: column;
   gap: 8px;
   padding: 12px;
   background: var(--p-box-bg);
   color: var(--p-texto-titulo);
   border: 1px solid var(--p-box-borda);
   border-radius: 8px;
}

  /* Fundo adaptável para os avatares gerados */
  .avatar-dicebear {
    background: #e2e8f0;
  }
  
  body.dark .avatar-dicebear {
    background: #334155;
  }
