/* ==========================================================================
   DailyPocketApps - Core CSS (dpa-core.css)
   Estilos globais, animações e utilitários unificados do ecossistema.
   ========================================================================== */

/* -----------------------------------------
   1. BASE & COMPORTAMENTO DE TELA
   ----------------------------------------- */
html, body {
    overflow-x: clip; /* Previne scroll horizontal indesejado em dispositivos móveis */
    width: 100%;
    position: relative;
    scroll-behavior: smooth;
}

/* -----------------------------------------
   2. BARRAS DE ROLAGEM (Scrollbars)
   ----------------------------------------- */
/* Ocultar barra de rolagem mas manter funcionalidade (Usado no CalmWave, WhereTo, etc) */
.hide-scrollbar::-webkit-scrollbar { 
    display: none; 
}
.hide-scrollbar { 
    -ms-overflow-style: none; 
    scrollbar-width: none; 
}

/* Barra de rolagem fina e elegante (Usado no RainPulse) */
.scrollbar-thin::-webkit-scrollbar { 
    height: 6px; 
    width: 6px; 
}
.scrollbar-thin::-webkit-scrollbar-track { 
    background: rgba(156, 163, 175, 0.1); 
    border-radius: 4px; 
}
.scrollbar-thin::-webkit-scrollbar-thumb { 
    background: rgba(148, 163, 184, 0.4); 
    border-radius: 4px; 
}

/* -----------------------------------------
   3. COMPONENTES GLOBAIS DE UI
   ----------------------------------------- */
/* Contêineres de Publicidade */
.ad-container {
    min-height: 90px;
    background: rgba(156, 163, 175, 0.05);
    border: 1px dashed rgba(156, 163, 175, 0.2);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Sistema de Sanfona (Accordion) do FAQ */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, padding 0.3s ease;
}
.faq-active .faq-answer {
    max-height: 400px;
    padding-bottom: 12px;
}
.faq-active .faq-icon {
    transform: rotate(180deg);
}

/* Abas de Doação (Pix / Ko-fi) */
.donation-tab-content.hidden {
    display: none;
}

/* -----------------------------------------
   4. MOTOR DE ANIMAÇÕES
   ----------------------------------------- */
/* Fade-in suave (Usado em modais e atualizações de dados meteorológicos) */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { 
    animation: fadeIn 0.5s ease-out forwards; 
}

/* Efeito de pulso ao atualizar dados (Usado no RainPulse) */
@keyframes pulseUpdate {
    0% { opacity: 0.3; }
    100% { opacity: 1; }
}
.animate-pulse-update { 
    animation: pulseUpdate 0.5s ease-out forwards; 
}

/* Animação de Anéis de Radar (Usado no PinPulse) */
@keyframes pulse-ring {
    0% { transform: scale(0.8); opacity: 0.5; }
    80% { transform: scale(2.5); opacity: 0; }
    100% { transform: scale(2.5); opacity: 0; }
}
.pulse-ring { 
    animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite; 
}

/* -----------------------------------------
   5. ESTILOS ESPECÍFICOS DE APLICATIVOS
   ----------------------------------------- */
/* Fundo matricial/radar do PinPulse */
.radar-bg {
    background-size: 40px 40px;
    background-image: linear-gradient(to right, rgba(16, 185, 129, 0.05) 1px, transparent 1px),
                      linear-gradient(to bottom, rgba(16, 185, 129, 0.05) 1px, transparent 1px);
}
.dark .radar-bg {
    background-image: linear-gradient(to right, rgba(16, 185, 129, 0.1) 1px, transparent 1px),
                      linear-gradient(to bottom, rgba(16, 185, 129, 0.1) 1px, transparent 1px);
}