/* ============================================
   ESTILOS DE IMPRESIÓN OPTIMIZADOS
   ============================================ */

@media print {
    /* Reset para impresión */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Ocultar elementos no necesarios */
    .tab-nav,
    .header,
    .theme-toggle,
    .language-selector,
    .cta-button,
    .range-slider,
    .comparator-slider,
    .goal-quick-add,
    .goal-actions,
    .goals-add-btn,
    .comparator-sort-buttons,
    .mortgage-date-nav-btn,
    .mortgage-date-today-btn,
    .share-btn,
    .export-btn,
    footer,
    noscript {
        display: none !important;
    }

    /* Layout base */
    html, body {
        font-size: 12pt;
        line-height: 1.4;
        color: #000 !important;
        background: #fff !important;
    }

    .main {
        padding: 0 !important;
        max-width: 100% !important;
    }

    /* Solo mostrar el tab activo */
    .tab-content {
        display: none !important;
    }

    .tab-content.active {
        display: block !important;
    }

    /* Cards y contenedores */
    .card,
    .result-card,
    .goal-card,
    .comparator-row,
    .mortgage-results-panel,
    .salary-card,
    .budget-card {
        box-shadow: none !important;
        border: 1px solid #ddd !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Títulos */
    h1, h2, h3, .section-title, .card-title {
        color: #000 !important;
        page-break-after: avoid;
    }

    .hero-title {
        font-size: 24pt !important;
    }

    .gradient-text {
        background: none !important;
        -webkit-text-fill-color: #0071E3 !important;
        color: #0071E3 !important;
    }

    /* Resultados */
    .result-value,
    .mortgage-stat-value,
    .salary-stat-value,
    .goal-saved,
    .comparator-value {
        color: #000 !important;
        font-weight: bold !important;
    }

    .result-card-primary {
        background: #f5f5f5 !important;
    }

    .result-card-primary .result-label,
    .result-card-primary .result-value {
        color: #000 !important;
    }

    /* Gráficos */
    .chart-container,
    .chart-card,
    .comparator-chart-section {
        page-break-inside: avoid;
    }

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

    /* Tablas */
    table {
        border-collapse: collapse;
        width: 100%;
    }

    th, td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: left;
    }

    th {
        background: #f5f5f5 !important;
        font-weight: bold;
    }

    /* Objetivos */
    .goal-progress-bar {
        border: 1px solid #ddd;
    }

    .goal-progress-fill {
        background: #0071E3 !important;
    }

    .goal-completed-badge {
        background: #34C759 !important;
        color: #fff !important;
    }

    /* Comparador */
    .comparator-row {
        margin-bottom: 10pt;
    }

    .comparator-risk-badge {
        border: 1px solid currentColor;
    }

    /* Links */
    a[href]:after {
        content: " (" attr(href) ")";
        font-size: 10pt;
        color: #666;
    }

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    /* Márgenes de página */
    @page {
        margin: 1.5cm;
        size: A4;
    }

    @page :first {
        margin-top: 2cm;
    }

    /* Encabezado de impresión */
    .print-header {
        display: block !important;
        text-align: center;
        margin-bottom: 20pt;
        padding-bottom: 10pt;
        border-bottom: 2px solid #0071E3;
    }

    .print-header h1 {
        font-size: 18pt;
        margin: 0;
    }

    .print-header p {
        font-size: 10pt;
        color: #666;
        margin: 5pt 0 0;
    }

    /* Pie de impresión */
    .print-footer {
        display: block !important;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 9pt;
        color: #666;
        padding: 10pt;
        border-top: 1px solid #ddd;
    }

    /* Grid layouts para impresión */
    .calculator-results-grid,
    .charts-grid,
    .goals-list,
    .comparator-layout {
        display: block !important;
    }

    .calculator-results-grid > *,
    .charts-grid > *,
    .goals-list > * {
        margin-bottom: 15pt;
    }

    /* Inputs - mostrar valor */
    input[type="number"],
    input[type="text"],
    select {
        border: none !important;
        background: transparent !important;
        font-weight: bold !important;
    }

    /* Ocultar sliders pero mostrar valores */
    .input-group {
        page-break-inside: avoid;
    }

    /* Hipoteca - tabla de amortización */
    .mortgage-table {
        font-size: 9pt;
    }

    .mortgage-table th,
    .mortgage-table td {
        padding: 4pt 6pt;
    }

    /* Salario - desglose */
    .salary-breakdown {
        page-break-inside: avoid;
    }

    /* Budget - categorías */
    .budget-category {
        page-break-inside: avoid;
    }

    /* Información adicional para impresión */
    .print-info {
        display: block !important;
        background: #f9f9f9;
        padding: 10pt;
        margin: 10pt 0;
        border-left: 3px solid #0071E3;
        font-size: 10pt;
    }

    /* Fecha de impresión */
    .print-date::after {
        content: " - Impreso el " attr(data-date);
        font-size: 9pt;
        color: #666;
    }
}

/* ============================================
   CLASE PARA FORZAR IMPRESIÓN
   ============================================ */
.print-only {
    display: none !important;
}

@media print {
    .print-only {
        display: block !important;
    }

    .no-print {
        display: none !important;
    }
}

/* ============================================
   BOTÓN DE IMPRESIÓN
   ============================================ */
.print-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-input-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    font-family: var(--font-family);
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.print-btn:hover {
    background: var(--color-card);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.print-btn svg {
    width: 16px;
    height: 16px;
}

@media print {
    .print-btn {
        display: none !important;
    }
}
