/* Tema visual do site público (inspirado em campos e céus de animação japonesa). Não é usado em /admin. */
body.gh {
    --ceu: #bfe6f5; --ceu-forte: #6fb7e9; --creme: #fff8e7; --papel: #fffdf6;
    --verde: #5fa563; --verde-escuro: #3f7d49; --musgo: #2f3e34;
    --coral: #e0775c; --coral-escuro: #c75f46; --sol: #ffd166; --rosa: #f7b6c2;
    --sombra: 0 6px 18px rgba(63, 125, 73, .18);
    font-family: 'Nunito', system-ui, sans-serif;
    color: var(--musgo);
    background: var(--creme);
    background-image: radial-gradient(circle at 12% 8%, rgba(191,230,245,.55) 0, transparent 40%), radial-gradient(circle at 90% 2%, rgba(255,209,102,.25) 0, transparent 35%);
    background-attachment: fixed;
    line-height: 1.6;
}
body.gh h1, body.gh h2, body.gh h3, body.gh h4, body.gh h5, body.gh .h2, body.gh .h3, body.gh .h4, body.gh .h5 {
    font-family: 'Fredoka', 'Nunito', sans-serif; font-weight: 600; color: var(--verde-escuro);
}
body.gh a:link, body.gh a:visited { color: var(--coral-escuro); }
body.gh a:hover { color: var(--verde-escuro); }
body.gh .text-muted { color: #6b7a6e !important; }

/* Cabeçalho */
body.gh .site-header { background: rgba(255,253,246,.92); backdrop-filter: blur(6px); box-shadow: 0 2px 0 rgba(95,165,99,.25); position: sticky; top: 0; z-index: 20; }
body.gh .site-header .logo { display: flex; align-items: center; gap: 10px; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.5rem; color: var(--verde-escuro) !important; }
body.gh .site-header .logo img { width: 44px; height: 44px; }
body.gh .site-header .logo:hover { color: var(--coral) !important; }

/* Botões */
body.gh .btn { border-radius: 999px; font-weight: 700; padding: .5rem 1.2rem; border-width: 2px; transition: transform .15s, box-shadow .15s, background .15s; }
body.gh .btn:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.12); }
body.gh .btn-dark, body.gh .btn-dark:visited { background: var(--coral); border-color: var(--coral); color: #fff !important; }
body.gh .btn-dark:hover, body.gh .btn-dark:focus { background: var(--coral-escuro); border-color: var(--coral-escuro); }
body.gh .btn-outline-dark { color: var(--verde-escuro) !important; border-color: var(--verde); background: transparent; }
body.gh .btn-outline-dark:hover { background: var(--verde); border-color: var(--verde); color: #fff !important; }
body.gh .btn-success, body.gh a.btn-success { background: var(--verde); border-color: var(--verde); color: #fff; }
body.gh .btn-success:hover, body.gh a.btn-success:hover, body.gh a.btn-success:focus { background: var(--verde-escuro); border-color: var(--verde-escuro); color: #fff; }
body.gh .btn-outline-danger { border-radius: 999px; }
body.gh .btn-lg { padding: .8rem 1.8rem; font-size: 1.15rem; }
body.gh .btn:focus, body.gh .form-control:focus { box-shadow: 0 0 0 .25rem rgba(95,165,99,.3); }

/* Cartões e formulários */
body.gh .cartao, body.gh .polaroid-login {
    background: var(--papel); border: 2px solid #eadfc3; border-radius: 22px; box-shadow: var(--sombra); margin: 18px 0;
}
body.gh .cartao { padding: 24px; }
body.gh .polaroid-login { padding: 28px 0; margin-top: 28px; position: relative; }
body.gh .form-control { border: 2px solid #e5dcc3; border-radius: 14px; background: #fff; padding: .6rem .9rem; height: auto; }
body.gh .form-control:focus { border-color: var(--verde); }
body.gh label { font-weight: 700; }
body.gh .alert { border-radius: 16px; border-width: 2px; }
body.gh .badge { border-radius: 999px; padding: .4em .8em; font-weight: 700; }
body.gh .badge-success { background: var(--verde); } body.gh .badge-warning { background: var(--sol); color: var(--musgo); } body.gh .badge-danger { background: var(--coral); }
body.gh .badge-dark, body.gh .badge-secondary { background: #8aa38f; }
body.gh .codigo { background: #fdeec0; color: var(--musgo); border-radius: 10px; padding: 2px 10px; }
body.gh .table thead th { border-top: 0; color: var(--verde-escuro); }
body.gh .amigo-tirado { font-family: 'Fredoka', sans-serif; color: var(--coral); font-size: 2.6rem; }
body.gh .input-group .form-control { border-radius: 14px 0 0 14px; } body.gh .input-group-append .btn { border-radius: 0 999px 999px 0; }

/* Herói com cenário */
body.gh { overflow-x: hidden; }
body.gh .hero-cenario {
    margin: 0 calc(50% - 50vw); padding: 56px 15px 230px; text-align: center; position: relative;
    background: url('/assets/img/cenario.svg') center bottom / cover no-repeat, linear-gradient(#6fb7e9, #fdf1d3);
    border-radius: 0 0 36px 36px; overflow: hidden;
}
body.gh .hero-cenario h1 { font-size: 2.7rem; color: #fff; text-shadow: 0 3px 0 rgba(47,62,52,.25), 0 8px 24px rgba(47,62,52,.25); }
body.gh .hero-cenario p.lead { color: #fff; font-weight: 700; text-shadow: 0 2px 10px rgba(47,62,52,.45); max-width: 620px; margin: 12px auto 24px; }
body.gh .hero-cenario .bolinha { position: absolute; bottom: 6px; left: 8%; width: 84px; animation: flutuar 4s ease-in-out infinite; }
body.gh .hero-cenario .bolinha.b2 { left: auto; right: 14%; width: 60px; animation-delay: -2s; }
@keyframes flutuar { 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { body.gh .hero-cenario .bolinha { animation: none; } body.gh .btn { transition: none; } }

body.gh .passo { text-align: center; }
body.gh .passo img { width: 120px; height: 100px; }
body.gh .passo .num { font-family: 'Fredoka', sans-serif; color: var(--coral); font-size: 1.1rem; font-weight: 600; }
body.gh .passo h2 { margin-top: 4px; }
body.gh .lista-feliz { list-style: none; padding: 0; margin: 0; }
body.gh .lista-feliz li { padding-left: 2.1rem; margin: .6rem 0; position: relative; }
body.gh .lista-feliz li::before { content: '🌱'; position: absolute; left: 0; }
body.gh .faixa-final { text-align: center; background: linear-gradient(135deg, #d9f0d4, #fdf1d3); border-radius: 28px; padding: 36px 20px; margin: 30px 0; border: 2px solid #cfe6c6; }
body.gh .faixa-final img { width: 90px; }
body.gh .vazio { text-align: center; } body.gh .vazio img { width: 90px; }

/* Rodapé */
body.gh footer.page-footer { border: 0; margin-top: 40px; padding: 0 0 24px; background: var(--verde-escuro); color: #eaf5e4; }
body.gh svg.colinas { background: transparent; }
body.gh footer.page-footer a:link, body.gh footer.page-footer a:visited { color: #ffe9a0; }
body.gh footer.page-footer a:hover { color: #fff; }

@media (max-width: 576px) {
    body.gh .site-header { position: static; }
    body.gh .site-header .logo { font-size: 1.25rem; }
    body.gh .hero-cenario { padding: 36px 12px 170px; }
    body.gh .hero-cenario h1 { font-size: 1.9rem; }
    body.gh .hero-cenario .bolinha { width: 60px; } body.gh .hero-cenario .bolinha.b2 { width: 44px; }
    body.gh .cartao { padding: 18px; }
    body.gh .amigo-tirado { font-size: 2rem; }
}
