/* GMIPPA: adapta a navegação e os formulários. O papel de impressão mantém seu tamanho. */
.gm-menu-toggle,.gm-menu-fundo { display: none; }
.gm-tabela-rolagem { width: 100%; min-width: 0; max-width: 100%; }
@media screen {
    .gm-tabela-rolagem { overflow: auto; -webkit-overflow-scrolling: touch; }
    .gm-tabela-rolagem:focus-visible,.gm-documento-rolagem:focus-visible { outline: 3px solid #72a47e; outline-offset: 2px; }
    .gm-dica-tabela,.gm-dica-documento { margin: 8px 0; color: #476551; font: 13px/1.5 Arial,sans-serif; }
    .gm-documento-rolagem { width: 100%; max-width: 100vw; overflow: auto; -webkit-overflow-scrolling: touch; }
    .gm-documento-rolagem > #ata-render-target,.gm-documento-rolagem > #livro-paginas,
    .gm-documento-rolagem > .paginas-certificado { flex: none; }
    body.gm-tem-documento { display: block; }
    .gm-tem-documento .painel-fixo,.gm-tem-documento .botoes-controle { box-sizing: border-box; }
}
@media screen and (max-width: 1024px) {
    html { -webkit-text-size-adjust: 100%; }
    body.gm-app { display: block; width: auto; min-width: 0; margin: 0; }
    body.gm-menu-aberto { overflow: hidden; }
    .gm-app .sidebar,.gm-app .sidebar:hover,.gm-app .sidebar.active {
        display: flex !important; position: fixed !important; inset: 0 auto 0 0 !important;
        width: min(82vw,300px) !important; height: 100vh; height: 100dvh;
        transform: translateX(-105%); transition: transform .2s ease; z-index: 1201 !important;
        padding-top: env(safe-area-inset-top); overflow-x: hidden; overflow-y: auto;
        background: linear-gradient(180deg,#1b5e20,#2e7d32); visibility: hidden;
    }
    .gm-app.gm-menu-aberto .sidebar { transform: translateX(0); visibility: visible; }
    .gm-app .sidebar .menu a span { display: inline !important; opacity: 1 !important; white-space: normal; }
    .gm-app .sidebar .texto-igreja { display: block !important; opacity: 1 !important; white-space: normal; max-width: 200px; font-size: 12px; }
    .gm-app .sidebar .logo-sidebar { width: 55px !important; max-width: 55px; height: auto !important; }
    .gm-app .sidebar-header { min-height: 100px; height: auto !important; padding: 14px 10px; }
    .gm-app .sidebar .header-link { flex-direction: column; gap: 8px; }
    .gm-app .sidebar .menu a { min-height: 48px; height: auto; padding-block: 10px; justify-content: flex-start !important; gap: 0 !important; }
    .gm-app .sidebar .menu a > i:not(.arrow-dropdown) { min-width: 48px !important; width: 48px !important; flex: 0 0 48px !important; text-align: center; }
    .gm-app .sidebar .submenu a { padding-left: 18px !important; padding-right: 10px !important; border-left-width: 0; }
    .gm-app .sidebar .arrow-dropdown { display: inline-block !important; margin-left: auto; margin-right: 14px; min-width: 12px !important; width: 12px; flex: 0 0 12px; }
    .gm-app .sidebar .submenu { display: none !important; }
    .gm-app .sidebar .menu-item-dropdown.open > .submenu { display: flex !important; flex-direction: column; }
    .gm-app .main-content,.gm-app .sidebar:hover + .main-content {
        box-sizing: border-box; margin: 0 !important; width: 100% !important; min-width: 0 !important;
        padding: 78px 16px 24px !important;
    }
    .gm-menu-toggle,.gm-app .mobile-menu-toggle {
        position: fixed !important; top: max(12px,env(safe-area-inset-top)) !important; left: 12px !important;
        display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
        z-index: 1202 !important; width: auto !important; min-width: 100px; height: 44px;
        padding: 10px 14px !important; background: #164219; color: white; border: 1px solid #fff6;
        border-radius: 8px; font: 600 16px/1.2 Arial,sans-serif; cursor: pointer; box-shadow: 0 2px 9px #0002;
    }
    .gm-app.gm-menu-aberto .gm-menu-toggle { left: auto !important; right: 12px !important; min-width: 44px; }
    .gm-menu-fundo { position: fixed; inset: 0; width: 100%; height: 100%; background: #14251bc0; border: 0; z-index: 1200; }
    .gm-menu-aberto .gm-menu-fundo { display: block; }
    .gm-app .main-content > *, .gm-app form, .gm-app [class*="grid"] > *,
    .gm-app .input-group,.gm-app .form-group,.gm-app .form-item,.gm-app .filter-group { min-width: 0; max-width: 100%; box-sizing: border-box; }
    .gm-app .top-header,.gm-app .header-page,.gm-app .page-header,.gm-app .finance-header,
    .gm-app .header-form,.gm-app .header-actions,.gm-app .filtros-livro,.gm-app .detalhes-livro,
    .gm-app .acoes-relatorio,.gm-app .d-flex.justify-content-between { flex-wrap: wrap !important; gap: 12px !important; }
    .gm-app .stats-grid,.gm-app .charts-grid,.gm-app .resumo-cards,.gm-app .dashboard-cards {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 14px !important;
    }
    .gm-app .form-grid,.gm-app .grid-form,.gm-app .form-cadastro,.gm-app .grid-4-col,.gm-app .grid-3-col {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    .gm-app .gm-form-row { flex-wrap: wrap !important; }
    .gm-app .filter-bar,.gm-app .filter-container { flex-wrap: wrap !important; gap: 12px !important; }
    .gm-app .filter-group { flex: 1 1 200px !important; }
    .gm-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .gm-app select,.gm-app textarea { box-sizing: border-box; max-width: 100%; min-width: 0 !important; font-size: 16px !important; }
    .gm-app input[type="checkbox"],.gm-app input[type="radio"] { flex: 0 0 auto; width: auto; }
    .gm-app button,.gm-app [class*="btn-"],.gm-app .btn { min-height: 44px; max-width: 100%; white-space: normal; }
    .gm-app .btn-act,.gm-app .col-acoes a,.gm-app td.acoes a { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
    .gm-app h1 { font-size: clamp(22px,4vw,30px); overflow-wrap: anywhere; }
    .gm-app .bday-item { min-width: 0; flex: 1 1 260px; max-width: 100%; box-sizing: border-box; }
    .gm-app .card-relatorio,.gm-app .form-card,.gm-app .form-container,.gm-app .form-ata,
    .gm-app .table-card { box-sizing: border-box; min-width: 0; max-width: 100%; }
    .gm-app .table-container { min-width: 0; max-width: 100%; }
    .gm-app .tox-tinymce { min-width: 0 !important; max-width: 100%; }
    .gm-app .tox .tox-toolbar__group { flex-wrap: wrap; }
    .gm-app .modal-dialog { width: auto; max-width: calc(100vw - 24px); margin: 12px; }
    .gm-app .modal-content { max-height: calc(100dvh - 24px); overflow-y: auto; }
    .gm-tem-documento .painel-fixo,.gm-tem-documento .botoes-controle,
    .gm-tem-documento > .no-print { width: auto; max-width: calc(100vw - 24px); margin-left: 12px; margin-right: 12px; }
    .gm-tem-documento .navegacao-topo,.gm-tem-documento .barra-acoes,.gm-tem-documento .passos { display: flex; flex-wrap: wrap; gap: 10px; }
    .gm-tem-documento .painel-fixo input[type="file"] { max-width: 100%; min-width: 0; }
    .gm-tem-documento .painel-rubricas { box-sizing: border-box; }
    .gm-tem-documento .painel-rubricas canvas { width: min(100%,600px); max-width: 100%; }
    .gm-tem-documento button,.gm-tem-documento .btn-acao { min-height: 44px; max-width: 100%; white-space: normal; }
    .gm-login,.gm-login body { width: 100%; min-width: 0; height: auto !important; min-height: 100vh; min-height: 100svh; box-sizing: border-box; }
    .gm-login body { padding: 24px 12px; }
    .gm-login .login-wrapper { width: 100%; max-width: 420px; }
    .gm-login .login-card { width: 100%; max-width: 420px; margin: auto; padding: 24px; }
    .gm-login input { font-size: 16px; }
    .gm-login .login-card:hover { transform: none; }
}
@media screen and (max-width: 600px) {
    .gm-app .main-content { padding-left: 12px !important; padding-right: 12px !important; }
    .gm-app .form-grid,.gm-app .grid-form,.gm-app .form-cadastro,.gm-app .grid-4-col,
    .gm-app .grid-3-col,.gm-app .grid-2-col,.gm-app .stats-grid,.gm-app .charts-grid,
    .gm-app .resumo-cards,.gm-app .dashboard-cards,.gm-app .grid-mandatos,.gm-app .grid-livros {
        grid-template-columns: minmax(0,1fr) !important;
    }
    .gm-app .form-grid > *,.gm-app .grid-form > *,.gm-app .form-cadastro > *,
    .gm-app .grid-4-col > *,.gm-app .grid-3-col > *,.gm-app .grid-2-col > * { grid-column: auto !important; }
    .gm-app .gm-form-row,.gm-app .form-row,.gm-app .row:not(.gm-nao-empilhar) { flex-direction: column !important; }
    .gm-app .gm-form-row > * { width: 100% !important; min-width: 0 !important; margin-left: 0 !important; }
    .gm-app .filter-bar,.gm-app .filter-container { flex-direction: column !important; align-items: stretch !important; }
    .gm-app .filter-group { flex: none !important; width: 100% !important; }
    .gm-app .form-actions,.gm-app .acoes-form,.gm-app .botoes-container,.gm-app .btn-container { display: flex; flex-direction: column; gap: 10px; }
    .gm-app .form-actions > *,.gm-app .acoes-form > *,.gm-app .botoes-container > * { width: 100%; min-width: 0 !important; justify-content: center; text-align: center; box-sizing: border-box; }
    .gm-app .form-card,.gm-app .form-container,.gm-app .card-relatorio,.gm-app .form-ata { padding: 16px !important; }
    .gm-app .form-section-title { font-size: 16px; padding: 10px; }
    .gm-app .form-section-title i { margin-right: 10px; }
    .gm-app .header-actions { width: 100%; }
    .gm-app .header-actions > a { flex: 1 1 150px; justify-content: center; }
    .gm-app .search-atas { max-width: 100%; }
    .gm-app .search-atas input { width: 100% !important; min-width: 0; }
    .gm-tem-documento .navegacao-topo > *,.gm-tem-documento .barra-acoes > * { flex: 1 1 180px; box-sizing: border-box; justify-content: center; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .gm-app .sidebar { transition: none !important; } }
@media print {
    .gm-menu-toggle,.gm-menu-fundo,.gm-dica-tabela,.gm-dica-documento { display: none !important; }
    .gm-documento-rolagem,.gm-tabela-rolagem { display: contents !important; overflow: visible !important; width: auto; max-width: none; }
}

@media screen and (max-width: 1024px) {
    .gm-app .card-mandato { min-width: 0 !important; width: 100%; max-width: 100%; box-sizing: border-box; }
    .gm-app .mandato-header { flex-wrap: wrap; gap: 8px; }
    .gm-app .form-row { grid-template-columns: minmax(0,1fr) !important; }
    body.gm-avulso { box-sizing: border-box; width: 100%; min-width: 0; margin: 0; padding: 16px; }
    .gm-avulso .card,.gm-avulso .container,.gm-avulso .camera-box,.gm-avulso .container-aprova {
        box-sizing: border-box; max-width: 100%; min-width: 0; padding: 18px;
    }
    .gm-avulso input,.gm-avulso button,.gm-avulso .btn { box-sizing: border-box; max-width: 100%; font-size: 16px; }
    .gm-avulso .btn-group { flex-wrap: wrap; }
    .gm-avulso .qr-frame,.gm-avulso .qr-container { max-width: 100%; box-sizing: border-box; }
    .gm-avulso .qr-frame img,.gm-avulso .qr-img { max-width: 100%; height: auto; }
}

@media screen and (max-width: 1024px) {
    #tela-gestao-mandatos .grid-mandatos { display: grid !important; width: 100%; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)) !important; }
    #tela-gestao-mandatos .card-mandato { min-width: 0 !important; width: 100% !important; max-width: 100%; }
}
@media screen and (max-width: 600px) {
    .gm-app .livros-grid { grid-template-columns: minmax(0,1fr) !important; }
    .gm-app .livros-grid .card-livro { min-width: 0; max-width: 100%; box-sizing: border-box; }
    .gm-app .d-flex,.gm-app .botoes-acoes,.gm-app .controles-edicao { flex-wrap: wrap !important; gap: 10px; }
    .gm-app .controles-edicao > label { min-width: 0; flex: 1 1 180px; }
    .gm-avulso #camera-container { box-sizing: border-box; max-width: 100%; }
}
