/* TEMA FINAL: TURQUESA E GRAFITE v3.0 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');
:root {
    /* Modo Claro */
    --cor-fundo: #f8fafc; --cor-superficie: #ffffff; --cor-borda: #e2e8f0; --cor-texto-principal: #0f172a; --cor-texto-secundario: #475569; --cor-primaria: #0d9488; --cor-primaria-hover: #0f766e; --cor-sucesso: #16a34a; --cor-perigo: #dc2626; --sombra: 0 1px 3px 0 rgba(0, 0, 0, 0.07), 0 1px 2px -1px rgba(0, 0, 0, 0.07); --raio-borda: 8px; font-family: 'Inter', sans-serif;
}
body.dark-theme {
    /* Modo Escuro */
    --cor-fundo: #020617; --cor-superficie: #1e293b; --cor-borda: #334155; --cor-texto-principal: #e2e8f0; --cor-texto-secundario: #94a3b8; --cor-primaria: #2dd4bf; --cor-primaria-hover: #5eead4; --cor-sucesso: #4ade80; --cor-perigo: #f87171;
}

/* Base e Layout */
body { background-color: var(--cor-fundo); color: var(--cor-texto-principal); margin: 0; line-height: 1.6; }
.page-container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; }
header.main-header { padding: 1.5rem; text-align: center; }
header.main-header h1 { font-size: 2.25rem; font-weight: 700; color: var(--cor-texto-principal); margin: 0; display: flex; align-items: center; justify-content: center; gap: 1rem; }
nav.main-nav { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 0.75rem; padding: 1rem; background-color: var(--cor-superficie); border-radius: var(--raio-borda); box-shadow: var(--sombra); margin-bottom: 2rem; }
main { background-color: var(--cor-superficie); border-radius: var(--raio-borda); box-shadow: var(--sombra); padding: 2rem; }
a { color: var(--cor-primaria); text-decoration: none; font-weight: 500; }

/* Botões Uniformes e Estilizados */
.nav-item, .btn, .btn-secondary {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
    padding: 0.7rem 1.3rem; height: 44px; box-sizing: border-box;
    border-radius: var(--raio-borda); border: 1px solid transparent;
    cursor: pointer; font-weight: 500; font-size: 0.95rem;
    transition: all 0.2s ease-in-out; white-space: nowrap;
}
.btn { background-color: var(--cor-primaria); color: white; }
.btn:hover { background-color: var(--cor-primaria-hover); transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.btn-secondary { background-color: var(--cor-superficie); color: var(--cor-texto-secundario); border-color: var(--cor-borda); }
.btn-secondary:hover { background-color: var(--cor-fundo); border-color: var(--cor-texto-secundario); }
body.dark-theme .btn-secondary { color: var(--cor-texto-principal); }
#import-input { display: none; }
label.nav-item { line-height: normal; }

/* Switch de Tema */
/* ... (estilos do switch, sem alterações) ... */
.theme-switch { position: relative; display: inline-flex; width: 50px; height: 28px; align-items: center; margin-left: 1rem;} .theme-switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 28px; transition: .4s; } .slider:before { position: absolute; content: "\f186"; font-family: 'Font Awesome 6 Free'; font-weight: 900; color: #f39c12; font-size: 14px; line-height: 20px; text-align: center; height: 20px; width: 20px; left: 4px; bottom: 4px; background-color: white; border-radius: 50%; transition: .4s; } input:checked + .slider { background-color: var(--cor-primaria); } input:checked + .slider:before { transform: translateX(22px); content: "\f185"; }

/* Barra de Busca */
#search-bar { width: 100%; padding: 0.8rem 1rem; font-size: 1.1rem; border-radius: var(--raio-borda); border: 1px solid var(--cor-borda); margin-bottom: 2rem; box-sizing: border-box; background-color: var(--cor-fundo); color: var(--cor-texto-principal); }

/* Acordeon com Ícones em todos os níveis */
.disciplina-title, .categoria-wrapper h3 { display: flex; align-items: center; gap: 0.75rem; padding: 1rem; cursor: pointer; border-radius: var(--raio-borda); transition: background-color 0.2s; }
.disciplina-title { font-size: 1.5rem; background-color: var(--cor-fundo); margin-bottom: 1rem; }
.disciplina-title:hover, .categoria-wrapper h3:hover { background-color: var(--cor-borda); }
/* Ícone de seta para os acordeons */
.disciplina-title::before, .categoria-wrapper h3::before {
    content: '\f0da'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
    transition: transform 0.3s ease; display: inline-block; font-size: 1em; color: var(--cor-texto-secundario);
}
.disciplina-bloco.active .disciplina-title::before, .categoria-wrapper.active h3::before { transform: rotate(90deg); color: var(--cor-primaria); }
.categorias-grid { display: none; margin-top: 1rem; }
.disciplina-bloco.active .categorias-grid { display: grid; }
.categoria-wrapper ul { display: none; list-style: none; padding-left: 1.5rem; margin-top: 0.5rem; border-left: 2px solid var(--cor-borda); }
.categoria-wrapper.active ul { display: block; }
.categoria-wrapper li { display: flex; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--cor-fundo); }
.categoria-wrapper li::before {
    font-family: 'Font Awesome 6 Free'; font-weight: 900;
    content: '\f10c'; /* Círculo para pendente */
    color: var(--cor-texto-secundario); margin-right: 12px; font-size: 0.9em;
}
.subtema-concluido::before { content: '\f058'; color: var(--cor-sucesso) !important; font-size: 1em; }

/* Simulado: Controles no Topo */
.config-controls { margin-bottom: 2rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; background-color: var(--cor-fundo); padding: 1rem; border-radius: var(--raio-borda); }

/* Quiz com Pergunta Destacada */
#quiz-hud { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1rem; border-bottom: 1px solid var(--cor-borda); margin-bottom: 1.5rem; }
.quiz-pergunta { font-size: 1.6rem; font-weight: 600; text-align: center; margin: 2.5rem 0; line-height: 1.5; }
.quiz-opcoes { display: flex; flex-direction: column; gap: 0.75rem; }
.quiz-opcoes button { display: flex; width: 100%; box-sizing: border-box; font-size: 1.1rem;}
/* Feedback visual no quiz */
.quiz-opcoes button.correta { border-width: 2px; color: var(--cor-sucesso); border-color: var(--cor-sucesso); font-weight: 700; background-color: transparent; }
.quiz-opcoes button.incorreta { text-decoration: line-through; opacity: 0.6; border: 2px dashed var(--cor-perigo) !important; }
body.dark-theme .quiz-opcoes button.correta { color: var(--cor-sucesso); }
#proxima-questao-btn { font-size: 1rem; font-weight: 700; margin: 2rem auto 0 auto; display: block; }

/* ... (restante do CSS) ... */
.final-card { text-align: center; } .final-card .btn, .final-card .btn-secondary { margin: 0.5rem; } .final-card .btn:hover { color: white; } .final-card .btn-secondary:hover { color: var(--cor-texto-principal); }
/* === QUIZ COM DESIGN REFINADO === */

#quiz-hud {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--cor-borda);
    margin-bottom: 1.5rem;
}
.quiz-pergunta {
    font-size: 1.6rem;
    font-weight: 600;
    text-align: center;
    margin: 2.5rem 0;
    line-height: 1.5;
}
.quiz-opcoes {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.quiz-opcoes button {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 1.25rem 1.5rem; /* Aumentado para mais altura */
    text-align: left;
    border-radius: var(--raio-borda);
    border: 2px solid var(--cor-borda);
    background-color: var(--cor-fundo); /* Fundo sutilmente diferente no modo claro */
    color: var(--cor-texto-principal);
    font-size: 1.05rem; /* Texto ligeiramente maior */
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s ease-in-out;
}
.quiz-opcoes button:hover:not(:disabled) {
    border-color: var(--cor-primaria);
    transform: translateX(5px);
}

/* === CORREÇÃO DO TEMA ESCURO === */
body.dark-theme .quiz-opcoes button {
    background-color: #334155; /* Fundo cinza-azulado para os botões no modo escuro */
    border-color: #4a5568;
}
body.dark-theme .quiz-opcoes button:hover:not(:disabled) {
    border-color: var(--cor-primaria);
}


/* === FEEDBACK VISUAL DAS RESPOSTAS === */

.quiz-opcoes button.correta {
    border-color: var(--cor-sucesso);
    color: var(--cor-sucesso);
    font-weight: 700;
    background-color: transparent; /* Fundo transparente para destacar a borda */
}
body.dark-theme .quiz-opcoes button.correta {
    color: var(--cor-sucesso);
}

.quiz-opcoes button.incorreta {
    text-decoration: line-through;
    opacity: 0.6;
    border-style: dashed;
    border-color: var(--cor-perigo);
}

/* Ícones de feedback */
.quiz-opcoes button.correta::after, 
.quiz-opcoes button.incorreta::after {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 1.2rem;
}
.quiz-opcoes button.correta::after {
    content: '\f00c'; /* Checkmark */
    color: var(--cor-sucesso);
}
.quiz-opcoes button.incorreta::after {
    content: '\f00d'; /* X mark */
    color: var(--cor-perigo);
}


/* === FEEDBACK E RESULTADOS === */

.quiz-feedback {
    margin-top: 1.5rem;
    padding: 1.25rem;
    background-color: var(--cor-fundo);
    border-radius: var(--raio-borda);
    border-left: 5px solid var(--cor-primaria);
}
#proxima-questao-btn {
    font-size: 1rem;
    font-weight: 700;
    margin: 2rem auto 0 auto;
    display: block;
}
.final-card { text-align: center; }
.final-card .btn, .final-card .btn-secondary { margin: 0.5rem; }
.final-card .btn:hover { color: white; }
.final-card .btn-secondary:hover { color: var(--cor-texto-principal); }

/* Revisão de Erros */
.revisao-opcoes li.correta {
    border: 2px solid var(--cor-sucesso);
    background-color: #dcfce7;
}
.revisao-opcoes li.incorreta {
    text-decoration: line-through;
    opacity: 0.6;
    border: 2px dashed var(--cor-perigo);
}
body.dark-theme .revisao-opcoes li.correta {
    background-color: rgba(74, 222, 128, 0.1);
    border-color: var(--cor-sucesso);
}
body.dark-theme .revisao-opcoes li.incorreta {
    background-color: transparent;
    border-color: var(--cor-perigo);
}
/* Estilo para o link da landing page da disciplina */
.disciplina-title-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--cor-fundo);
    border-radius: var(--raio-borda);
    border: 1px solid var(--cor-borda);
    padding-right: 1rem; /* Espaço para o link */
    margin-bottom: 15px;
}
h2.disciplina-title {
    padding: 10px;
    margin: 10px;
}


.disciplina-title {
    flex-grow: 1; /* Faz o título ocupar o máximo de espaço */
    background-color: transparent; /* Remove o fundo duplicado */
    border: none; /* Remove a borda duplicada */
    margin-bottom: 0; /* Remove a margem duplicada */
}

.landing-page-link {
    font-size: 1.2rem;
    color: var(--cor-texto-secundario);
    transition: color 0.2s;
}

.landing-page-link:hover {
    color: var(--cor-primaria);
}
/* Estilo para o checkbox "Fazer todas" */
.checkbox-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--cor-texto-secundario);
    font-weight: 500;
}
.checkbox-control input {
    width: 1.15em;
    height: 1.15em;
}
/* === ESTILOS DO DASHBOARD DE PROGRESSO === */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.stat-card { background-color: var(--cor-fundo); padding: 1.5rem; border-radius: var(--raio-borda); text-align: center; }
.stat-card h3 { margin: 0 0 0.5rem 0; font-size: 1.1rem; color: var(--cor-texto-secundario); }
.stat-card p { font-size: 3rem; font-weight: 700; color: var(--cor-primaria); margin: 0; }
.stat-card span { font-size: 0.9rem; color: var(--cor-texto-suave); }
.disciplina-progress-card { background-color: var(--cor-fundo); padding: 1.5rem; border-radius: var(--raio-borda); margin-bottom: 1rem; }
.disciplina-progress-card h3 { margin: 0 0 1rem 0; }
.progress-bar-container { background-color: var(--cor-borda); border-radius: 50px; height: 2rem; overflow: hidden; margin-bottom: 0.5rem; }
.progress-bar-fill { background-image: var(--cor-gradiente); height: 100%; width: 0%; border-radius: 50px; color: white; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.9rem; transition: width 0.5s ease-in-out; }
.disciplina-stats { display: flex; justify-content: space-between; margin-top: 1rem; font-size: 0.9rem; color: var(--cor-texto-suave); }