/* ========================================
   CVGHR - Estilos para Impressão
   ======================================== */

/* Estilos específicos para documentos apenas na impressão */

/* Configurações gerais de impressão */
@media print {
    
    /* ============== ELEMENTOS A OCULTAR ============== */
    
    /* Navegação principal */
    .navbar,
    .navbar-dark,
    .navbar-expand-lg,
    nav,
    
    /* Barras laterais e menus */
    .sidebar,
    .side-nav,
    
    /* Botões de ação */
    .btn,
    .button,
    .no-print,
    .print-button,
    .btn-group,
    .action-buttons,
    
    /* Elementos de controle */
    .dropdown,
    .dropdown-menu,
    .pagination,
    .breadcrumb,
    
    /* Alertas e notificações */
    .alert,
    .toast,
    .notification,
    
    /* Rodapé */
    footer,
    .footer,
    
    /* Formulários não relacionados ao documento */
    form:not(.print-form),
    .form-controls,
    
    /* Ações de usuário */
    .user-menu,
    .profile-menu,
    
    /* Elementos específicos do CVGHR */
    .cvghr-nav,
    .admin-panel,
    .debug-info {
        display: none !important;
    }
    
    /* ============== CONFIGURAÇÕES GERAIS ============== */
    
    /* Remover cores de fundo para economizar tinta */
    * {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    
    /* Configuração da página */
    @page {
        size: A4;
        margin: 1.5cm 1cm 1cm 1cm;
        orphans: 3;
        widows: 3;
    }
    
    /* Corpo da página */
    body {
        font-family: "Times New Roman", Times, serif !important;
        font-size: 12pt !important;
        line-height: 1.4 !important;
        color: #000 !important;
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Container principal */
    .container,
    .container-fluid {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* ============== ELEMENTOS ESPECÍFICOS DO DOCUMENTO ============== */
    
    /* Container do recibo/documento */
    .payslip-container,
    .certificate-container,
    .document-container,
    .print-content {
        border: 1px solid #000 !important;
        margin: 0 !important;
        padding: 15pt !important;
        page-break-inside: avoid;
        width: 100% !important;
        max-width: none !important;
        box-shadow: none !important;
    }
    
    /* Cabeçalho do documento */
    .header,
    .document-header {
        border-bottom: 2pt solid #000 !important;
        padding-bottom: 10pt !important;
        margin-bottom: 15pt !important;
        page-break-after: avoid;
    }
    
    /* Informações da empresa */
    .company-info {
        font-size: 11pt !important;
    }
    
    /* Título do documento */
    .payslip-title,
    .document-title,
    h1, h2, h3 {
        color: #000 !important;
        font-weight: bold !important;
        text-align: center !important;
        margin: 10pt 0 !important;
        page-break-after: avoid;
    }
    
    .payslip-title {
        font-size: 18pt !important;
        text-transform: uppercase;
        letter-spacing: 1pt;
    }
    
    /* Tabelas */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
        margin: 10pt 0 !important;
        page-break-inside: auto;
    }
    
    th, td {
        border: 1pt solid #000 !important;
        padding: 6pt !important;
        text-align: left !important;
        font-size: 11pt !important;
    }
    
    th {
        background: #f0f0f0 !important;
        font-weight: bold !important;
        text-align: center !important;
    }
    
    .text-end,
    .text-right {
        text-align: right !important;
    }
    
    /* Seções específicas */
    .employee-info,
    .period-info {
        background: #f9f9f9 !important;
        border: 1pt solid #ccc !important;
        padding: 10pt !important;
        margin: 10pt 0 !important;
    }
    
    .earnings-table,
    .deductions-table {
        margin: 15pt 0 !important;
    }
    
    /* Totais */
    .totals,
    .net-salary {
        border-top: 2pt solid #000 !important;
        padding-top: 10pt !important;
        margin-top: 15pt !important;
        font-weight: bold !important;
        page-break-inside: avoid;
    }
    
    .totals-row {
        display: flex !important;
        justify-content: space-between !important;
        margin-bottom: 5pt !important;
    }
    
    .net-salary {
        font-size: 14pt !important;
        text-align: center !important;
    }
    
    /* Rodapé do documento */
    .footer,
    .document-footer {
        margin-top: 20pt !important;
        font-size: 10pt !important;
        text-align: center !important;
        color: #666 !important;
        border-top: 1pt solid #ccc !important;
        padding-top: 10pt !important;
    }
    
    /* ============== QUEBRAS DE PÁGINA ============== */
    
    /* Evitar quebras em elementos importantes */
    .employee-info,
    .period-info,
    .header,
    .totals,
    .net-salary {
        page-break-inside: avoid !important;
    }
    
    /* Forçar nova página antes de certos elementos */
    .new-page {
        page-break-before: always !important;
    }
    
    /* ============== ELEMENTOS ESPECÍFICOS ============== */
    
    /* Links - mostrar apenas o texto */
    a {
        text-decoration: none !important;
        color: inherit !important;
    }
    
    /* Ocultar ícones Font Awesome */
    .fas,
    .far,
    .fab,
    .fa,
    .bi {
        display: none !important;
    }
    
    /* Imagens - manter apenas logos */
    img:not(.logo) {
        display: none !important;
    }
    
    .logo {
        max-width: 150pt !important;
        max-height: 80pt !important;
    }
    
    /* ============== ELEMENTOS BOOTSTRAP A OCULTAR ============== */
    
    .badge,
    .card-header:not(.document-header),
    .card-footer,
    .modal,
    .offcanvas,
    .progress,
    .spinner-border,
    .tooltip,
    .popover {
        display: none !important;
    }
    
    /* ============== OTIMIZAÇÕES ESPECÍFICAS ============== */
    
    /* Remover espaçamentos desnecessários */
    .mb-4, .mb-3, .mb-2,
    .mt-4, .mt-3, .mt-2,
    .py-4, .py-3, .py-2 {
        margin: 5pt 0 !important;
        padding: 2pt 0 !important;
    }
    
    /* Container de botões - ocultar completamente */
    .btn-toolbar,
    .button-group,
    .action-bar {
        display: none !important;
    }
    
    /* Elementos de formulário não essenciais */
    input[type="button"],
    input[type="submit"],
    button {
        display: none !important;
    }
    
    /* ============== IMPRESSÃO RESPONSIVA ============== */
    
    .row {
        display: block !important;
        width: 100% !important;
    }
    
    .col-md-6,
    .col-lg-6,
    .col-sm-6 {
        width: 48% !important;
        float: left !important;
        margin-right: 2% !important;
    }
    
    .col-md-12,
    .col-lg-12,
    .col-sm-12 {
        width: 100% !important;
        float: none !important;
    }
    
    /* Limpar floats */
    .clearfix::after {
        content: "";
        display: table;
        clear: both;
    }
} 

/* ===================================================================
   ESTILOS DE IMPRESSÃO OTIMIZADOS - Layout fiel à imagem de referência
   =================================================================== */
@media print {
    /* Reset completo para impressão com foco em imagens */
    * {
        -webkit-print-color-adjust: exact !important;
        color-adjust: exact !important; 
        print-color-adjust: exact !important;
        box-sizing: border-box !important;
    }
    
    /* Forçar impressão de todas as imagens e backgrounds */
    *, *::before, *::after {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    body {
        font-family: 'Times New Roman', serif !important;
        font-size: 11pt !important;
        line-height: 1.4 !important;
        background: white !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #000 !important;
    }

    /* Configuração exata da página A4 */
    @page {
        size: A4;
        margin: 25mm 20mm 25mm 20mm;
    }

    /* Container principal - replicando o layout da imagem */
    .certificate-container,
    .contract-container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 20pt !important;
        background: white !important;
        box-shadow: none !important;
        border: 2pt solid #000 !important;
        min-height: 240mm !important;
        position: relative !important;
    }

    /* === CABEÇALHO EXATO COMO NA IMAGEM === */
    .certificate-header,
    .contract-header {
        position: relative !important;
        height: 80pt !important;
        margin-bottom: 25pt !important;
        border-bottom: 1pt solid #000 !important;
        padding-bottom: 15pt !important;
    }
    
    /* === CABEÇALHO: REPOSICIONAR ELEMENTOS NA IMPRESSÃO === */
    .certificate-header h2,
    .contract-header h2 {
        margin-left: 70pt !important; /* Espaço para o logo */
        text-align: left !important;
    }
    
    .certificate-header p,
    .contract-header p {
        margin-left: 70pt !important; /* Espaço para o logo */
        text-align: left !important;
    }

    /* Logo posicionado exatamente como na imagem - FORÇADO MÁXIMO */
    .certificate-header img,
    .contract-header img {
        /* === GARANTIR VISIBILIDADE TOTAL === */
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        
        /* === POSICIONAMENTO ABSOLUTO === */
        position: absolute !important;
        top: 5pt !important;
        left: 5pt !important;
        
        /* === DIMENSÕES FIXAS === */
        width: 60pt !important;
        height: 60pt !important;
        min-width: 60pt !important;
        min-height: 60pt !important;
        max-width: 60pt !important;
        max-height: 60pt !important;
        
        /* === FORÇAR IMPRESSÃO - CRÍTICO === */
        -webkit-print-color-adjust: exact !important;
        color-adjust: exact !important;
        print-color-adjust: exact !important;
        
        /* === ESTILO VISUAL === */
        border: 1pt solid #ccc !important;
        background: white !important;
        background-color: white !important;
        
        /* === Z-INDEX MÁXIMO === */
        z-index: 9999 !important;
        
        /* === EVITAR QUEBRA === */
        page-break-inside: avoid !important;
        page-break-before: avoid !important;
        page-break-after: avoid !important;
        
        /* === GARANTIR QUE NÃO SEJA OCULTO === */
        clip: unset !important;
        clip-path: unset !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
        
        /* === FORÇAR O CONTEÚDO === */
        content: none !important;
        
        /* === REMOVER FILTROS === */
        filter: none !important;
        backdrop-filter: none !important;
        
        /* === OBJECT-FIT === */
        object-fit: contain !important;
        object-position: center !important;
        
        /* === FORÇA BRUTA PARA IMPRESSÃO === */
        /* Essas propriedades específicas forçam o navegador a imprimir a imagem */
        image-rendering: auto !important;
        image-rendering: crisp-edges !important;
        image-rendering: -webkit-optimize-contrast !important;
        
        /* === WEBKIT ESPECÍFICO === */
        -webkit-appearance: none !important;
        -webkit-transform: none !important;
        -webkit-filter: none !important;
        
        /* === MOZILLA ESPECÍFICO === */
        -moz-appearance: none !important;
        -moz-transform: none !important;
        -moz-user-select: none !important;
        
        /* === PROPRIEDADES CRÍTICAS === */
        forced-color-adjust: none !important;
    }

    /* Nome da empresa - centralizado */
    .certificate-header h2,
    .contract-header h2 {
        font-size: 16pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        text-align: center !important;
        margin: 5pt 0 !important;
        letter-spacing: 1pt !important;
        color: #000 !important;
    }

    /* Informações da empresa centralizadas */
    .certificate-header p,
    .contract-header p {
        font-size: 10pt !important;
        text-align: center !important;
        margin: 2pt 0 !important;
        color: #000 !important;
    }

    /* Referência no canto superior direito (sem sobrepor o título) */
    .reference-number {
        position: absolute !important;
        top: 10pt !important;
        right: 15pt !important;
        font-size: 9pt !important;
        color: #666 !important;
        font-style: italic !important;
        z-index: 1 !important;
    }
    /* Compensar margem no header para não escrever por cima da ref */
    .contract-container .contract-header,
    .certificate-container .certificate-header {
        padding-right: 80pt !important;
    }

    /* === TÍTULO DO DOCUMENTO COMO NA IMAGEM === */
    .certificate-title,
    .contract-title {
        font-size: 18pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        text-align: center !important;
        margin: 20pt 0 25pt 0 !important;
        color: #000 !important;
        letter-spacing: 2pt !important;
        text-decoration: underline !important;
    }

    /* === CONTEÚDO PRINCIPAL === */
    .certificate-body,
    .contract-body {
        font-size: 11pt !important;
        line-height: 1.6 !important;
        text-align: justify !important;
        margin: 0 0 30pt 0 !important;
        color: #000 !important;
    }

    .certificate-body p,
    .contract-body p {
        margin-bottom: 12pt !important;
        text-indent: 15pt !important;
        color: #000 !important;
    }

    /* Cláusulas do contrato */
    .contract-body h3,
    .contract-subtitle {
        font-size: 12pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        margin: 18pt 0 8pt 0 !important;
        color: #000 !important;
        text-align: left !important;
    }

    .contract-clause {
        margin-bottom: 15pt !important;
    }

    /* Elementos em negrito */
    .certificate-body strong,
    .contract-body strong,
    strong {
        font-weight: bold !important;
        color: #000 !important;
    }

    /* Rodapé e assinaturas no fluxo do documento (evita sobreposição com as cláusulas) */
    .certificate-footer,
    .signature-block {
        position: static !important;
        margin-top: 30pt !important;
        padding-top: 20pt !important;
        page-break-inside: avoid !important;
    }

    /* Data e local */
    .certificate-footer p.text-end,
    .signature-block p.text-center {
        text-align: right !important;
        font-size: 11pt !important;
        margin: 0 0 30pt 0 !important;
        color: #000 !important;
    }

    /* === ASSINATURAS COMO NA IMAGEM === */
    .certificate-footer .row,
    .signature-block .row {
        display: table !important;
        width: 100% !important;
        margin-top: 40pt !important;
    }

    .certificate-footer .col-md-6,
    .signature-block .col-md-6 {
        display: table-cell !important;
        width: 50% !important;
        text-align: center !important;
        vertical-align: bottom !important;
        padding: 0 10pt !important;
    }

    .certificate-footer .signature-line,
    .signature-block .signature-line,
    .signature-line {
        width: 80% !important;
        border-top: 1pt solid #000 !important;
        margin: 0 auto 8pt auto !important;
        height: 30pt !important;
    }

    .certificate-footer .signature-line p,
    .signature-block .signature-line p {
        font-size: 9pt !important;
        margin: 5pt 0 0 0 !important;
        text-align: center !important;
        color: #000 !important;
    }

    /* === OCULTAÇÕES COMPLETAS (não esconder .container .row - contém o documento) === */
    .btn, .button, .no-print, .print-button, .btn-group, .action-buttons,
    .navbar, .sidebar, .dropdown, .pagination, .breadcrumb,
    .alert, .toast, .notification, footer, .footer,
    .user-menu, .profile-menu, .cvghr-nav, .admin-panel, .debug-info,
    /* Elementos específicos que causam sobreposição */
    .fas, .fa, .fa-print, .fa-file-pdf, .fa-arrow-left,
    .icon, .print-icon, .overlay, .modal, .tooltip,
    .btn-toolbar, .action-bar, .header-actions, .page-header,
    /* Bootstrap e outros elementos visuais */
    .d-print-none, .hidden-print, .screen-only,
    /* Elementos de navegação e interface */
    nav, header, .navigation, .menu, .sidebar-wrapper,
    /* Elementos de formulário não essenciais */
    .form-actions, .submit-btn, .cancel-btn,
    /* Outros elementos visuais */
    .watermark, .background-image, .bg-image,
    /* FontAwesome específicos (não esconder .mt-4/.mb-4: o contentor usa container mt-4) */
    i[class*="fa"], span[class*="fa"] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        position: absolute !important;
        left: -9999px !important;
        width: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
    }

    /* === EXCLUSÃO ESPECÍFICA DOS BOTÕES (não esconder a row que contém o documento) === */
    .print-button,
    .print-actions,
    .btn-group,
    div.no-print[class*="btn"],
    .action-buttons {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* === RESET DE ESPAÇAMENTOS === */
    .container, .container-fluid {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .row {
        margin: 0 !important;
    }

    .col-md-6 {
        padding: 0 !important;
    }

    /* Mostrar containers de documento (recibo, declaração, etc.) na impressão */
    .payslip-container,
    .certificate-container,
    .contract-container,
    .document-container,
    .print-content {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        background: #fff !important;
        color: #000 !important;
    }

    /* === GARANTIAS DE VISIBILIDADE === */
    .text-muted,
    .text-dark {
        color: #000 !important;
    }

    /* Forçar quebra de página se necessário */
    .page-break {
        page-break-before: always !important;
    }
    
    /* Garantir que TODAS as imagens sejam visíveis na impressão */
    img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        -webkit-print-color-adjust: exact !important;
        color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    /* === TRANSFORMAR LAYOUT DA TELA PARA IMPRESSÃO === */
    
    /* Logo da tela: reposicionar para canto superior esquerdo na impressão */
    .certificate-header img,
    .contract-header img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: absolute !important;
        top: 5pt !important;
        left: 5pt !important;
        width: 60pt !important;
        height: 60pt !important;
        max-width: 60pt !important;
        max-height: 60pt !important;
        border: 1pt solid #ccc !important;
        background: white !important;
        z-index: 2000 !important;
        -webkit-print-color-adjust: exact !important;
        color-adjust: exact !important;
        print-color-adjust: exact !important;
        page-break-inside: avoid !important;
    }
} 