/* ==========================================================================
   portal.css — area do aluno (usa o mesmo shell/sidebar do professor,
   definido em base.css; aqui ficam apenas os estilos especificos do portal)
   ========================================================================== */

.resumo-exercicios {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--cor-superficie);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 0.6rem 1.1rem;
    line-height: 1.2;
}
.resumo-exercicios-numero { font-size: 1.3rem; font-weight: 700; color: var(--cor-primaria); }

/* Cards de exercicio do portal --------------------------------------------- */
.lista-exercicios--portal { gap: 1rem; }
.lista-exercicios--portal .card-exercicio {
    flex-direction: column;
    align-items: stretch;
    background: var(--cor-superficie);
    border-radius: var(--raio);
    padding: 1.1rem 1.25rem;
    box-shadow: 0 1px 2px var(--cor-sombra);
    transition: box-shadow var(--transicao-rapida), transform var(--transicao-rapida);
}
.lista-exercicios--portal .card-exercicio:hover { box-shadow: 0 10px 24px var(--cor-sombra); }
.lista-exercicios--portal .card-exercicio[data-status="concluido"] { border-left: 3px solid var(--cor-sucesso); }
.lista-exercicios--portal .card-exercicio[data-status="emandamento"] { border-left: 3px solid var(--cor-primaria); }
.lista-exercicios--portal .card-exercicio[data-status="pendente"] { border-left: 3px solid var(--cor-aviso); }

.card-exercicio-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; }
.card-exercicio-titulo-linha { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.card-exercicio-titulo-linha strong { font-size: 1rem; }
.card-exercicio-meta { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 0.35rem; }
.card-exercicio-conteudo { margin: 0.6rem 0 0; }

/* Bloco de entrega (upload do aluno) --------------------------------------- */
.entrega-exercicio {
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px dashed var(--cor-borda);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.entrega-titulo { font-size: 0.8rem; font-weight: 600; color: var(--cor-texto-secundario); text-transform: uppercase; letter-spacing: 0.03em; }
.entrega-vazia { margin: 0; font-size: 0.85rem; }

.entrega-enviada { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.entrega-enviada-acoes { display: flex; gap: 0.4rem; margin-left: auto; }

.entrega-form { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
/* .entrega-enviada e .entrega-form definem "display" no estado visivel; sem isso
   o atributo hidden (regra do UA stylesheet) e sobrescrito pela regra de autor. */
.entrega-enviada[hidden], .entrega-form[hidden] { display: none; }
.campo-upload {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.85rem;
    border: 1px dashed var(--cor-borda);
    border-radius: var(--raio-pequeno);
    background: var(--cor-superficie-alt);
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--cor-texto-secundario);
    transition: border-color var(--transicao-rapida), color var(--transicao-rapida);
    flex: 1;
    min-width: 200px;
}
.campo-upload:hover { border-color: var(--cor-primaria); color: var(--cor-texto); }
.campo-upload input[type="file"] { display: none; }
.entrega-form-acoes { display: flex; gap: 0.4rem; }

/* Resposta escrita direto no portal --------------------------------------- */
.entrega-texto-secao { display: flex; flex-direction: column; gap: 0.5rem; }
.entrega-subtitulo { font-size: 0.78rem; font-weight: 600; color: var(--cor-texto-secundario); }
.entrega-texto-enviada { display: flex; flex-direction: column; gap: 0.4rem; }
.entrega-texto-enviada[hidden] { display: none; }
.entrega-texto-conteudo {
    margin: 0;
    padding: 0.6rem 0.75rem;
    background: var(--cor-superficie-alt);
    border-radius: var(--raio-pequeno);
    white-space: pre-wrap;
    font-size: 0.9rem;
}
.entrega-texto-form { display: flex; flex-direction: column; gap: 0.5rem; }
.entrega-texto-form[hidden] { display: none; }
.campo-textarea {
    width: 100%;
    resize: vertical;
    min-height: 90px;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-pequeno);
    background: var(--cor-superficie);
    color: var(--cor-texto);
    font-size: 0.9rem;
    font-family: inherit;
}
.campo-textarea:focus { outline: none; border-color: var(--cor-primaria); }
.entrega-separador {
    font-size: 0.75rem;
    text-align: center;
    position: relative;
    margin: 0.2rem 0;
}

/* Responsivo ------------------------------------------------------------- */
@media (max-width: 640px) {
    .resumo-exercicios { align-self: flex-start; flex-direction: row; gap: 0.4rem; }
    .entrega-enviada { flex-direction: column; align-items: flex-start; }
    .entrega-enviada-acoes { margin-left: 0; }
    .entrega-form { flex-direction: column; align-items: stretch; }
}
