/* ==========================
   RESET & ACORN VARIABLES
========================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Acorn Color Palette */
    --acorn-blue-50: #0060df; /* Cor Primária (Firefox Blue) */
    --acorn-blue-60: #003eaa; /* Cor de Hover */
    
    --acorn-ink-90: #15141A;  /* Texto Principal */
    --acorn-ink-70: #5B5B66;  /* Texto Secundário */
    
    --acorn-grey-10: #F9F9FB; /* Fundo da Página */
    --acorn-grey-20: #E0E0E6; /* Bordas de Cards */
    --acorn-grey-30: #8F8F9D; /* Bordas de Inputs */
    --acorn-white: #FFFFFF;   /* Fundo de Cards */

    --acorn-green-50: #00875A; /* Sucesso */
    --acorn-yellow-50: #FFBD4F; /* Alerta */
    --acorn-red-50: #E22850;   /* Perigo */

    /* Acorn Metrics */
    --acorn-radius-sm: 4px;
    --acorn-radius-md: 8px;
    --acorn-shadow: 0 2px 6px rgba(21, 20, 26, 0.08);
}

body {
    background: var(--acorn-grey-10);
    /* Tipografia oficial de fallback do Acorn caso a Inter não esteja disponível */
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif;
    color: var(--acorn-ink-90);
    padding: 24px;
    padding-top: 76px; /* Altura ideal para não cobrir o conteúdo */
    padding-bottom: 200px;
    line-height: 1.5;
    scroll-behavior: smooth; /* Rolagem suave ao clicar nos links */
}

.acorn-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 52px; /* Altura compacta padrão das barras de ferramentas da Mozilla */
    background: #ffffff;
    border-bottom: 1px solid #e0e0e3; /* Linha divisória fina cinza-claro */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    z-index: 1000;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.acorn-header-container {
    max-width: 1300px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
}

/* Grupo da Marca */
.acorn-brand-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.acorn-logo {
    display: flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: #15141a; /* Cor de texto Ink 90 da Mozilla */
    font-size: 15px;
}

.acorn-logo strong {
    font-weight: 700;
    letter-spacing: -0.02em;
}

.acorn-logo .logo-subtext {
    color: #5b5b66; /* Texto secundário */
    font-weight: 400;
}

/* Divisor Vertical do Acorn */
.acorn-divider {
    width: 1px;
    height: 16px;
    background: #ced0d6;
}

/* Badge de Versão Minimalista */
.acorn-version-badge {
    background: #f0f0f4;
    color: #5b5b66;
    font-size: 11px;
    font-weight: 500;
    padding: 2px 6px;
    border-radius: 4px;
}

/* Menu de Navegação */
.acorn-nav {
    height: 100%;
}

.acorn-nav-list {
    display: flex;
    list-style: none;
    height: 100%;
    margin: 0;
    padding: 0;
    gap: 4px;
}

.acorn-nav-list li {
    display: flex;
    align-items: center;
    height: 100%;
}

/* Links estilo abas do Firefox */
.acorn-nav-link {
    display: flex;
    align-items: center;
    height: 36px; /* Não ocupa a altura total, cria um efeito de pílula flutuante */
    padding: 0 12px;
    color: #5b5b66; /* Ink 70 */
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 500;
    border-radius: 4px;
    transition: background-color 0.1s ease, color 0.1s ease;
}

/* Hover idêntico ao Acorn: Fundo cinza sutil e texto azul oficial do Firefox */
.acorn-nav-link:hover {
    background-color: #f0f0f4;
    color: #0060df; /* Firefox Blue */
}

/* Estado de Foco Acessível (Padrão Mozilla) */
.acorn-nav-link:focus-visible {
    outline: 2px solid #0060df;
    outline-offset: -2px;
}

/* ==========================================
   CAIXA DE FERRAMENTAS FLUTUANTE (ACORN)
========================================== */

.acorn-nav-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 100%;
}

.acorn-toolbox-container {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
}

/* Botão do menu com contornos oficiais Acorn */
.acorn-toolbox-btn {
    background: transparent;
    border: 1px solid #ced0d6;
    border-radius: 4px;
    height: 34px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 600;
    color: #15141a;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: background-color 0.1s, border-color 0.1s;
}

.acorn-toolbox-btn:hover {
    background-color: #f0f0f4;
    border-color: #b1b4be;
    color: #0060df;
}

.hamburger-icon {
    font-size: 14px;
}

/* Painel suspenso do Dropdown */
.acorn-toolbox-dropdown {
    display: none; /* Controlado pelo JavaScript */
    position: absolute;
    top: 42px;
    right: 0;
    background: #ffffff;
    border: 1px solid #ced0d6;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    width: 240px;
    padding: 6px 0;
    z-index: 2000;
}

/* Classe utilitária de abertura */
.acorn-toolbox-dropdown.show {
    display: block;
}

/* Itens de clique internos */
.dropdown-item {
    width: 100%;
    background: transparent;
    border: none;
    padding: 10px 16px;
    text-align: left;
    font-size: 13px;
    font-weight: 500;
    color: #5b5b66;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background-color 0.1s, color 0.1s;
}

.dropdown-item:hover {
    background-color: #f0f0f4;
    color: #0060df;
}

/* Divisor horizontal sutil */
.dropdown-divider {
    height: 1px;
    background-color: #e0e0e3;
    margin: 6px 0;
}

/* Estilo para ações destrutivas (Limpar dados) */
.dropdown-item.item-danger {
    color: #e22850; /* Acorn Red */
}

.dropdown-item.item-danger:hover {
    background-color: #fdf2f4;
    color: #c50042;
}

/* Ajuste de responsividade para telas pequenas */
@media (max-width: 850px) {
    .acorn-nav-wrapper {
        width: 100%;
        justify-content: space-between;
        margin-top: 4px;
    }
    
    .toolbox-label {
        display: none; /* Em telas mobile exibe apenas o ícone de hambúrguer ☰ para poupar espaço */
    }
    
    .acorn-toolbox-btn {
        padding: 0 10px;
    }
}

/* Ocultação total na folha de impressão */
@media print {
    .acorn-toolbox-container,
    .acorn-toolbox-dropdown {
        display: none !important;
    }
}

/* ==========================================
   RESPONSIVIDADE COMPACTA (MOBILE)
========================================== */
@media (max-width: 850px) {
    body {
        padding-top: 88px;
    }

    .acorn-header {
        height: auto;
        padding: 6px 0;
    }

    .acorn-header-container {
        flex-direction: column;
        gap: 6px;
        align-items: flex-start;
    }

    .acorn-brand-group {
        padding-left: 8px;
    }

    .acorn-nav {
        width: 100%;
        overflow-x: auto; /* Scroll horizontal suave nas abas se a tela for muito pequena */
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .acorn-nav-list {
        padding: 2px 8px;
    }

    .acorn-nav-link {
        height: 32px;
        font-size: 12.5px;
    }
}

/* Garante que o cabeçalho desapareça completamente no papel */
@media print {
    .acorn-header {
        display: none !important;
    }
}

/* --- ESTILIZAÇÃO DO SELETOR DE BACKGROUND NO MENU ACORN --- */
.dropdown-section-title {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 16px 4px 16px;
    user-select: none;
}

.dropdown-custom-bg-group {
    padding: 4px 16px 10px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bg-color-picker-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    color: var(--dropdown-item-txt);
    cursor: pointer;
    font-weight: 500;
}

/* Botão de Upload Arquivo Local */
.bg-upload-wrapper {
    display: block;
    text-align: center;
    background: var(--btn-default-bg);
    color: var(--text-primary);
    border: 1px solid var(--border-card);
    padding: 6px 10px;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: var(--acorn-radius-sm);
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s;
}

.bg-upload-wrapper:hover {
    background: var(--dropdown-hover-bg);
    border-color: var(--acorn-blue-50);
}

/* Customização do input type color para ficar no padrão Acorn circular */
input[type="color"]#bgCorPicker {
    -webkit-appearance: none;
    border: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    background: transparent;
}

input[type="color"]#bgCorPicker::-webkit-color-swatch-wrapper {
    padding: 0;
}

input[type="color"]#bgCorPicker::-webkit-color-swatch {
    border: 1px solid var(--border-card);
    border-radius: 50%;
}

/* Input de texto para URL dentro do menu */
#bgUrlInput {
    padding: 6px 8px !important;
    font-size: 0.75rem !important;
    background-color: var(--input-bg) !important;
    border: 1px solid var(--input-border) !important;
    color: var(--input-text) !important;
    border-radius: var(--acorn-radius-sm) !important;
}

/* Botão de reset interno mais discreto */
.dropdown-item.item-reset {
    padding: 6px 0 !important;
    font-size: 0.8rem !important;
    color: var(--text-secondary) !important;
}
.dropdown-item.item-reset:hover {
    background: transparent !important;
    color: var(--acorn-blue-50) !important;
}

/* ==========================
   CONTAINER
========================== */

.container {
    max-width: 1400px;
    margin: auto;
}

/* ==========================
   CARDS
========================== */

/* ==========================================================================
   ATUALIZAÇÃO DO SELETOR DOS CARDS (FORÇANDO TRANSPARÊNCIA)
   ========================================================================== */

.card {
    /* Forçamos o background a usar a variável transparente com !important */
    background: var(--bg-card) !important;
    
    border: 1px solid var(--border-card) !important;
    border-radius: var(--acorn-radius-md) !important;
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--acorn-shadow);
    
    /* Ativação do efeito de vidro fosco (Glassmorphism) */
    backdrop-filter: var(--card-blur) !important;
    -webkit-backdrop-filter: var(--card-blur) !important;
    
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.card h2 {
    color: var(--acorn-ink-90);
    margin-bottom: 20px;
    font-size: 1.25rem;
    font-weight: 600;
}

header.card {
    text-align: center;
    padding: 32px 24px;
}

header.card h1 {
    color: var(--acorn-ink-90);
    margin-bottom: 8px;
    font-size: 2rem;
    font-weight: 700;
}

header.card p {
    color: var(--acorn-ink-70);
    font-size: 1.1rem;
}

/* ==========================
   FORMULÁRIOS (ACORN INPUTS)
========================== */

.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.campo {
    display: flex;
    flex-direction: column;
}

.campo label {
    margin-bottom: 8px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--acorn-ink-90);
}

input,
select,
textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--acorn-grey-30);
    border-radius: var(--acorn-radius-sm);
    background: var(--acorn-white);
    font-size: 1rem;
    color: var(--acorn-ink-90);
    transition: border-color 0.2s, box-shadow 0.2s;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--acorn-blue-50);
    /* Focus ring característico do Acorn */
    box-shadow: 0 0 0 3px rgba(0, 96, 223, 0.3); 
}

textarea {
    min-height: 120px;
    resize: vertical;
}

.lancamento {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}

.lancamento input[type="text"] {
    flex: 2;
}

.lancamento input[type="number"] {
    width: 140px;
}

/* ==========================
   RESUMO FINANCEIRO
========================== */

.resumo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.resultado-card {
    background: var(--acorn-grey-10);
    border: 1px solid var(--acorn-grey-20);
    border-left: 4px solid var(--acorn-ink-70);
    border-radius: var(--acorn-radius-sm);
    padding: 16px;
}

.resultado-card span {
    display: block;
    color: var(--acorn-ink-70);
    font-size: 0.875rem;
    margin-bottom: 4px;
}

.resultado-card strong {
    font-size: 1.25rem;
    color: var(--acorn-ink-90);
}

.destaque {
    background: #EBF4FF; /* Fundo levemente azulado */
    border-color: #BBD6FE;
    border-left-color: var(--acorn-blue-50);
}

.destaque strong {
    color: var(--acorn-blue-50);
}

/* ==========================
   INDICADORES (ACORN STATUS)
========================== */

.indicador {
    padding: 16px;
    border-radius: var(--acorn-radius-sm);
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.indicador.excelente {
    background: #E5F6EE;
    color: var(--acorn-green-50);
    border-color: #A3E4C6;
}

.indicador.atencao {
    background: #FFF4E0;
    color: #995900; /* Alerta mais escuro para legibilidade */
    border-color: var(--acorn-yellow-50);
}

.indicador.comprometido {
    background: #FDF0F3;
    color: var(--acorn-red-50);
    border-color: #F8B4C4;
}

/* ==========================
   HISTÓRICO (ACORN TABLES)
========================== */

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

thead {
    background: var(--acorn-grey-10);
    border-bottom: 2px solid var(--acorn-grey-20);
}

th {
    padding: 12px 16px;
    text-align: left;
    color: var(--acorn-ink-70);
    font-weight: 600;
}

td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--acorn-grey-20);
    color: var(--acorn-ink-90);
}

tbody tr:hover {
    background: var(--acorn-grey-10);
}

/* ==========================
   AÇÕES (ACORN BUTTONS)
========================== */

.acoes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

button {
    border: 1px solid transparent;
    border-radius: var(--acorn-radius-sm);
    padding: 10px 16px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
    background: var(--acorn-grey-20);
    color: var(--acorn-ink-90);
}

button:hover {
    background: #D1D1DB;
}

button:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 96, 223, 0.3);
}

/* Botão Primário (Firefox Blue) */
#btnPDF {
    background: var(--acorn-blue-50);
    color: var(--acorn-white);
}

#btnPDF:hover {
    background: var(--acorn-blue-60);
}


/* Adicionar Recebível/Desconto */
#addRecebivel, #addDesconto {
    background: var(--acorn-white);
    border: 1px solid var(--acorn-grey-30);
    margin-bottom: 16px;
}

#addRecebivel:hover, #addDesconto:hover {
    background: var(--acorn-grey-10);
}

/* ==========================================
   CARD DE INCENTIVO PIX (ESTILO ACORN)
========================================== */

.card-doacao {
    background-color: #f4fbf7 !important; /* Verde menta ultra suave */
    border: 1px dashed #00875a !important; /* Linha pontilhada usando o Acorn Green */
    animation: surgimentoSuave 0.3s ease-out;
}

.card-doacao h3 {
    color: #00875a !important;
    margin-top: 0;
    margin-bottom: 6px;
    font-size: 1.15rem;
}

.card-doacao p {
    color: #5b5b66;
    font-size: 0.9rem;
    margin: 0 0 12px 0;
}

.pix-container {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #ffffff;
    padding: 6px 12px;
    border: 1px solid #ced0d6;
    border-radius: 6px;
    width: fit-content;
}

.pix-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #15141a;
}

.pix-chave {
    font-family: monospace;
    font-size: 0.95rem;
    background: #f0f0f4;
    padding: 2px 6px;
    border-radius: 4px;
    color: #0060df;
}

.btn-copiar-pix {
    background: #ffffff;
    border: 1px solid #0060df; /* Acorn Blue */
    color: #0060df;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.1s;
}

.btn-copiar-pix:hover {
    background-color: #f0f0f4;
}

/* Efeito de transição para o card não surgir travado */
@keyframes surgimentoSuave {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Garante isolamento absoluto: o PIX não deve sair impresso no relatório final */
@media print {
    .card-doacao {
        display: none !important;
    }
    /* Oculta a calculadora completamente na impressão e geração de PDF */
    .calc-flutuante {
        display: none !important;
    }
}


/* ==========================
   GRÁFICO
========================== */

canvas {
    width: 100% !important;
    max-height: 500px;
}

/* ==========================
   BARRA DE PROGRESSO
========================== */

.progresso-container {
    width: 100%;
    height: 8px; /* Acorn usa barras mais finas e elegantes */
    background: var(--acorn-grey-20);
    border-radius: var(--acorn-radius-sm);
    overflow: hidden;
    margin-top: 8px;
}

.progresso-barra {
    height: 100%;
    width: 0%;
    background: var(--acorn-green-50);
    transition: width 0.3s ease;
}

/* ==========================
   RESPONSIVO
========================== */

@media(max-width: 768px) {
    body {
        padding: 12px;
        padding-top: 100px;
    }

    .card {
        padding: 16px;
    }

    .acoes {
        grid-template-columns: 1fr;
    }

    .resumo-grid {
        grid-template-columns: 1fr;
    }

    table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ==========================================
   OTIMIZAÇÃO DE IMPRESSÃO EXTRA COMPACTA
========================================== */

/* Reduz drasticamente as margens da folha para aproveitar ao máximo o papel */
@page {
    size: auto;
    margin: 8mm 10mm 8mm 10mm;
}

@media print {
    
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    body {
        background: #ffffff !important;
        color: #000000 !important;
        padding: 0 !important;
        margin: 0 !important;
        font-size: 9.5pt; /* Fonte sutilmente menor para economizar espaço vertical */
        line-height: 1.3;  /* Entrelinha mais justa */
    }

    /* Ocultar elementos desnecessários */
    .acoes, button, .lancamento button, input[type="file"], nav, .navbar {
        display: none !important;
    }

    /* COMPACTAÇÃO DOS CARDS */
    .card {
        background: #ffffff !important;
        box-shadow: none !important;
        border: 1px solid #cbd5e1 !important; 
        margin-bottom: 8px !important; /* Reduzido de 18px para 8px */
        padding: 10px 12px !important; /* Reduzido o espaçamento interno interno */
        
        /* Evita quebras órfãs, mas sem empurrar blocos pequenos para páginas inteiras novas */
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .card h2 {
        color: var(--cor-primaria) !important;
        border-bottom: 1px solid #e2e8f0 !important;
        padding-bottom: 3px;
        margin-bottom: 8px !important;
        font-size: 1.1rem; /* Título ligeiramente menor */
    }

    /* GRADES MAIS APERTADAS */
    .grid, 
    .resumo-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important; 
        gap: 8px !important; /* Reduzido o espaço entre colunas de formulários */
    }

    .campo label {
        margin-bottom: 2px;
        font-size: 9pt;
    }

    /* INPUTS ULTRA COMPACTOS */
    input, 
    select, 
    textarea {
        border: none !important;
        border-bottom: 1px solid #b0bec5 !important;
        border-radius: 0 !important;
        padding: 2px 0 !important; /* Espaço interno mínimo */
        background: transparent !important;
        color: #000000 !important;
        font-weight: 600;
        font-size: 9.5pt;
        appearance: none;
        -moz-appearance: none;
    }

    .lancamento {
        margin-bottom: 4px !important;
        padding-bottom: 2px;
    }

    /* TABELA DE HISTÓRICO COMPACTA */
    table {
        display: table !important;
        width: 100% !important;
    }

    th, td {
        padding: 5px 8px !important; /* Diminuído o respiro das células da tabela */
        font-size: 9pt;
    }

    /* REDUÇÃO AGRESSIVA DOS GRÁFICOS (Essencial para salvar páginas) */
    canvas {
        max-width: 90% !important;
        height: auto !important;
        max-height: 180px !important; /* Reduzido de 320px para 180px */
        margin: 0 auto !important;
    }

    /* PRESERVAÇÃO DAS CORES DOS INDICADORES */
    .resultado-card {
        background: #f8fafc !important;
        border-left: 4px solid var(--cor-secundaria) !important;
        padding: 8px 12px !important;
    }
    .resultado-card strong { font-size: 1.1rem; }
    .indicador { padding: 8px !important; font-size: 1rem; }

    .resultado-card.destaque { background: #e3f2fd !important; }
    .indicador.excelente { background: #e8f5e9 !important; color: var(--cor-sucesso) !important; }
    .indicador.atencao { background: #fff8e1 !important; color: var(--cor-alerta) !important; }
    .indicador.comprometido { background: #ffebee !important; color: var(--cor-perigo) !important; }
}
/* ==========================================================================
   8. CORREÇÃO ABSOLUTA DA CALCULADORA FLUTUANTE (ESTILO ACORN MINIMALISTA)
   ========================================================================== */

.calc-flutuante {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 280px;
    background: var(--bg-card);
    border: 1px solid var(--border-card) !important;
    border-radius: var(--acorn-radius-md);
    box-shadow: 0 4px 16px rgba(21, 20, 26, 0.08) !important;
    z-index: 999;
    overflow: hidden;
    
    /* Efeito Minimalista de Transparência Padrão */
    opacity: 0.45;
    transform: translateY(0);
    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), 
                width 0.2s ease, 
                box-shadow 0.25s ease !important;
}

/* Modo Escuro: Ajuste sutil na sombra para profundidade */
[data-theme="dark"] .calc-flutuante {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4) !important;
}

/* Ativação por Passagem do Rato ou Foco nos Inputs */
.calc-flutuante:hover,
.calc-flutuante:focus-within {
    opacity: 1.0;
    transform: translateY(-2px); /* Leve elevação fluida estilo Acorn */
    box-shadow: 0 8px 24px rgba(21, 20, 26, 0.12) !important;
}

[data-theme="dark"] .calc-flutuante:hover,
[data-theme="dark"] .calc-flutuante:focus-within {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5) !important;
}

/* Quando minimizada, mantém o comportamento minimalista */
.calc-flutuante.minimizada {
    width: 190px;
}

.calc-flutuante.minimizada .calc-body {
    display: none;
}

/* Cabeçalho Limpo e Flat */
.calc-header {
    background: transparent !important; /* Remove o bloco sólido de cor pesada */
    color: var(--text-primary) !important; /* Texto herda a cor principal do tema */
    border-bottom: 1px solid var(--border-card);
    padding: 12px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

/* Ícone de minimizar minimalista */
#calcToggleMin {
    color: var(--text-secondary);
    font-size: 1.1rem;
    line-height: 1;
}

.calc-body {
    padding: 14px;
    background: transparent !important;
}

/* Campo de Input integrado sem bordas berrantes */
#calcInput {
    width: 100% !important;
    padding: 10px !important;
    font-size: 0.9rem !important;
    border: 1px solid var(--input-border) !important;
    border-radius: var(--acorn-radius-sm) !important;
    margin-bottom: 10px !important;
    text-align: right !important;
    background: var(--calc-input-bg) !important;
    color: var(--calc-input-text) !important;
    transition: border-color 0.15s ease;
}

#calcInput:focus {
    background: var(--input-bg-focus) !important;
    border-color: var(--acorn-blue-50) !important;
}

/* Bloco de Resultado Elegante */
#calcResultado {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    text-align: right !important;
    color: var(--calc-resultado-txt) !important;
    padding-top: 2px !important;
    word-wrap: break-word !important;
    font-family: var(--fundo-mono, monospace);
}

/* ==========================================
   CAMPOS CALCULADOS / READONLY
========================================== */

.campo-calculado, input[readonly] {
    background-color: #f1f5f9 !important; /* Fundo cinza claro */
    color: #334155 !important;           /* Texto levemente mais escuro */
    font-weight: bold;
    border: 1px solid #cbd5e1 !important;
    cursor: not-allowed;                  /* Cursor indicador de bloqueado */
}

/* ==================================================
   PALETA OFICIAL MOZILLA ACORN DESIGN TOKENS
================================================== */

:root {
    /* --- TOKENS DE CORES BASE ACORN (TEMA CLARO ORIGINAIS) --- */
    --acorn-blue-50: #0060df; /* Cor Primária (Firefox Blue) */
    --acorn-blue-60: #003eaa; /* Cor de Hover */
    
    --acorn-ink-90: #15141A;  /* Texto Principal */
    --acorn-ink-70: #5B5B66;  /* Texto Secundário */
    
    --acorn-grey-10: #F9F9FB; /* Fundo da Página / Inputs Readonly */
    --acorn-grey-20: #E0E0E6; /* Bordas de Cards e Divisores */
    --acorn-grey-30: #8F8F9D; /* Bordas de Inputs Ativos */
    --acorn-white: rgba(255, 255, 255, 0.85);   /* Fundo de Cards e Contentores */

    --acorn-green-50: #00875A; /* Sucesso */
    --acorn-yellow-50: #FFBD4F; /* Alerta */
    --acorn-red-50: #E22850;   /* Perigo */

    /* --- VARIÁVEIS SEMÂNTICAS ADAPTATIVAS --- */
    --bg-pagina: var(--acorn-grey-10);
    --bg-card: rgba(255, 255, 255, 0.8);
    --border-card: var(--acorn-grey-20);
    
    --text-primary: var(--acorn-ink-90);
    --text-secondary: var(--acorn-ink-70);
    
    --header-bg: #ffffff;
    --header-border: #e0e0e3;

    /* REFINAMENTO: Menu Dropdown (Claro) */
    --dropdown-bg: #ffffff;
    --dropdown-border: #cbd5e1;
    --dropdown-item-txt: var(--acorn-ink-90);
    --dropdown-hover-bg: #f0f0f4;
    --dropdown-hover-txt: var(--acorn-blue-50);
    --dropdown-shadow: 0 4px 12px rgba(21, 20, 26, 0.12);

    /* Inputs, Tabelas e Textareas */
    --input-bg: #ffffff;
    --input-bg-focus: #ffffff;
    --input-border: #cbd5e1;
    --input-text: var(--acorn-ink-90);
    --table-header-bg: var(--acorn-grey-10);
    --table-border: var(--acorn-grey-20);

    /* REFINAMENTO: Calculadora Rápida (Claro) */
    --calc-header-bg: var(--acorn-blue-50);
    --calc-header-txt: #ffffff;
    --calc-body-bg: #ffffff;
    --calc-input-bg: #f8fafc;
    --calc-input-border: #cbd5e1;
    --calc-input-text: var(--acorn-ink-90);
    --calc-resultado-txt: #263238;

    /* Saúde Financeira */
    --bg-excelente: #E5F6EE;
    --txt-excelente: var(--acorn-green-50);
    --border-excelente: #A3E4C6;

    --bg-atencao: #FFF4E0;
    --txt-atencao: #995900;
    --border-atencao: var(--acorn-yellow-50);

    --bg-comprometido: #FDF0F3;
    --txt-comprometido: var(--acorn-red-50);
    --border-comprometido: #F8B4C4;

    /* Card de Doação PIX (Claro) */
    --bg-doacao: #f4fbf7;
    --border-doacao: var(--acorn-green-50);
    --title-doacao: var(--acorn-green-50);
    --container-pix-bg: #ffffff;
    --container-pix-border: #cbd5e1;
    --pix-chave-bg: #f1f5f9;
    --pix-chave-txt: var(--acorn-ink-90);

    /* Botões Gerais */
    --btn-default-bg: var(--acorn-grey-20);
    --btn-default-txt: var(--acorn-ink-90);
    --btn-default-hover: #D1D1DB;

    /* Métricas */
    --acorn-radius-sm: 4px;
    --acorn-radius-md: 8px;
    --acorn-shadow: 0 2px 6px rgba(21, 20, 26, 0.08);
}

[data-theme="dark"] {
    /* --- MAPEAMENTO DINÂMICO DOS TOKENS ACORN PARA DARK MODE --- */
    --acorn-blue-50: #45a1ff;  /* Neon Firefox Blue */
    --acorn-blue-60: #0060df;
    
    --acorn-ink-90: #FBFBFE;  /* Off-White */
    --acorn-ink-70: #BFBFC5;  /* Muted Grey */
    
    --acorn-grey-10: #1C1B22; /* Fundo Charcoal Profundo (Firefox Dark Tab) */
    --acorn-grey-20: #42414D; /* Linhas e Divisores */
    --acorn-grey-30: #5B5B66; /* Bordas de Foco */
    --acorn-white: #2B2A33;   /* Fundo Elevado (Firefox Container Dark) */

    /* Reconfiguração das Variáveis Adaptativas */
    --bg-pagina: var(--acorn-grey-10);
    --bg-card: rgba(43, 42, 51, 0.75);
    --border-card: rgba(66, 65, 77, 0.9); /* Borda sutilmente transparente */
    
    --text-primary: var(--acorn-ink-90);
    --text-secondary: var(--acorn-ink-70);
    
    --header-bg: #2B2A33;
    --header-border: #42414D;

    /* REFINAMENTO ALTÍSSIMO DE CONTRASTE: Menu Dropdown (Escuro) */
    --dropdown-bg: #2B2A33;
    --dropdown-border: #5B5B66;
    --dropdown-item-txt: var(--acorn-ink-90);
    --dropdown-hover-bg: #42414D;         /* Cinza Mozilla Acorn para hover do item */
    --dropdown-hover-txt: #45a1ff;         /* Contraste perfeito com azul neon ativo */
    --dropdown-shadow: 0 6px 16px rgba(0, 0, 0, 0.5);

    /* Inputs, Tabelas e Textareas Adaptados */
    --input-bg: #1C1B22;
    --input-bg-focus: #2B2A33;
    --input-border: var(--acorn-grey-30);
    --input-text: var(--acorn-ink-90);
    --table-header-bg: #2B2A33;
    --table-border: var(--acorn-grey-20);

    /* CORREÇÃO CRÍTICA DE CONTRASTE: Calculadora Rápida no Dark Mode */
    --calc-header-bg: #42414D;
    --calc-header-txt: var(--acorn-ink-90);
    --calc-body-bg: #2B2A33;
    --calc-input-bg: #1C1B22;              /* Fundo escuro absoluto para o campo de texto */
    --calc-input-border: var(--acorn-grey-30);
    --calc-input-text: #FBFBFE;            /* Texto digitado fica OFF-WHITE ultra legível */
    --calc-resultado-txt: #45a1ff;         /* Resultado brilha em azul neon (Alto contraste) */

    /* Saúde Financeira Contraste Controlado */
    --bg-excelente: rgba(0, 135, 90, 0.2);
    --txt-excelente: #30e0a1;
    --border-excelente: var(--acorn-green-50);

    --bg-atencao: rgba(255, 189, 79, 0.12);
    --txt-atencao: #ffa911;
    --border-atencao: #b37d00;

    --bg-comprometido: rgba(226, 40, 80, 0.18);
    --txt-comprometido: #ff7491;
    --border-comprometido: var(--acorn-red-50);

    /* Card de Doação PIX (Escuro) */
    --bg-doacao: #1C2620;
    --border-doacao: #00875A;
    --title-doacao: #30e0a1;
    --container-pix-bg: #2B2A33;
    --container-pix-border: #42414D;
    --pix-chave-bg: #1C1B22;
    --pix-chave-txt: #45a1ff;

    /* Botões Gerais Modificados para Escuro */
    --btn-default-bg: #42414D;
    --btn-default-txt: var(--acorn-ink-90);
    --btn-default-hover: #5B5B66;
}

/* ==================================================
   VINCULAÇÃO E APLICAÇÃO DOS ESTILOS REFINADOS
================================================== */

body {
    background-color: var(--bg-pagina);
    color: var(--text-primary);
}

.card {
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    box-shadow: var(--acorn-shadow);
}

/* --- MENU TOOLBOX DROPDOWN (PROPRIEDADES LIMPAS SEM DUPLICAÇÃO) --- */
.acorn-header {
    background: var(--header-bg);
    border-bottom: 1px solid var(--header-border);
}

.acorn-toolbox-dropdown {
    background: var(--dropdown-bg) !important;
    border: 1px solid var(--dropdown-border) !important;
    border-radius: var(--acorn-radius-md) !important;
    box-shadow: var(--dropdown-shadow) !important;
    padding: 6px 0 !important;
    min-width: 220px !important;
}

.dropdown-item {
    color: var(--dropdown-item-txt) !important;
    padding: 10px 16px !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    background: transparent !important;
    border: none !important;
    width: 100% !important;
    text-align: left !important;
    cursor: pointer !important;
    display: block !important;
    transition: background-color 0.15s ease, color 0.15s ease !important;
}

/* CORREÇÃO DO HOVER: Aplica estritamente as variáveis semânticas correspondentes */
.dropdown-item:hover {
    background-color: var(--dropdown-hover-bg) !important;
    color: var(--dropdown-hover-txt) !important;
}

.dropdown-divider {
    background-color: var(--border-card) !important;
    height: 1px !important;
    margin: 6px 0 !important;
    border: none !important;
}

.dropdown-item.item-danger {
    color: var(--acorn-red-50) !important;
}
.dropdown-item.item-danger:hover {
    background-color: rgba(222, 40, 80, 0.15) !important;
    color: #ff7491 !important;
}

/* --- CORREÇÃO E ISOLAMENTO DA CALCULADORA FLUTUANTE --- */
.calc-flutuante {
    border: 1px solid var(--border-card) !important;
    box-shadow: var(--dropdown-shadow) !important;
}

.calc-header {
    background: var(--calc-header-bg) !important;
    color: var(--calc-header-txt) !important;
}

.calc-body {
    background: var(--calc-body-bg) !important;
}

/* IMPORTANTE: Uso do !important para anular regras fixas antigas do final do arquivo */
#calcInput {
    background: var(--calc-input-bg) !important;
    border: 1px solid var(--calc-input-border) !important;
    color: var(--calc-input-text) !important;
}

#calcInput:focus {
    background: var(--input-bg-focus) !important;
    border-color: var(--acorn-blue-50) !important;
}

#calcResultado {
    color: var(--calc-resultado-txt) !important;
}

/* --- FORMULÁRIOS E INPUTS GERAIS --- */
input[type="number"], input[type="text"], input[type="date"], select, textarea {
    background-color: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--input-text);
}

input:focus, select:focus, textarea:focus {
    background-color: var(--input-bg-focus);
    border-color: var(--acorn-blue-50);
}

.campo-calculado, input[readonly] {
    background-color: var(--bg-pagina) !important;
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-card) !important;
}

table th {
    background-color: var(--table-header-bg);
    color: var(--text-primary);
}

table td {
    border-bottom: 1px solid var(--table-border);
    color: var(--text-primary);
}

button:not(#btnPDF):not(.dropdown-item):not(.btn-copiar-pix):not(.btn-excluir) {
    background: var(--btn-default-bg);
    color: var(--btn-default-txt);
}

button:not(#btnPDF):not(.dropdown-item):not(.btn-copiar-pix):not(.btn-excluir):hover {
    background: var(--btn-default-hover);
}

#btnPDF {
    background: var(--acorn-blue-50);
    color: #ffffff;
}
#btnPDF:hover {
    background: var(--acorn-blue-60);
}

/* --- CARD DE DOAÇÃO PIX REFINADO --- */
.card-doacao {
    background-color: var(--bg-doacao) !important;
    border: 1px dashed var(--border-doacao) !important;
    border-radius: var(--acorn-radius-md);
    padding: 20px !important;
}

.card-doacao h3 {
    color: var(--title-doacao) !important;
}

.pix-container {
    background: var(--container-pix-bg) !important;
    border: 1px solid var(--container-pix-border) !important;
}

.pix-chave {
    background: var(--pix-chave-bg) !important;
    color: var(--pix-chave-txt) !important;
    border: 1px solid var(--border-card) !important;
}

.btn-copiar-pix {
    background: var(--btn-default-bg) !important;
    border: 1px solid var(--border-card) !important;
    color: var(--text-primary) !important;
}

.btn-copiar-pix:hover {
    background-color: var(--btn-default-hover) !important;
    border-color: var(--acorn-blue-50) !important;
}

/* Saúde Financeira */
.indicador.excelente { background: var(--bg-excelente); color: var(--txt-excelente); border-color: var(--border-excelente); }
.indicador.atencao { background: var(--bg-atencao); color: var(--txt-atencao); border-color: var(--border-atencao); }
.indicador.comprometido { background: var(--bg-comprometido); color: var(--txt-comprometido); border-color: var(--border-comprometido); }

.destaque { background: rgba(0, 96, 223, 0.1) !important; border-color: var(--acorn-blue-50) !important; }
.destaque strong { color: var(--acorn-blue-50) !important; }