@charset "UTF-8";
/* ============================================================
   WORKSPACE MODERN - Repaginacao das Areas de Trabalho
   Estilos escopados: nao afetam outras paginas do sistema
   ============================================================ */

/* ---- Banner de boas-vindas -------------------------------- */
.workspace-welcome {
    background: linear-gradient(135deg, #eef3d8 0%, #dce6b0 60%, #c6d580 100%);
    border: 1px solid #b8ca6a;
    border-radius: 10px;
    margin: 10px 2% 18px 2%;
    padding: 16px 20px;
    box-shadow: 0 2px 8px rgba(70, 100, 0, 0.10);
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 10px;
    box-sizing: border-box;
}

.workspace-welcome-info {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 3px;
}

.workspace-welcome-greeting {
    font-size: 13px;
    color: #4a6200;
    font-family: Lato, Arial, sans-serif;
}

.workspace-welcome-name {
    font-size: 20px;
    font-weight: bold;
    color: #1d3a00;
    font-family: Lato, Arial, sans-serif;
    line-height: 1.2;
}

.workspace-welcome-school {
    font-size: 12px;
    color: #4a6200;
    font-family: Lato, Arial, sans-serif;
    margin-top: 2px;
}

.workspace-welcome-meta {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 12px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}

.workspace-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-family: Lato, Arial, sans-serif;
}
.workspace-badge-direcao    { background: #1d5a00; color: #fff; }
.workspace-badge-secretaria { background: #3a7a00; color: #fff; }
.workspace-badge-supervisao { background: #5a6e00; color: #fff; }
.workspace-badge-sme        { background: #2d5a8e; color: #fff; }

.workspace-logout {
    font-size: 12px;
    color: #1d5a00;
    text-decoration: none;
    border: 1px solid #1d5a00;
    padding: 4px 10px;
    border-radius: 5px;
    font-family: Lato, Arial, sans-serif;
    background: rgba(255,255,255,0.5);
    white-space: nowrap;
    -webkit-transition: background 0.15s ease, color 0.15s ease;
    transition: background 0.15s ease, color 0.15s ease;
}
.workspace-logout:hover {
    background: #1d5a00;
    color: #fff;
    text-decoration: none;
}

/* ---- Grade flexivel --------------------------------------- */
.workspace-grid {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    /* Paineis nao se esticam para igualar alturas */
    -webkit-align-items: flex-start;
    align-items: flex-start;
    gap: 14px;
    padding: 0 2% 10px 2%;
    /* Resetar contadores CSS */
    counter-reset: sec-panel;
}

/* ---- Painel individual ------------------------------------ */
.workspace-grid .painelTab {
    /* border-box garante que borda nao quebre o calc() do width */
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
    border-color: #c4d47e;
    border-radius: 10px;
    -webkit-transition: box-shadow 0.2s ease, -webkit-transform 0.15s ease;
    transition: box-shadow 0.2s ease, transform 0.15s ease;
}
.workspace-grid .painelTab:hover {
    box-shadow: 0 4px 16px rgba(70, 100, 0, 0.15);
    -webkit-transform: translateY(-1px);
    transform: translateY(-1px);
}

/* Paineis SEC: incrementar contador de passos */
.workspace-grid .painelTab[data-perfil="sec"] {
    counter-increment: sec-panel;
}

/* ---- Cabecalho do painel ---------------------------------- */
.workspace-grid .painelTabTitulo,
.workspace-grid .painelTabTitulo2 {
    background: linear-gradient(135deg, #dde9a8 0%, #c6d580 100%);
    border-bottom: 1px solid #b0c460;
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
    padding: 9px 12px;
    font-size: 13.5px;
    font-family: Lato, Arial, sans-serif;
    font-weight: bold;
    color: #1d3a00;
    letter-spacing: 0.2px;
    position: relative;
}

/* Estilo base dos ::before de icone (aplicado a todos os titulos) */
.workspace-grid .painelTabTitulo::before,
.workspace-grid .painelTabTitulo2::before {
    font-size: 17px;
    line-height: 1;
    vertical-align: middle;
    margin-right: 5px;
    font-style: normal;
}

/* Ocultar imagens PNG originais dos titulos */
.workspace-grid .painelTabTitulo > img,
.workspace-grid .painelTabTitulo2 > img {
    display: none;
}

/* Icones emoji por painel (via :has()) - facilmente reversiveis.
   Usando escapes Unicode para evitar problemas de encoding no servidor. */
/* 📚 livros */
.workspace-grid .painelTabTitulo2:has(img[src*="books30"])::before  { content: "\1F4DA"; }
/* 🗂️ fichario */
.workspace-grid .painelTabTitulo:has(img[src*="books30"])::before   { content: "\1F5C2\FE0F"; }
/* 👥 grupo */
.workspace-grid .painelTabTitulo2:has(img[src*="crowd"])::before    { content: "\1F465"; }
/* 📖 livro aberto */
.workspace-grid .painelTabTitulo2:has(img[src*="instructor"])::before { content: "\1F4D6"; }
/* 🎓 formatura */
.workspace-grid .painelTabTitulo2:has(img[src*="graduate"])::before { content: "\1F393"; }
/* ⚙️ engrenagem */
.workspace-grid .painelTabTitulo2:has(img[src*="tools"])::before    { content: "\2699\FE0F"; }
/* 🔑 chave */
.workspace-grid .painelTabTitulo:has(img[src*="id12"])::before      { content: "\1F511"; }
/* 📋 prancheta */
.workspace-grid .painelTabTitulo:has(img[src*="file148"])::before   { content: "\1F4CB"; }
/* 📝 memo */
.workspace-grid .painelTabTitulo:has(img[src*="simbolo"])::before   { content: "\1F4DD"; }
/* 📦 caixa */
.workspace-grid .painelTabTitulo:has(img[src*="caixa"])::before     { content: "\1F4E6"; }
/* 💬 balao */
.workspace-grid .painelTabTitulo:has(img[src*="chat"])::before      { content: "\1F4AC"; }
/* 🚌 onibus */
.workspace-grid .painelTabTitulo:has(img[src*="onibus"])::before    { content: "\1F68C"; }

/* Ocultar span que continha as imagens passo01/02/03... (float right) */
.workspace-grid .painelTabTitulo2 > span,
.workspace-grid .painelTabTitulo  > span {
    display: none;
}

/* Badge numerado moderno nos titulos (substitui passo01.fw.png etc.) */
.workspace-grid .painelTab[data-perfil="sec"] .painelTabTitulo2::after {
    content: counter(sec-panel);
    position: absolute;
    right: 10px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    border: 1.5px solid #8aaa38;
    font-size: 12px;
    font-weight: bold;
    color: #1d3a00;
    font-family: Lato, Arial, sans-serif;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    line-height: 1;
}

/* ---- Corpo do painel -------------------------------------- */
.workspace-grid .painelTabTexto,
.workspace-grid .painelTabTexto2 {
    padding: 8px 12px 10px 12px;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 0;
}

/* <a> FILHOS DIRETOS: links de navegacao em bloco clicavel.
   <a> dentro de <p> ficam inline (nao quebram "1) texto"). */
.workspace-grid .painelTabTexto > a,
.workspace-grid .painelTabTexto2 > a {
    display: block;
    padding: 5px 8px;
    border-radius: 5px;
    text-decoration: none;
    font-size: 13px;
    font-family: Lato, Arial, sans-serif;
    color: #1d5a00;
    -webkit-transition: background 0.15s ease, padding-left 0.12s ease;
    transition: background 0.15s ease, padding-left 0.12s ease;
    line-height: 1.4;
}
.workspace-grid .painelTabTexto > a:hover,
.workspace-grid .painelTabTexto2 > a:hover {
    background: rgba(198, 213, 128, 0.35);
    color: #0f2e00;
    padding-left: 14px;
    text-decoration: none;
}

/* Itens numerados (Configuracoes e Historico): hover nao deve
   reduzir padding-left, pois o badge ocupa aquele espaco */
.workspace-grid .painelTabTexto2 > img + a:hover,
.workspace-grid .painelTabTexto.hist-numbered > a:hover {
    padding-left: 34px;
}

/* Suprimir <br> diretos (entre <a> soltos).
   <br> dentro de <p> (e.g. hist-note) sao preservados. */
.workspace-grid .painelTabTexto > br,
.workspace-grid .painelTabTexto2 > br {
    display: none;
}

/* Ocultar <img> diretas do corpo (passo51/52 em Configuracoes) */
.workspace-grid .painelTabTexto2 > img,
.workspace-grid .painelTabTexto  > img {
    display: none;
}

/* ---- Configuracoes: badge numerico (1) (2) nos 2 primeiros links --- */
/* Os links que seguem <img> (mesmo oculta) recebem contador */
.workspace-grid .painelTabTexto2 {
    counter-reset: cfg-step;
}
.workspace-grid .painelTabTexto2 > img + a {
    counter-increment: cfg-step;
    padding-left: 34px;
    position: relative;
}
.workspace-grid .painelTabTexto2 > img + a::before {
    content: counter(cfg-step);
    position: absolute;
    left: 8px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    border: 1.5px solid #8aaa38;
    font-size: 10px;
    font-weight: bold;
    color: #1d3a00;
    font-family: Lato, Arial, sans-serif;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    line-height: 1;
}

/* ---- Historico Escolar: badge numerico (1)-(4) -----------  */
.workspace-grid .painelTabTexto.hist-numbered {
    counter-reset: hist-step;
}
.workspace-grid .painelTabTexto.hist-numbered > a {
    counter-increment: hist-step;
    padding-left: 34px;
    position: relative;
}
.workspace-grid .painelTabTexto.hist-numbered > a::before {
    content: counter(hist-step);
    position: absolute;
    left: 8px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    border: 1.5px solid #8aaa38;
    font-size: 10px;
    font-weight: bold;
    color: #1d3a00;
    font-family: Lato, Arial, sans-serif;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    line-height: 1;
}

/* Nota explicativa abaixo dos links do Historico */
.workspace-grid .painelTabTexto .hist-note {
    margin: 10px 0 2px 0;
    padding: 8px 10px;
    border-top: 1px dashed #c4d47e;
    font-size: 12px;
    color: #4a6200;
    font-family: Lato, Arial, sans-serif;
    line-height: 1.5;
}
.workspace-grid .painelTabTexto .hist-note a {
    color: #1d5a00;
    font-weight: bold;
}
.workspace-grid .painelTabTexto .hist-note a:hover {
    text-decoration: underline;
}

/* ---- <p> genericos dentro de paineis ---------------------- */
.workspace-grid .painelTabTexto p,
.workspace-grid .painelTabTexto2 p {
    margin: 4px 0;
    font-size: 13px;
    font-family: Lato, Arial, sans-serif;
    color: #2a2a2a;
    line-height: 1.6;
}
.workspace-grid .painelTabTexto p a,
.workspace-grid .painelTabTexto2 p a {
    color: #1d5a00;
    text-decoration: none;
}
.workspace-grid .painelTabTexto p a:hover,
.workspace-grid .painelTabTexto2 p a:hover {
    text-decoration: underline;
    color: #0f2e00;
}

/* ---- Responsividade --------------------------------------- */
@media only screen and (min-width: 481px) {
    .workspace-welcome {
        -webkit-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }
    .workspace-grid .painelTab {
        width: calc(50% - 7px);
    }
}
@media only screen and (min-width: 769px) {
    .workspace-grid .painelTab {
        width: calc(33.333% - 10px);
    }
}

/* ============================================================
   TOOLBAR (#bar)
   ============================================================ */

#bar {
    background: linear-gradient(to bottom, #d8ea96 0%, #c6d580 100%);
    border-bottom: 1px solid #a8bc52;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* Logo com altura controlada — sem margin para nao quebrar o align-items:center do flex */
.pagelogo img {
    max-height: 34px;
    width: auto;
    margin: 0;
}

/* Tecnica: mede a largura exata da scrollbar (100vw = viewport, 100% = body sem scrollbar).
   A variavel e herdada por todos os elementos, incluindo os filhos do #bar (position:fixed). */
body {
    --scrollbar-w: calc(100vw - 100%);
}

/* Wrapper interno: alinha ao .gridContainer (max-width 1232px, border-box, conteudo centralizado).
   Padding horizontal replica o do .gridContainer (0.75% de .container = 0.75% * 92.53% da viewport)
   para que logo e menu coincidam com as bordas do .content. */
.bar-inner {
    width: calc(92.53% - var(--scrollbar-w, 0px));
    max-width: 1232px;
    padding: 0 0.7%;
    margin: 0 auto;
    height: 41px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    position: relative;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

/* Logo: comportamento normal dentro do flex */
.bar-inner .pagelogo {
    float: none;
    position: static;
    line-height: 0;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

/* Menu desktop: empurrado para a direita com margin-left: auto */
.bar-inner .menubar {
    position: static;
    float: none;
    top: auto;
    left: auto;
    margin-left: auto;
    font-family: Lato, Arial, sans-serif;
}

/* Botao hamburger mobile: posicionado ao final do flex row.
   Visibilidade (hidden 481px+) ja controlada pelo style.css original. */
.bar-inner .menubar2 {
    position: static;
    left: auto;
    float: none;
    margin-left: 12px;
}

/* Links do menu desktop — pill hover com padding simetrico */
.menubar a {
    border-radius: 6px;
    font-family: Lato, Arial, sans-serif;
    font-size: 13px;
    padding-top: 6px;
    padding-bottom: 6px;
    color: #1d3a00 !important;
    -webkit-transition: background 0.15s ease, color 0.15s ease;
    transition: background 0.15s ease, color 0.15s ease;
}

.menubar a:hover {
    background: rgba(0, 0, 0, 0.11);
    color: #0f2000 !important;
    border-radius: 6px;
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Separador | entre links */
.menubar {
    color: #5a7a00;
    font-family: Lato, Arial, sans-serif;
}

/* ============================================================
   PAINEL CONTEXTUAL (.painel-contextbar)
   Aparece em sub-paginas com info do usuario e navegacao rapida
   ============================================================ */

.painel.painel-contextbar {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 95%;
    float: none;
    margin: 0 2.5% 12px 2.5%;
    background: linear-gradient(135deg, #f5f9e8 0%, #eef3d8 100%);
    border: 1px solid #c4d47e;
    border-left: 4px solid #8aaa38;
    border-radius: 8px;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.07);
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    padding: 0;
}

.painel.painel-contextbar .painel_texto {
    -webkit-flex: 1;
    flex: 1;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 14px;
    font-family: Lato, Arial, sans-serif;
}

/* Nome do usuario */
.painel.painel-contextbar .pc-greeting {
    font-size: 13px;
    color: #1d3a00;
    white-space: nowrap;
}

/* Badge de perfil */
.painel.painel-contextbar .pc-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 20px;
    background: #8aaa38;
    color: #fff;
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-family: Lato, Arial, sans-serif;
    white-space: nowrap;
}

/* Grupo de links de acao */
.painel.painel-contextbar .pc-actions {
    display: -webkit-flex;
    display: flex;
    gap: 6px;
    -webkit-align-items: center;
    align-items: center;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}

.painel.painel-contextbar .pc-link {
    font-size: 12px;
    color: #1d5a00;
    text-decoration: none;
    border: 1px solid #b0c460;
    padding: 3px 10px;
    border-radius: 5px;
    background: rgba(255,255,255,0.5);
    font-family: Lato, Arial, sans-serif;
    white-space: nowrap;
    -webkit-transition: background 0.15s ease, color 0.15s ease;
    transition: background 0.15s ease, color 0.15s ease;
}

.painel.painel-contextbar .pc-link:hover {
    background: #8aaa38;
    color: #fff;
    border-color: #8aaa38;
    text-decoration: none;
}

/* Select de escola (painel SME) */
.painel.painel-contextbar .pc-escola-form {
    display: -webkit-inline-flex;
    display: inline-flex;
}

.painel.painel-contextbar .pc-escola-select {
    font-size: 12px;
    font-family: Lato, Arial, sans-serif;
    border: 1px solid #b0c460;
    border-radius: 5px;
    padding: 3px 8px;
    background: #f5f9e8;
    color: #1d3a00;
    cursor: pointer;
    max-width: 260px;
    -webkit-transition: border-color 0.15s ease;
    transition: border-color 0.15s ease;
}

.painel.painel-contextbar .pc-escola-select:focus {
    border-color: #7a9c00;
    outline: none;
}

/* Botao × fechar */
.painel.painel-contextbar #btn_fechar1 {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 0 14px;
    border-left: 1px solid #d0dc90;
    width: auto;
    margin: 0;
    float: none;
}

.painel.painel-contextbar #btn_fechar1 a {
    font-size: 20px;
    color: #7a9c00;
    text-decoration: none;
    line-height: 1;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-transition: background 0.15s ease, color 0.15s ease;
    transition: background 0.15s ease, color 0.15s ease;
    font-weight: normal;
}

.painel.painel-contextbar #btn_fechar1 a:hover {
    background: rgba(138, 170, 56, 0.25);
    color: #1d3a00;
}

/* ============================================================
   FOOTER
   ============================================================ */

footer {
    background: linear-gradient(to bottom, #d9e2a9 0%, #c6d580 100%);
    border-top: 1px solid #b0c460;
    box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.06);
    padding: 12px 0;
}

.footer-inner {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 8px;
    font-family: Lato, Arial, sans-serif;
    font-size: 12px;
    color: #2d4a00;
}

.footer-brand {
    font-weight: bold;
    color: #1d3a00;
}

.footer-dot {
    color: #7a9c00;
    font-size: 14px;
    line-height: 1;
}

.footer-site {
    color: #3a6000;
}

.footer-year {
    color: #4a6200;
}

/* Remover estilos antigos do footer dentro deste contexto */
footer p,
footer address,
footer div {
    margin: 0;
    padding: 0;
    font-style: normal;
}

/* ---- Seletor de escola SME -------------------------------- */
.workspace-escola-selector {
    margin: 8px 2% 14px 2%;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 10px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.workspace-escola-selector label {
    font-size: 13px;
    font-family: Lato, Arial, sans-serif;
    color: #1d3a00;
    font-weight: bold;
    white-space: nowrap;
}
.workspace-escola-selector select {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    font-size: 15px;
    font-family: Arial, sans-serif;
    border: 1px solid #b0c460;
    border-radius: 7px;
    padding: 6px 10px;
    background: #f5f9e8;
    color: #1d3a00;
    min-width: 280px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.06);
    cursor: pointer;
    -webkit-transition: border-color 0.15s ease, box-shadow 0.15s ease;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.workspace-escola-selector select:focus {
    border-color: #7a9c00;
    box-shadow: 0 0 0 3px rgba(122, 156, 0, 0.15);
    outline: none;
}

/* ============================================================
   LANDING PAGE (page-landing)
   ============================================================ */

/* Body da landing: background escuro cobre qualquer gap entre seções */
body.page-landing {
    background: #1a3800 !important;
    margin: 0;
    padding: 0;
}

/* Oculta toolbar, header e menu mobile na landing page */
body.page-landing #bar {
    display: none !important;
}
body.page-landing header {
    display: none !important;
}
body.page-landing .painelM {
    display: none !important;
}

/* Remove a caixa branca restrita e o h1/h2 do template para a landing */
body.page-landing .container {
    width: 100% !important;
    max-width: 100% !important;
    border: none !important;
    background: transparent !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
body.page-landing .content {
    float: none !important;
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.page-landing .p_cont {
    width: 100% !important;
    margin-left: 0 !important;
    float: none !important;
    display: block !important;
    padding: 0 !important;
}
body.page-landing section {
    padding: 0;
}
body.page-landing #p_titulo,
body.page-landing #p_desc {
    display: none;
}

/* Hero */
.landing-hero {
    background: -webkit-linear-gradient(160deg, #2d5a00 0%, #4a8a00 40%, #7ab520 70%, #c6d580 100%);
    background: linear-gradient(160deg, #2d5a00 0%, #4a8a00 40%, #7ab520 70%, #c6d580 100%);
    padding: 64px 5% 72px;
    text-align: center;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.landing-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 60% 0%, rgba(255,255,255,0.10) 0%, transparent 70%);
    pointer-events: none;
}
.landing-hero-inner {
    max-width: 820px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.landing-hero-logo {
    max-height: 64px;
    width: auto;
    margin-bottom: 28px;
    -webkit-filter: brightness(0) invert(1);
    filter: brightness(0) invert(1);
    opacity: 0.92;
}
.landing-hero h1 {
    font-size: 2.3em;
    font-weight: 700;
    color: #fff;
    margin: 0 0 14px;
    line-height: 1.2;
    text-shadow: 0 2px 8px rgba(0,0,0,0.25);
    font-family: Lato, Arial, sans-serif;
}
.landing-hero-sub {
    font-size: 1.13em;
    color: rgba(255,255,255,0.90);
    margin: 0 0 36px;
    line-height: 1.6;
    font-family: Lato, Arial, sans-serif;
}
.landing-hero-cta {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    gap: 16px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.landing-btn {
    display: inline-block;
    padding: 14px 34px;
    border-radius: 30px;
    font-size: 1em;
    font-weight: 700;
    text-decoration: none !important;
    font-family: Lato, Arial, sans-serif;
    -webkit-transition: -webkit-transform 0.15s ease, box-shadow 0.15s ease;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
    border: none;
}
.landing-btn-primary {
    background: #fff;
    color: #2d5a00 !important;
    box-shadow: 0 4px 18px rgba(0,0,0,0.18);
}
.landing-btn-primary:hover {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.22);
    color: #1d3a00 !important;
}
.landing-btn-secondary {
    background: rgba(255,255,255,0.15);
    color: #fff !important;
    border: 2px solid rgba(255,255,255,0.70);
    backdrop-filter: blur(4px);
}
.landing-btn-secondary:hover {
    background: rgba(255,255,255,0.26);
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    color: #fff !important;
}

/* Section base */
.landing-section {
    padding: 56px 5%;
}
.landing-section-title {
    text-align: center;
    font-size: 1.6em;
    font-weight: 700;
    color: #1d3a00;
    margin: 0 0 8px;
    font-family: Lato, Arial, sans-serif;
}
.landing-section-sub {
    text-align: center;
    color: #557020;
    font-size: 1em;
    margin: 0 0 36px;
    font-family: Lato, Arial, sans-serif;
}

/* Features grid */
.landing-features {
    background: #f8faf0;
}
.landing-features-grid {
    display: -webkit-flex;
    display: flex;
    gap: 20px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: 0 auto;
}
.landing-feature-card {
    -webkit-flex: 1 1 260px;
    flex: 1 1 260px;
    background: #fff;
    border: 1px solid #d4e48a;
    border-radius: 12px;
    padding: 28px 24px;
    box-shadow: 0 2px 10px rgba(70,100,0,0.07);
    -webkit-transition: box-shadow 0.2s ease, -webkit-transform 0.2s ease;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.landing-feature-card:hover {
    box-shadow: 0 6px 22px rgba(70,100,0,0.13);
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
}
.landing-feature-icon {
    font-size: 2.2em;
    margin-bottom: 12px;
    display: block;
}
.landing-feature-card h3 {
    color: #2d5a00;
    font-size: 1.08em;
    font-weight: 700;
    margin: 0 0 10px;
    font-family: Lato, Arial, sans-serif;
}
.landing-feature-card p {
    color: #4a6030;
    font-size: 0.93em;
    line-height: 1.6;
    margin: 0;
    font-family: Lato, Arial, sans-serif;
}

/* Access section */
.landing-access {
    background: #fff;
}
.landing-access-grid {
    display: -webkit-flex;
    display: flex;
    gap: 20px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    justify-content: center;
    max-width: 900px;
    margin: 0 auto;
}
.landing-access-card {
    -webkit-flex: 1 1 220px;
    flex: 1 1 220px;
    max-width: 260px;
    background: #f5f9e8;
    border: 2px solid #c6d580;
    border-radius: 14px;
    padding: 30px 20px 24px;
    text-align: center;
    text-decoration: none !important;
    display: block;
    -webkit-transition: box-shadow 0.2s ease, -webkit-transform 0.2s ease, border-color 0.2s ease;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    color: #1d3a00 !important;
}
.landing-access-card:hover {
    border-color: #8aaa38;
    box-shadow: 0 6px 22px rgba(70,100,0,0.14);
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
    color: #1d3a00 !important;
    text-decoration: none !important;
}
.landing-access-icon {
    font-size: 2.6em;
    display: block;
    margin-bottom: 12px;
}
.landing-access-card strong {
    display: block;
    font-size: 1.05em;
    font-weight: 700;
    color: #2d5a00;
    margin-bottom: 6px;
    font-family: Lato, Arial, sans-serif;
}
.landing-access-card span {
    font-size: 0.88em;
    color: #5a7020;
    font-family: Lato, Arial, sans-serif;
    line-height: 1.4;
    display: block;
}
.landing-access-arrow {
    display: inline-block;
    margin-top: 14px;
    background: #8aaa38;
    color: #fff !important;
    font-size: 0.85em;
    font-weight: 700;
    padding: 6px 18px;
    border-radius: 20px;
    font-family: Lato, Arial, sans-serif;
    -webkit-transition: background 0.15s ease;
    transition: background 0.15s ease;
}
.landing-access-card:hover .landing-access-arrow {
    background: #5a8010;
}

/* CTA */
.landing-cta {
    background: -webkit-linear-gradient(135deg, #1a3800 0%, #2d5a00 60%, #3a7000 100%);
    background: linear-gradient(135deg, #1a3800 0%, #2d5a00 60%, #3a7000 100%);
    color: #fff;
    text-align: center;
    padding: 56px 5%;
}
.landing-cta-inner {
    max-width: 720px;
    margin: 0 auto;
}
.landing-cta h2 {
    color: #fff;
    font-size: 1.7em;
    font-weight: 700;
    margin: 0 0 12px;
    font-family: Lato, Arial, sans-serif;
}
.landing-cta p {
    color: rgba(255,255,255,0.88);
    font-size: 1em;
    line-height: 1.7;
    margin: 0 0 10px;
    font-family: Lato, Arial, sans-serif;
}
.landing-cta a:not(.landing-cta-btn) {
    color: #c6d580 !important;
    font-weight: 700;
}
.landing-cta a:not(.landing-cta-btn):hover {
    color: #fff !important;
}
.landing-cta-actions {
    margin-top: 28px;
    display: -webkit-flex;
    display: flex;
    gap: 14px;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.landing-cta-btn {
    display: inline-block;
    padding: 13px 30px;
    border-radius: 28px;
    font-size: 0.97em;
    font-weight: 700;
    text-decoration: none !important;
    font-family: Lato, Arial, sans-serif;
    -webkit-transition: -webkit-transform 0.15s ease, box-shadow 0.15s ease;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.landing-cta-btn-green {
    background: #c6d580;
    color: #1a3800 !important;
    box-shadow: 0 3px 14px rgba(0,0,0,0.22);
}
.landing-cta-btn-green:hover {
    background: #d6e898;
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    color: #1a3800 !important;
}
.landing-cta-btn-whatsapp {
    background: #25d366;
    color: #fff !important;
    box-shadow: 0 3px 14px rgba(0,0,0,0.22);
}
.landing-cta-btn-whatsapp:hover {
    background: #1ebe5a;
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    color: #fff !important;
}

/* ============================================================
   LOGIN PAGES (page-login)
   ============================================================ */

/* Fundo com gradiente suave para paginas de login */
body.page-login .container {
    background: #f5f8ec !important;
}
body.page-login #p_titulo h1 {
    text-align: center;
    font-family: Lato, Arial, sans-serif;
    color: #2d5a00;
    font-size: 1.5em;
    margin-bottom: 4px;
}
body.page-login #p_desc h3 {
    text-align: center;
    font-size: 0.97em;
    color: #5a7020;
    font-weight: 400;
    margin-top: 0;
    margin-bottom: 24px;
}
/* Centraliza o conteudo do form */
body.page-login .p_cont {
    max-width: 500px;
    margin: 0 auto !important;
    float: none !important;
    width: auto !important;
}

/* Card do formulario de login */
.login-card {
    background: #fff;
    border: 1px solid #d4e48a;
    border-radius: 14px;
    padding: 36px 32px 28px;
    box-shadow: 0 4px 20px rgba(70,100,0,0.10);
    margin-bottom: 24px;
}

/* Campos do formulario */
.login-form .login-field {
    margin-bottom: 18px;
}
.login-form label {
    display: block;
    font-size: 0.88em;
    font-weight: 700;
    color: #3a5a00;
    margin-bottom: 5px;
    font-family: Lato, Arial, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.login-form input[type="text"],
.login-form input[type="password"],
.login-form select {
    display: block;
    width: 100%;
    padding: 11px 14px;
    border: 1px solid #c6d580;
    border-radius: 8px;
    font-size: 0.97em;
    font-family: Lato, Arial, sans-serif;
    color: #1d3a00;
    background: #fafdee;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: border-color 0.15s ease, box-shadow 0.15s ease;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    outline: none;
}
.login-form input[type="text"]:focus,
.login-form input[type="password"]:focus,
.login-form select:focus {
    border-color: #8aaa38;
    box-shadow: 0 0 0 3px rgba(138,170,56,0.15);
}
.login-form .login-submit {
    width: 100%;
    padding: 13px;
    background: -webkit-linear-gradient(to bottom, #8aaa38 0%, #6e8c20 100%);
    background: linear-gradient(to bottom, #8aaa38 0%, #6e8c20 100%);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1em;
    font-weight: 700;
    font-family: Lato, Arial, sans-serif;
    cursor: pointer;
    margin-top: 8px;
    -webkit-transition: background 0.15s ease, box-shadow 0.15s ease;
    transition: background 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 8px rgba(70,100,0,0.18);
}
.login-form .login-submit:hover {
    background: -webkit-linear-gradient(to bottom, #9bbe46 0%, #7a9c28 100%);
    background: linear-gradient(to bottom, #9bbe46 0%, #7a9c28 100%);
    box-shadow: 0 4px 14px rgba(70,100,0,0.25);
}
.login-form .login-submit:disabled {
    opacity: 0.65;
    cursor: default;
}
.login-form .login-hint {
    margin-top: 16px;
    font-size: 0.88em;
    color: #6a7a40;
    text-align: center;
    font-family: Lato, Arial, sans-serif;
}
.login-form .login-hint a {
    color: #4a7800;
    font-weight: 700;
}
/* reCAPTCHA container */
.login-recaptcha {
    margin: 16px 0 8px;
}

/* Seletor de login (act=login) */
.access-selector {
    display: -webkit-flex;
    display: flex;
    gap: 18px;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 16px 0 8px;
}
.access-card {
    -webkit-flex: 1 1 180px;
    flex: 1 1 180px;
    max-width: 220px;
    background: #fff;
    border: 2px solid #c6d580;
    border-radius: 14px;
    padding: 28px 16px 22px;
    text-align: center;
    text-decoration: none !important;
    display: block;
    color: #1d3a00 !important;
    -webkit-transition: box-shadow 0.2s ease, border-color 0.2s ease, -webkit-transform 0.2s ease;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
.access-card:hover {
    border-color: #8aaa38;
    box-shadow: 0 6px 22px rgba(70,100,0,0.14);
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
    text-decoration: none !important;
    color: #1d3a00 !important;
}
.access-card-icon {
    font-size: 2.6em;
    display: block;
    margin-bottom: 10px;
}
.access-card strong {
    display: block;
    font-size: 1em;
    font-weight: 700;
    color: #2d5a00;
    margin-bottom: 6px;
    font-family: Lato, Arial, sans-serif;
}
.access-card p {
    font-size: 0.85em;
    color: #5a7020;
    line-height: 1.45;
    margin: 0 0 14px;
    font-family: Lato, Arial, sans-serif;
}
.access-card-badge {
    display: inline-block;
    background: #c6d580;
    color: #1a3800;
    font-size: 0.78em;
    font-weight: 700;
    padding: 4px 14px;
    border-radius: 20px;
    font-family: Lato, Arial, sans-serif;
}
.access-card:hover .access-card-badge {
    background: #8aaa38;
    color: #fff;
}
