/* ==========================================================================
   ESTILOS PARA IMPRESSÃO - Santini Finanças
   Otimizado para impressão de relatórios, extratos e documentos financeiros
   ========================================================================== */

@media print {
    /* ===== RESET E CONFIGURAÇÕES GERAIS ===== */
    * {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    body {
        font-family: "Georgia", "Times New Roman", serif;
        font-size: 12pt;
        line-height: 1.5;
        margin: 0;
        padding: 0;
        min-width: 100% !important;
        width: 100% !important;
        background: white !important;
    }

    /* ===== REMOVER ELEMENTOS DESNECESSÁRIOS ===== */
    .sidebar,
    .navbar,
    .footer,
    .btn,
    .dropdown,
    .theme-switcher,
    .toast-container,
    #loading-overlay,
    #offline-alert,
    #installPWA,
    .modal-backdrop,
    .modal,
    .not-printable {
        display: none !important;
    }

    /* ===== LAYOUT E CONTAINERS ===== */
    .container,
    .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .row {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .col,
    [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        display: block !important;
        margin: 0 0 15px 0 !important;
        padding: 0 !important;
        page-break-inside: avoid;
    }

    /* ===== CARDS E PAINÉIS ===== */
    .card {
        border: 1px solid #ddd !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        margin: 0 0 20px 0 !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .card-header {
        background: #f8f9fa !important;
        border-bottom: 2px solid #333 !important;
        padding: 10px 15px !important;
        margin: 0 !important;
    }

    .card-body {
        padding: 15px !important;
    }

    .card-title {
        color: #000 !important;
        font-weight: bold;
        margin: 0 0 10px 0 !important;
    }

    /* ===== TABELAS ===== */
    .table {
        width: 100% !important;
        border-collapse: collapse !important;
        border: 1px solid #ddd !important;
        margin: 0 0 15px 0 !important;
        font-size: 11pt;
        page-break-inside: avoid;
    }

    .table th,
    .table td {
        border: 1px solid #ddd !important;
        padding: 8px 10px !important;
        text-align: left;
        vertical-align: top;
    }

    .table thead th {
        background: #f8f9fa !important;
        font-weight: bold;
        border-bottom: 2px solid #333 !important;
    }

    .table-striped tbody tr:nth-child(odd) {
        background: #f8f9fa !important;
    }

    .table-bordered {
        border: 2px solid #333 !important;
    }

    .table-sm th,
    .table-sm td {
        padding: 4px 6px !important;
        font-size: 10pt;
    }

    /* ===== GRÁFICOS E VISUALIZAÇÕES ===== */
    .chart-container {
        page-break-inside: avoid;
        break-inside: avoid;
        margin: 20px 0 !important;
    }

    .chart-canvas {
        max-width: 100% !important;
        height: auto !important;
    }

    /* Se gráficos não são renderizados, mostrar texto alternativo */
    canvas {
        display: none !important;
    }

    .chart-alternative {
        display: block !important;
        border: 1px solid #ddd;
        padding: 15px;
        background: #f8f9fa;
        margin: 10px 0;
    }

    /* ===== FORMULÁRIOS E INPUTS ===== */
    .form-control,
    .form-select,
    .form-check-input {
        border: 1px solid #999 !important;
        background: white !important;
    }

    /* Mostrar valores de inputs não editáveis */
    input[type="text"],
    input[type="email"],
    input[type="number"],
    input[type="date"],
    select,
    textarea {
        border: 1px solid #999 !important;
        background: white !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* ===== BOTÕES E LINKS ===== */
    a {
        color: #000 !important;
        text-decoration: none !important;
    }

    a[href]:after {
        content: " (" attr(href) ")";
        font-size: 10pt;
        color: #666 !important;
    }

    /* Não mostrar URLs para links internos ou javascript */
    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "" !important;
    }

    /* ===== TIPOGRAFIA ===== */
    h1, h2, h3, h4, h5, h6 {
        color: #000 !important;
        font-weight: bold;
        margin: 20px 0 10px 0 !important;
        page-break-after: avoid;
    }

    h1 {
        font-size: 24pt !important;
        border-bottom: 3px solid #000 !important;
        padding-bottom: 10px !important;
    }

    h2 {
        font-size: 18pt !important;
        border-bottom: 2px solid #333 !important;
        padding-bottom: 8px !important;
    }

    h3 {
        font-size: 14pt !important;
    }

    h4 {
        font-size: 12pt !important;
    }

    p {
        margin: 0 0 10px 0 !important;
        orphans: 3;
        widows: 3;
    }

    /* ===== LISTAS ===== */
    ul, ol {
        margin: 10px 0 10px 20px !important;
        padding: 0 !important;
    }

    li {
        margin: 5px 0 !important;
        page-break-inside: avoid;
    }

    /* ===== IMAGENS ===== */
    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }

    /* ===== BADGES E LABELS ===== */
    .badge {
        border: 1px solid #000 !important;
        background: white !important;
        color: #000 !important;
        padding: 2px 6px !important;
        font-size: 10pt;
    }

    /* ===== PROGRESS BARS ===== */
    .progress {
        border: 1px solid #ddd !important;
        background: white !important;
        height: 20px !important;
        margin: 10px 0 !important;
    }

    .progress-bar {
        background: #333 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        height: 100% !important;
    }

    .progress-text {
        position: relative;
        z-index: 1;
        padding: 0 5px;
        font-size: 10pt;
    }

    /* ===== ALERTAS E MENSAGENS ===== */
    .alert {
        border: 1px solid #ddd !important;
        background: white !important;
        margin: 10px 0 !important;
        padding: 10px !important;
    }

    .alert-success {
        border-left: 4px solid #28a745 !important;
    }

    .alert-warning {
        border-left: 4px solid #ffc107 !important;
    }

    .alert-danger {
        border-left: 4px solid #dc3545 !important;
    }

    .alert-info {
        border-left: 4px solid #17a2b8 !important;
    }

    /* ===== PÁGINA DE RELATÓRIOS ===== */
    .report-header {
        text-align: center;
        margin: 0 0 30px 0 !important;
        padding: 0 0 20px 0 !important;
        border-bottom: 3px solid #000 !important;
    }

    .report-title {
        font-size: 28pt !important;
        margin: 0 0 10px 0 !important;
    }

    .report-subtitle {
        font-size: 14pt !important;
        color: #666 !important;
        margin: 0 0 20px 0 !important;
    }

    .report-meta {
        font-size: 11pt;
        color: #666 !important;
        margin: 10px 0 !important;
    }

    .report-footer {
        text-align: center;
        margin: 30px 0 0 0 !important;
        padding: 20px 0 0 0 !important;
        border-top: 1px solid #ddd !important;
        font-size: 10pt;
        color: #666 !important;
    }

    /* ===== RESUMOS FINANCEIROS ===== */
    .financial-summary {
        margin: 20px 0 !important;
        padding: 15px !important;
        border: 2px solid #333 !important;
        page-break-inside: avoid;
    }

    .summary-item {
        display: flex;
        justify-content: space-between;
        margin: 8px 0 !important;
        padding: 5px 0 !important;
        border-bottom: 1px dotted #ddd !important;
    }

    .summary-item.total {
        font-weight: bold;
        border-top: 2px solid #333 !important;
        border-bottom: none !important;
        padding-top: 10px !important;
        margin-top: 15px !important;
    }

    /* ===== CONTROLE DE QUEBRA DE PÁGINA ===== */
    .page-break-before {
        page-break-before: always !important;
    }

    .page-break-after {
        page-break-after: always !important;
    }

    .page-break-inside-avoid {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .keep-together {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* ===== CABEÇALHO E RODAPÉ DA PÁGINA ===== */
    @page {
        size: A4;
        margin: 2cm;
        @top-left {
            content: "Santini Finanças";
            font-size: 10pt;
            color: #666;
        }
        @top-right {
            content: "Página " counter(page) " de " counter(pages);
            font-size: 10pt;
            color: #666;
        }
        @bottom-left {
            content: "Confidencial - Uso Interno";
            font-size: 9pt;
            color: #999;
        }
        @bottom-right {
            content: "Impresso em: " string(date);
            font-size: 9pt;
            color: #999;
        }
    }

    /* Data dinâmica para rodapé */
    body:after {
        content: "";
        string-set: date attr(data-print-date);
    }

    /* ===== NUMERAÇÃO DE PÁGINAS ===== */
    body {
        counter-reset: page;
    }

    .page-number:after {
        content: "Página " counter(page);
        counter-increment: page;
        font-size: 10pt;
        color: #666;
        position: fixed;
        bottom: 1cm;
        right: 2cm;
    }

    /* ===== WIDGETS DO DASHBOARD ===== */
    .dashboard-widget {
        border: 1px solid #ddd !important;
        margin: 0 0 20px 0 !important;
        padding: 15px !important;
        page-break-inside: avoid;
    }

    .widget-title {
        font-size: 12pt !important;
        font-weight: bold;
        margin: 0 0 10px 0 !important;
        padding: 0 0 5px 0 !important;
        border-bottom: 1px solid #ddd !important;
    }

    .widget-value {
        font-size: 18pt !important;
        font-weight: bold;
        text-align: center;
        margin: 15px 0 !important;
    }

    /* ===== TRANSAÇÕES E EXTRATOS ===== */
    .transaction-item {
        display: flex;
        justify-content: space-between;
        margin: 5px 0 !important;
        padding: 8px 0 !important;
        border-bottom: 1px dotted #ddd !important;
    }

    .transaction-date {
        width: 20%;
        font-size: 10pt;
    }

    .transaction-description {
        width: 50%;
    }

    .transaction-value {
        width: 30%;
        text-align: right;
        font-weight: bold;
    }

    .transaction-income {
        color: #28a745 !important;
    }

    .transaction-expense {
        color: #dc3545 !important;
    }

    /* ===== GRÁFICOS DE PIZZA (representação textual) ===== */
    .pie-chart-alternative {
        margin: 15px 0 !important;
    }

    .pie-slice {
        display: flex;
        align-items: center;
        margin: 5px 0 !important;
    }

    .pie-color {
        width: 15px;
        height: 15px;
        margin-right: 10px;
        border: 1px solid #000;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .pie-label {
        flex: 1;
    }

    .pie-value {
        font-weight: bold;
    }

    /* ===== CÓDIGOS DE BARRAS E QR CODES ===== */
    .barcode,
    .qrcode {
        text-align: center;
        margin: 20px 0 !important;
        padding: 10px !important;
        border: 1px solid #ddd !important;
    }

    .barcode-text {
        font-family: "Courier New", monospace;
        font-size: 14pt;
        letter-spacing: 2px;
        margin: 10px 0 !important;
    }

    /* ===== ASSINATURAS E AUTORIZAÇÕES ===== */
    .signature-area {
        margin: 50px 0 20px 0 !important;
        padding: 20px 0 0 0 !important;
        border-top: 1px solid #000 !important;
    }

    .signature-line {
        width: 50%;
        border-bottom: 1px solid #000 !important;
        margin: 40px 0 5px 0 !important;
    }

    .signature-label {
        font-size: 10pt;
        color: #666 !important;
    }

    /* ===== UTILITÁRIOS DE IMPRESSÃO ===== */
    .print-only {
        display: block !important;
    }

    .no-print {
        display: none !important;
    }

    .watermark {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
        font-size: 60pt;
        color: rgba(0,0,0,0.1) !important;
        z-index: 9999;
        pointer-events: none;
    }

    /* ===== LAYOUT DE COLUNAS PARA IMPRESSÃO ===== */
    .print-columns-2 {
        column-count: 2;
        column-gap: 30px;
        margin: 20px 0 !important;
    }

    .print-columns-3 {
        column-count: 3;
        column-gap: 20px;
        margin: 20px 0 !important;
    }

    /* ===== CÓDIGO FISCAL E NOTAS ===== */
    .invoice-header {
        text-align: center;
        margin: 0 0 30px 0 !important;
    }

    .invoice-details {
        margin: 20px 0 !important;
        padding: 15px !important;
        border: 1px solid #000 !important;
    }

    .invoice-totals {
        margin: 30px 0 !important;
        padding: 20px !important;
        background: #f8f9fa !important;
        border: 2px solid #333 !important;
    }

    /* ===== MODO ECONOMIA DE TINTA ===== */
    .ink-saver {
        /* Remover cores de fundo e gradientes */
        background: white !important;
        
        /* Converter cores para escala de cinza */
        filter: grayscale(100%) !important;
        
        /* Remover imagens não essenciais */
        background-image: none !important;
        
        /* Simplificar bordas */
        border-color: #ccc !important;
        border-width: 1px !important;
    }

    /* ===== OTIMIZAÇÃO PARA PDF ===== */
    .pdf-optimized {
        /* Garantir que elementos não sejam cortados */
        max-width: 100% !important;
        
        /* Evitar quebras dentro de elementos importantes */
        page-break-inside: avoid !important;
        
        /* Garantir contraste adequado */
        color: #000 !important;
        background: white !important;
    }

    /* ===== REGRAS ESPECÍFICAS PARA SANTINI FINANÇAS ===== */
    .santini-header {
        text-align: center;
        margin: 0 0 30px 0 !important;
    }

    .santini-logo-print {
        font-size: 24pt;
        font-weight: bold;
        margin: 0 0 10px 0 !important;
    }

    .santini-subtitle {
        font-size: 12pt;
        color: #666 !important;
        margin: 0 0 20px 0 !important;
    }

    .financial-period {
        font-size: 11pt;
        color: #666 !important;
        text-align: center;
        margin: 0 0 15px 0 !important;
        padding: 5px 0 !important;
        border-top: 1px solid #ddd !important;
        border-bottom: 1px solid #ddd !important;
    }

    /* ===== MENSAGENS CONFIDENCIAIS ===== */
    .confidential-notice {
        border: 2px solid #000 !important;
        padding: 15px !important;
        margin: 30px 0 !important;
        text-align: center;
        font-size: 10pt;
        background: repeating-linear-gradient(
            45deg,
            transparent,
            transparent 10px,
            rgba(0,0,0,0.05) 10px,
            rgba(0,0,0,0.05) 20px
        ) !important;
    }

    /* ===== RODAPÉ PERSONALIZADO POR RELATÓRIO ===== */
    .custom-footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 10px 2cm !important;
        font-size: 9pt;
        color: #666 !important;
        background: white !important;
        border-top: 1px solid #ddd !important;
    }
}

/* ===== ESTILOS PARA VISUALIZAÇÃO DE IMPRESSÃO (SCREEN) ===== */
@media screen {
    .print-preview {
        background: white !important;
        color: #000 !important;
        padding: 20px !important;
        box-shadow: 0 0 20px rgba(0,0,0,0.1);
    }
    
    .print-helper {
        position: fixed;
        top: 20px;
        right: 20px;
        background: #333;
        color: white;
        padding: 10px 15px;
        border-radius: 5px;
        z-index: 10000;
        font-size: 12pt;
    }
}

/* ===== ESTILOS PARA DIFERENTES TIPOS DE PAPEL ===== */

/* A4 Portrait (padrão) */
@page a4-portrait {
    size: A4 portrait;
    margin: 2cm;
}

/* A4 Landscape */
@page a4-landscape {
    size: A4 landscape;
    margin: 1.5cm;
}

/* Letter Portrait */
@page letter-portrait {
    size: letter portrait;
    margin: 2cm;
}

/* Carta de Cobrança (formato específico) */
@media print and (size: 21cm 9.9cm) {
    body {
        font-size: 10pt;
        margin: 0.5cm;
    }
    
    .payment-slip {
        border: 2px solid #000 !important;
        padding: 10px !important;
    }
}

/* ===== AJUSTES PARA NAVEGADORES ESPECÍFICOS ===== */

/* Chrome/Edge */
@media print and (-webkit-min-device-pixel-ratio:0) {
    body {
        -webkit-print-color-adjust: exact !important;
    }
    
    .table {
        -webkit-print-color-adjust: exact !important;
    }
}

/* Firefox */
@-moz-document url-prefix() {
    @media print {
        body {
            print-color-adjust: exact !important;
        }
    }
}

/* Safari */
@media print and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { 
    .table-striped tbody tr:nth-child(odd) {
        background-color: rgba(0,0,0,0.05) !important;
    }
}

/* ===== FIM DOS ESTILOS DE IMPRESSÃO ===== */