/* ============================================================
   ESTUDO — Central de Estudos do Chico (v2)
   Identidade: DESIGNSYSTEM.md (navy + dourado) com espírito lúdico.
   Mobile-first: foco em CELULAR e IPAD; escala bem até desktop.
   Escopado em .estudo-app para não vazar no resto do app.
   ============================================================ */

.estudo-app {
    --est-tinta: #1F305D;
    --est-suave: #5A6B7A;
    --est-navy: #0F182E;
    --est-navy2: #15395F;
    --est-azul: #095B90;
    --est-azul-vibra: #127DBC;
    --est-dourado: #D4AF37;
    --est-dourado-bg: #FDF3DB;
    --est-verde: #2E9E6B;
    --est-amarelo: #D89A3A;
    --est-vermelho: #D65F49;
    --est-borda: #E3E9EF;
    --est-sombra-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 3px 0 rgba(0, 0, 0, 0.04);
    --est-sombra-md: 0 2px 8px -2px rgba(0, 0, 0, 0.06), 0 4px 12px -2px rgba(0, 0, 0, 0.08);
    --est-sombra-lg: 0 8px 24px -4px rgba(0, 0, 0, 0.08), 0 16px 40px -8px rgba(0, 0, 0, 0.12);

    background: linear-gradient(180deg, #EEF3F7 0%, #F4F7F9 45%, #FDF9F0 100%);
    border-radius: 16px;
    padding: clamp(14px, 3vw, 24px) 0 calc(40px + env(safe-area-inset-bottom, 0px));
    min-height: calc(100vh - 160px);
    color: var(--est-tinta);
    font-family: 'Nunito', 'DM Sans', system-ui, sans-serif;
}

.estudo-app * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

.estudo-inner {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 clamp(12px, 3vw, 20px);
}

/* iPad landscape / desktop: aproveita mais a largura */
@media (min-width: 1024px) {
    .estudo-inner { max-width: 820px; }
}

/* ===== Animações ===== */
@keyframes est-surge { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes est-pulo { 0%, 100% { transform: translateY(0); } 30% { transform: translateY(-8px); } }
@keyframes est-brilho { 0% { box-shadow: 0 0 0 0 rgba(46, 158, 107, 0.5); } 100% { box-shadow: 0 0 0 16px rgba(46, 158, 107, 0); } }
.est-surge { animation: est-surge 0.35s ease both; }
@media (prefers-reduced-motion: reduce) { .estudo-app * { animation: none !important; } }

/* ===== Botões (touch-first: alvo mínimo 48px) ===== */
.est-btn {
    border: none;
    border-radius: 14px;
    min-height: 48px;
    padding: 12px 18px;
    font-size: clamp(14px, 2.4vw, 16px);
    font-weight: 800;
    cursor: pointer;
    font-family: inherit;
    transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
    color: #FFFFFF;
    box-shadow: var(--est-sombra-md);
}
.est-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: var(--est-sombra-lg); }
.est-btn:active:not(:disabled) { transform: translateY(0); filter: brightness(0.96); }
.est-btn:disabled { opacity: 0.55; cursor: default; }
.est-btn-ghost {
    background: #FFFFFF;
    color: var(--est-tinta);
    border: 2px solid var(--est-borda);
    box-shadow: var(--est-sombra-sm);
}
.est-btn-mini {
    min-height: 44px;
    padding: 10px 12px;
    font-size: 13px;
    border-radius: 12px;
    flex: 1;
}
.est-btn-desafio { background: linear-gradient(135deg, var(--est-navy2), var(--est-navy)); }

.est-btn-bloco {
    display: flex; align-items: center; gap: 14px; width: 100%; text-align: left;
    background: #FFFFFF; color: var(--est-tinta); border-radius: 16px; padding: 16px 18px;
    box-shadow: var(--est-sombra-md); border: 1px solid var(--est-borda); cursor: pointer; font-family: inherit;
    min-height: 64px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.est-btn-bloco:hover { transform: translateY(-3px); box-shadow: var(--est-sombra-lg); }

.est-voltar {
    background: none; border: none; color: var(--est-azul);
    font-weight: 800; font-size: 14px; cursor: pointer; padding: 10px 0; font-family: inherit;
    min-height: 44px;
}

/* ===== Topo / XP ===== */
.est-topo { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; gap: 12px; }
.est-kicker { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; color: var(--est-azul-vibra); text-transform: uppercase; }
.est-titulo { font-size: clamp(22px, 5.5vw, 30px); margin: 2px 0 0; font-weight: 900; line-height: 1.12; color: var(--est-tinta); }
.est-xp-box {
    text-align: right; background: #FFFFFF; border-radius: 14px; padding: 10px 14px;
    box-shadow: var(--est-sombra-md); border: 1px solid var(--est-borda); flex-shrink: 0;
}
.est-xp-valor { font-size: clamp(18px, 4vw, 22px); font-weight: 900; color: var(--est-dourado); }
.est-xp-rotulo { font-size: 11px; color: var(--est-suave); font-weight: 700; }
.est-ofensiva { font-size: 12px; color: var(--est-vermelho); font-weight: 800; margin-top: 2px; }

/* ===== Nível (gamificação) ===== */
.est-nivel {
    display: flex; align-items: center; gap: 12px;
    background: #FFFFFF; border: 1px solid var(--est-borda); border-radius: 16px;
    padding: 12px 14px; margin: 12px 0 4px; box-shadow: var(--est-sombra-sm);
}
.est-nivel-badge {
    width: 46px; height: 46px; border-radius: 14px; flex-shrink: 0;
    background: linear-gradient(135deg, var(--est-dourado-bg), #F7E7B8);
    border: 2px solid var(--est-dourado);
    display: flex; align-items: center; justify-content: center; font-size: 24px;
}
.est-nivel-nome { font-size: 14px; font-weight: 900; color: var(--est-tinta); display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.est-nivel-prox { font-size: 11px; font-weight: 700; color: var(--est-suave); }

/* ===== Banner próxima prova (gradiente hero navy) ===== */
.est-banner {
    background: linear-gradient(135deg, #0F182E 0%, #15395F 50%, #1C4C7F 100%);
    color: #FFFFFF; border-radius: 18px;
    padding: 16px 18px; margin: 14px 0 22px; box-shadow: var(--est-sombra-lg);
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.est-banner-label { font-size: 11px; opacity: 0.8; font-weight: 800; letter-spacing: 0.08em; }
.est-banner-materia { font-size: clamp(17px, 4vw, 20px); font-weight: 900; }
.est-banner-data { font-size: 13px; opacity: 0.9; }
.est-banner-conta { text-align: center; background: rgba(255, 255, 255, 0.1); border-radius: 14px; padding: 8px 14px; }
.est-banner-num { font-size: clamp(26px, 6vw, 34px); font-weight: 900; line-height: 1; color: #F0C75E; }

/* ===== Grid de matérias ===== */
.est-secao-label { font-size: 14px; font-weight: 800; color: var(--est-suave); margin-bottom: 10px; }
.est-materias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
@media (min-width: 768px) {
    .est-materias-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
}
.est-materia-card {
    position: relative;
    background: #FFFFFF; border-radius: 16px; padding: 14px 14px 16px;
    box-shadow: var(--est-sombra-md); border: 1px solid var(--est-borda);
    cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease;
    border-top: 5px solid #CCC;
}
.est-materia-card:hover { transform: translateY(-4px); box-shadow: var(--est-sombra-lg); }
.est-materia-emoji { font-size: clamp(28px, 6vw, 34px); line-height: 1; }
.est-materia-nome { font-size: clamp(15px, 3.4vw, 18px); font-weight: 900; margin-top: 6px; }
.est-materia-prova { font-size: 12px; color: var(--est-suave); margin-top: 2px; font-weight: 700; }
.est-materia-faltam { font-size: 12px; font-weight: 800; margin-top: 2px; }
.est-medalha {
    position: absolute; top: 8px; right: 10px; font-size: 22px;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.2));
}
.est-rodape-frase { text-align: center; margin-top: 24px; font-size: 12px; color: var(--est-suave); }

/* ===== Barra de progresso ===== */
.est-bar { height: 8px; background: #E3E9EF; border-radius: 99px; overflow: hidden; }
.est-bar-lg { height: 10px; }
.est-bar-fill { height: 100%; transition: width 0.4s ease; border-radius: 99px; }
.est-bar-legenda { font-size: 11px; color: var(--est-suave); margin-top: 4px; font-weight: 700; }

/* ===== Botões de modo (matéria) ===== */
.est-modo {
    display: flex; align-items: center; gap: 14px; width: 100%; text-align: left;
    border: 1px solid var(--est-borda); border-radius: 16px; padding: 16px; cursor: pointer; font-family: inherit;
    background: #FFFFFF; box-shadow: var(--est-sombra-md);
    min-height: 72px;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.est-modo:hover { transform: translateY(-2px); box-shadow: var(--est-sombra-lg); }
.est-modo.destaque { border: none; }
.est-modo-emoji { font-size: clamp(26px, 5vw, 30px); }
.est-modo-titulo { display: block; font-size: clamp(16px, 3.6vw, 18px); font-weight: 900; }
.est-modo-sub { display: block; font-size: 12px; font-weight: 700; color: var(--est-suave); }
.est-modo.destaque .est-modo-titulo, .est-modo.destaque .est-modo-sub { color: #FFFFFF; }
.est-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }

/* Aviso "Treinar/Desafio moraram pra Simulados" */
.est-aviso-treino {
    background: var(--est-dourado-bg);
    border: 1.5px solid #EAD07E;
    border-radius: 14px;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #7A6120;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
    min-height: 44px;
    display: flex;
    align-items: center;
}
.est-aviso-treino:hover { transform: translateY(-2px); box-shadow: var(--est-sombra-md); }

/* ===== Cartão genérico ===== */
.est-card {
    background: #FFFFFF; border-radius: 18px; padding: clamp(16px, 4vw, 22px) clamp(14px, 3.5vw, 20px);
    box-shadow: var(--est-sombra-md); border: 1px solid var(--est-borda);
}
.est-card h2 { font-size: clamp(20px, 4.5vw, 24px); font-weight: 900; margin: 0 0 12px; }
.est-mini-label { font-size: 11px; font-weight: 800; color: var(--est-suave); text-transform: uppercase; letter-spacing: 0.05em; }
.est-caixa-exemplo { margin-top: 16px; border-radius: 14px; padding: 12px 14px; }
.est-caixa-cuidado { margin-top: 12px; background: var(--est-dourado-bg); border: 1px solid #EAD07E; border-radius: 14px; padding: 12px 14px; }
.est-caixa-cuidado .est-mini-label { color: #9A7A22; }
.est-caixa-cuidado-txt { font-size: 15px; font-weight: 600; color: #7A6120; margin-top: 3px; line-height: 1.4; }

/* ===== Infográficos ===== */
.est-info-wrap {
    background: #FBFCFE;
    border: 1.5px dashed #C9D6E2;
    border-radius: 16px;
    padding: clamp(8px, 2vw, 14px);
}
.est-info-svg { display: block; width: 100%; height: auto; max-width: 480px; margin: 0 auto; }
.est-info-img { display: block; width: 100%; height: auto; max-width: 560px; margin: 0 auto; border-radius: 12px; box-shadow: var(--est-sombra-md); }

/* Capa do bloco */
.est-capa-topicos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.est-tag-topico {
    font-size: 12px; font-weight: 700; background: #EFF4F8; color: var(--est-tinta);
    border: 1px solid var(--est-borda); padding: 5px 10px; border-radius: 99px;
}

/* Macete */
.est-macete {
    margin-top: 14px; text-align: left;
    background: linear-gradient(135deg, #FDF3DB, #FAE9C0);
    border: 2px solid var(--est-dourado);
    border-radius: 16px; padding: 14px 16px;
}
.est-macete-ttl { font-size: 13px; font-weight: 900; color: #9A7A22; margin-bottom: 4px; }
.est-macete-txt { font-size: 15px; font-weight: 700; color: #6B5417; line-height: 1.45; }

/* ===== Termômetro de domínio ===== */
.est-termo { background: #FFFFFF; border-radius: 16px; padding: 14px; box-shadow: var(--est-sombra-sm); border: 1px solid var(--est-borda); }
.est-termo-item { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid #F0F3F7; }
.est-termo-item:last-of-type { border-bottom: none; }
.est-termo-nome { font-size: 14px; font-weight: 700; }
.est-termo-legenda { display: flex; gap: 14px; margin-top: 10px; font-size: 11px; color: var(--est-suave); flex-wrap: wrap; }

/* ===== Quiz ===== */
.est-chip { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 99px; color: #FFFFFF; }
.est-chip-topico { color: var(--est-azul); background: #DCE8F1; font-weight: 800; }
.est-enunciado { font-size: clamp(17px, 4vw, 20px); font-weight: 800; line-height: 1.35; margin-bottom: 16px; }
.est-opcoes { display: grid; gap: 10px; }
.est-opcao {
    background: #F7FAFC; border: 2px solid #E7EDF3; border-radius: 14px; padding: 14px 16px; text-align: left;
    font-size: clamp(14px, 3.4vw, 16px); font-weight: 700; color: var(--est-tinta); cursor: pointer; font-family: inherit; width: 100%;
    min-height: 52px;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.est-opcao:hover:not(:disabled) { transform: translateY(-2px); box-shadow: var(--est-sombra-md); }
.est-opcao:disabled { cursor: default; }
.est-opcao .letra { font-weight: 900; margin-right: 8px; }
.est-opcao.certa { background: #E6F5EE; border-color: var(--est-verde); color: #1D6B47; }
.est-opcao.certa.brilha { animation: est-brilho 1s ease; }
.est-opcao.errada { background: #FBEAE7; border-color: var(--est-vermelho); color: #A8442F; }
.est-opcao .marca { float: right; }
.est-feedback { margin-top: 16px; border-radius: 14px; padding: 12px 14px; animation: est-surge 0.3s ease; }
.est-feedback.dica { background: var(--est-dourado-bg); border: 2px solid #EAD07E; }
.est-feedback.dica .ttl { font-size: 13px; font-weight: 800; color: #9A7A22; margin-bottom: 2px; }
.est-feedback.dica .txt { font-size: 15px; color: #7A6120; font-weight: 600; }
.est-feedback.acertou { background: #E6F5EE; }
.est-feedback.acertou .ttl { font-size: 16px; font-weight: 900; color: #1D6B47; }
.est-feedback.acertou .txt { font-size: 14px; color: #1D6B47; margin-top: 4px; }
.est-feedback.revelou { background: #E8EEF7; }
.est-feedback.revelou .ttl { font-size: 15px; font-weight: 900; color: #15395F; }
.est-feedback.revelou .txt { font-size: 14px; color: #15395F; margin-top: 4px; }

/* ===== Flashcard ===== */
.est-flashcard {
    border-radius: 20px; padding: clamp(20px, 5vw, 28px) clamp(16px, 4vw, 24px); min-height: clamp(220px, 40vw, 280px);
    color: #FFFFFF; cursor: pointer;
    display: flex; flex-direction: column; justify-content: center; box-shadow: var(--est-sombra-lg);
    transition: background 0.3s ease;
}
.est-flashcard.virado { background: #FFFFFF !important; color: var(--est-tinta); border: 1px solid var(--est-borda); }
.est-flashcard .fc-tema { font-size: 12px; font-weight: 800; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.08em; }
.est-flashcard .fc-frente { font-size: clamp(19px, 4.6vw, 24px); font-weight: 900; margin-top: 10px; line-height: 1.3; }
.est-flashcard .fc-toque { font-size: 13px; opacity: 0.85; margin-top: 18px; }
.est-flashcard .fc-resp { font-size: clamp(15px, 3.6vw, 17px); font-weight: 700; margin-top: 8px; line-height: 1.4; }

/* ===== Resultado ===== */
.est-resultado { text-align: center; }
.est-resultado-nota { font-size: clamp(36px, 9vw, 44px); font-weight: 900; }
.est-contadores { display: flex; justify-content: center; gap: 18px; margin-bottom: 8px; }
.est-contador-num { font-size: 24px; font-weight: 900; }
.est-contador-rotulo { font-size: 11px; color: var(--est-suave); font-weight: 700; }
.est-revisar-box { background: var(--est-dourado-bg); border: 2px solid #EAD07E; border-radius: 16px; padding: 16px; margin-top: 16px; text-align: left; }
.est-revisar-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.est-tag { font-size: 13px; font-weight: 700; background: #FFFFFF; border: 1px solid #EAD07E; color: #7A6120; padding: 5px 10px; border-radius: 99px; }

/* ===== Treino rápido (em Simulados) ===== */
.est-treino-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
@media (min-width: 600px) {
    .est-treino-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (min-width: 1024px) {
    .est-treino-grid { grid-template-columns: repeat(3, 1fr); }
}
.est-treino-card {
    background: #FFFFFF; border-radius: 16px; padding: 14px;
    border: 1px solid var(--est-borda); border-top: 5px solid #CCC;
    box-shadow: var(--est-sombra-md);
}
.est-treino-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.est-treino-emoji { font-size: 28px; }
.est-treino-nome { display: block; font-size: 16px; font-weight: 900; }
.est-treino-qtd { display: block; font-size: 11px; font-weight: 700; color: var(--est-suave); }
.est-treino-acoes { display: flex; gap: 8px; }

/* ===== Utilidades de layout ===== */
.est-flex-between { display: flex; justify-content: space-between; align-items: center; }
.est-mt-4 { margin-top: 4px; }
.est-mt-12 { margin-top: 12px; }
.est-mt-16 { margin-top: 16px; }
.est-mt-20 { margin-top: 20px; }
.est-gap-12 { display: flex; gap: 12px; }
.est-passo-info { font-size: 13px; font-weight: 800; color: var(--est-suave); }

/* ===== Celular estreito ===== */
@media (max-width: 520px) {
    .est-grid-2 { grid-template-columns: 1fr; }
    .est-topo { flex-wrap: wrap; }
    .est-gap-12 { flex-wrap: wrap; }
    .est-gap-12 .est-btn { flex: 1 1 100%; }
    .est-banner { flex-wrap: wrap; }
    .est-materias-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ===== Simulado no formato de prova ===== */
.est-prova-cab { margin-bottom: 12px; }
.est-texto-base {
    background: #FFFFFF; border: 1px solid var(--est-borda); border-left: 4px solid var(--est-azul);
    border-radius: 14px; padding: 16px 18px; box-shadow: var(--est-sombra-sm);
}
.est-texto-titulo { font-weight: 900; font-size: 16px; color: var(--est-navy2); margin-bottom: 8px; }
.est-texto-corpo p { font-size: 15px; line-height: 1.55; margin: 0 0 10px; }
.est-texto-corpo p:last-child { margin-bottom: 0; }
.est-texto-fonte { font-size: 11px; color: var(--est-suave); font-style: italic; margin-top: 10px; }

.est-opcao.sel { background: #DCE8F1; border-color: var(--est-azul); color: var(--est-azul); }

.vfm-item {
    display: flex; align-items: center; gap: 10px; justify-content: space-between;
    padding: 8px 10px; border: 1px solid var(--est-borda); border-radius: 10px;
}
.vfm-txt { font-size: 14px; font-weight: 600; flex: 1; }
.vfm-botoes { display: flex; gap: 6px; flex-shrink: 0; }
.vfm-b {
    width: 44px; min-height: 44px; border-radius: 10px; border: 2px solid var(--est-borda);
    background: #fff; font-weight: 900; cursor: pointer; font-family: inherit; color: var(--est-tinta);
}
.vfm-b.sel { background: var(--est-azul); color: #fff; border-color: var(--est-azul); }

.rel-item { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.rel-a { flex: 1; font-size: 14px; font-weight: 600; min-width: 140px; }
.est-select {
    min-height: 44px; border: 2px solid var(--est-borda); border-radius: 10px; padding: 8px 10px;
    font-family: inherit; font-size: 14px; background: #fff; color: var(--est-tinta);
}
.est-textarea, .est-input {
    width: 100%; border: 2px solid var(--est-borda); border-radius: 12px; padding: 12px 14px;
    font-family: inherit; font-size: 15px; color: var(--est-tinta); background: #fff; resize: vertical;
}
.est-textarea:focus, .est-input:focus, .est-select:focus { outline: none; border-color: var(--est-azul); }
.est-resp-aluno { background: #F4F7F9; border-radius: 10px; padding: 10px 12px; font-size: 14px; margin-top: 4px; white-space: pre-wrap; }
.est-aguardando { color: #9A7A22; font-weight: 800; font-size: 13px; margin-top: 8px; }
.est-auto-nota { color: var(--est-azul); font-weight: 800; font-size: 12px; margin-top: 10px; }

/* ===== Simulado paginado (1 questao por pagina, otimizado p/ iPad mini) ===== */
.est-prova-run { padding-top: 2px; }
.est-prova-top { margin-bottom: 8px; }                 /* Sair + "x de n" colados no topo */
.est-prova-bar { height: 8px; margin-bottom: 12px; }
.est-prova-run .est-card { padding: 16px 16px; }        /* card da questao mais justo */
.est-prova-run .est-opcoes { display: grid; gap: 8px; } /* alternativas mais proximas */
.est-prova-run .est-opcao { min-height: 44px; padding: 11px 14px; }
.est-prova-run .est-opcao .letra { color: var(--est-azul); }   /* A B C D em azul (padrao) */
.est-prova-nav { margin-top: 16px; gap: 12px; }
.est-prova-nav .est-btn { flex: 1; }
.est-prova-cta { background: linear-gradient(135deg, #095B90, #127DBC); }  /* Proximo/Entregar em azul */

/* Texto de apoio recolhivel */
.est-texto-det { background: #FFFFFF; border: 1px solid var(--est-borda); border-left: 4px solid var(--est-azul);
    border-radius: 12px; padding: 4px 12px 2px; margin-bottom: 12px; box-shadow: var(--est-sombra-sm); }
.est-texto-det.aberto { padding-bottom: 12px; }
.est-texto-toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 8px;
    background: none; border: none; font-family: inherit; cursor: pointer; padding: 10px 2px;
    font-weight: 800; font-size: 14px; color: var(--est-navy2); }
.est-texto-seta { color: var(--est-azul); font-weight: 900; }

/* Botao excluir simulado (admin) */
.est-btn-excluir { color: var(--est-vermelho); border-color: #F0C9C1; }

@media (max-width: 520px) {
    .est-prova-run .est-opcao { min-height: 42px; padding: 10px 12px; }
}

/* ============================================================
   Overlay de acesso pendente (aluno ainda não liberado)
   ============================================================ */
.overlay-pendente {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 48px),
        linear-gradient(135deg, #0F182E 0%, #15395F 55%, #1C4C7F 100%);
    font-family: 'Nunito', 'DM Sans', system-ui, sans-serif;
}
.overlay-pendente.visible { display: flex; }
.overlay-pendente-card {
    background: rgba(255, 255, 255, 0.96);
    border-radius: 20px;
    box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.2), 0 16px 40px -8px rgba(0, 0, 0, 0.3);
    padding: 36px 28px;
    max-width: 440px;
    width: 100%;
    text-align: center;
}
.overlay-pendente-emoji { font-size: 56px; }
.overlay-pendente-card h2 {
    font-family: 'Nunito', 'DM Sans', sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: #1F305D;
    margin: 8px 0;
}
.overlay-pendente-card p {
    color: #5A6B7A;
    font-size: 15px;
    line-height: 1.5;
    margin-bottom: 20px;
}
.overlay-pendente-acoes {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}
