/* Print Optimization Styles for Resume Builder */

/* Print Media Queries */
@media print {
    /* Reset and Base Print Styles */
    * {
        -webkit-print-color-adjust: exact !important;
        color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    /* Page Setup */
    @page {
        size: letter;
        margin: 0.5in;
        
        /* Remove default headers/footers */
        @top-center { content: none; }
        @top-left { content: none; }
        @top-right { content: none; }
        @bottom-center { content: none; }
        @bottom-left { content: none; }
        @bottom-right { content: none; }
    }
    
    /* First Page Settings */
    @page :first {
        margin-top: 0.5in;
    }
    
    /* Hide UI Elements */
    .builder-header,
    .builder-panel,
    .preview-header,
    .ats-panel,
    .loading-overlay,
    .modal,
    .btn,
    button,
    .preview-controls,
    .zoom-controls,
    nav,
    .sidebar,
    .header,
    .footer {
        display: none !important;
    }
    
    /* Body and Container Adjustments */
    body {
        background: white !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 12pt !important;
        line-height: 1.4 !important;
        color: #000 !important;
    }
    
    .preview-container {
        padding: 0 !important;
        margin: 0 !important;
        background: none !important;
        box-shadow: none !important;
        overflow: visible !important;
    }
    
    /* Resume Document Print Styles */
    .resume-document {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: white !important;
        box-shadow: none !important;
        border: none !important;
        font-size: 11pt !important;
        line-height: 1.4 !important;
        color: #000 !important;
        position: relative !important;
        page-break-after: avoid;
    }
    
    .template-container {
        padding: 0 !important;
        margin: 0 !important;
        display: block !important;
    }
    
    .template-container.active {
        display: block !important;
    }
    
    /* Typography Optimizations */
    .full-name {
        font-size: 24pt !important;
        font-weight: 700 !important;
        margin-bottom: 8pt !important;
        page-break-after: avoid;
        color: var(--theme-primary, #000) !important;
    }
    
    .section-title {
        font-size: 14pt !important;
        font-weight: 700 !important;
        margin-top: 16pt !important;
        margin-bottom: 8pt !important;
        page-break-after: avoid;
        color: var(--theme-primary, #000) !important;
        border-bottom: 1pt solid var(--theme-primary, #000) !important;
        padding-bottom: 2pt !important;
    }
    
    .job-title,
    .degree {
        font-size: 12pt !important;
        font-weight: 600 !important;
        margin-bottom: 4pt !important;
        page-break-after: avoid;
        color: #000 !important;
    }
    
    .company-name,
    .institution {
        font-size: 11pt !important;
        font-weight: 500 !important;
        color: var(--theme-primary, #000) !important;
        margin-bottom: 4pt !important;
    }
    
    .date-range {
        font-size: 10pt !important;
        color: #666 !important;
        font-weight: 500 !important;
    }
    
    .location {
        font-size: 9pt !important;
        color: #888 !important;
        font-style: italic;
    }
    
    .job-description,
    .education-details,
    .project-description,
    .summary-text {
        font-size: 10pt !important;
        line-height: 1.5 !important;
        color: #333 !important;
        margin: 6pt 0 !important;
    }
    
    /* Page Break Controls */
    .resume-section {
        page-break-inside: avoid;
        margin-bottom: 16pt !important;
    }
    
    .experience-entry,
    .education-entry,
    .project-entry,
    .certification-entry {
        page-break-inside: avoid;
        margin-bottom: 12pt !important;
    }
    
    .entry-header {
        page-break-after: avoid;
    }
    
    /* Prevent Orphans and Widows */
    p, li {
        orphans: 2;
        widows: 2;
    }
    
    h1, h2, h3, h4, h5, h6 {
        orphans: 3;
        widows: 3;
        page-break-after: avoid;
    }
    
    /* Contact Information */
    .contact-info {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 12pt !important;
        justify-content: center !important;
        margin: 8pt 0 16pt 0 !important;
        page-break-after: avoid;
    }
    
    .contact-item {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4pt !important;
        font-size: 10pt !important;
        color: #666 !important;
    }
    
    .contact-item i {
        width: 10pt !important;
        font-size: 10pt !important;
        color: var(--theme-primary, #000) !important;
    }
    
    /* Skills Grid Print Optimization */
    .skills-grid {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, minmax(120pt, 1fr)) !important;
        gap: 6pt !important;
        margin: 8pt 0 !important;
        page-break-inside: avoid;
    }
    
    .skill-item {
        background: #f8f8f8 !important;
        border: 1pt solid #ddd !important;
        border-left: 3pt solid var(--theme-primary, #000) !important;
        padding: 4pt 8pt !important;
        border-radius: 2pt !important;
        font-size: 9pt !important;
        text-align: center !important;
        color: #333 !important;
        page-break-inside: avoid;
    }
    
    /* Lists and Bullets */
    ul, ol {
        margin: 6pt 0 !important;
        padding-left: 18pt !important;
    }
    
    li {
        margin-bottom: 3pt !important;
        font-size: 10pt !important;
        line-height: 1.4 !important;
    }
    
    /* Template-Specific Print Styles */
    
    /* Classic Template */
    .template-classic .resume-header {
        border-bottom: 2pt solid var(--theme-primary, #000) !important;
        padding-bottom: 12pt !important;
        margin-bottom: 16pt !important;
        page-break-after: avoid;
    }
    
    /* Modern Template */
    .template-modern .modern-header {
        background: var(--theme-primary, #000) !important;
        color: white !important;
        padding: 20pt !important;
        margin: 0 0 20pt 0 !important;
        border-radius: 0 !important;
        page-break-after: avoid;
    }
    
    .template-modern .content-grid {
        display: grid !important;
        grid-template-columns: 2fr 1fr !important;
        gap: 24pt !important;
    }
    
    .template-modern .timeline-marker {
        width: 8pt !important;
        height: 8pt !important;
        background: var(--theme-primary, #000) !important;
        border-radius: 50% !important;
        margin-top: 4pt !important;
    }
    
    .template-modern .timeline-marker::after {
        content: '' !important;
        position: absolute !important;
        top: 12pt !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: 1pt !important;
        height: 20pt !important;
        background: #ccc !important;
    }
    
    /* Executive Template */
    .template-executive .executive-header {
        border-bottom: 3pt double var(--theme-primary, #000) !important;
        padding-bottom: 16pt !important;
        margin-bottom: 20pt !important;
        page-break-after: avoid;
    }
    
    .template-executive .two-column-section {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 24pt !important;
    }
    
    /* Creative Template */
    .template-creative .creative-header {
        background: var(--theme-primary, #000) !important;
        color: white !important;
        padding: 24pt !important;
        margin: 0 0 20pt 0 !important;
        page-break-after: avoid;
    }
    
    .template-creative .creative-grid {
        display: grid !important;
        grid-template-columns: 2fr 1fr !important;
        gap: 24pt !important;
    }
    
    .template-creative .timeline-dot {
        width: 10pt !important;
        height: 10pt !important;
        background: var(--theme-primary, #000) !important;
        border-radius: 50% !important;
        margin-top: 4pt !important;
    }
    
    .template-creative .timeline-line {
        width: 1pt !important;
        background: #ccc !important;
        margin-top: 6pt !important;
        min-height: 20pt !important;
    }
    
    .template-creative .sidebar-content {
        background: #f8f8f8 !important;
        border: 1pt solid #ddd !important;
        padding: 16pt !important;
        border-radius: 4pt !important;
    }
    
    /* Minimalist Template */
    .template-minimalist .minimalist-header {
        padding: 16pt 0 !important;
        margin-bottom: 20pt !important;
        page-break-after: avoid;
    }
    
    .template-minimalist .contact-line {
        display: flex !important;
        justify-content: center !important;
        gap: 8pt !important;
        flex-wrap: wrap !important;
    }
    
    .template-minimalist .divider {
        color: #ccc !important;
    }
    
    /* Custom Sections */
    .custom-section {
        page-break-inside: avoid;
        margin-bottom: 16pt !important;
    }
    
    .project-item,
    .award-item,
    .language-item {
        page-break-inside: avoid;
        margin-bottom: 8pt !important;
    }
    
    .languages-display {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6pt !important;
    }
    
    .language-item {
        background: #f0f0f0 !important;
        border: 1pt solid #ccc !important;
        padding: 3pt 6pt !important;
        border-radius: 8pt !important;
        font-size: 8pt !important;
        color: #333 !important;
    }
    
    /* Links and URLs */
    a {
        color: var(--theme-primary, #000) !important;
        text-decoration: underline !important;
    }
    
    /* Remove Hover Effects */
    *:hover {
        background: inherit !important;
        color: inherit !important;
        transform: none !important;
        box-shadow: inherit !important;
    }
    
    /* Ensure Text is Selectable */
    * {
        user-select: text !important;
        -webkit-user-select: text !important;
        -moz-user-select: text !important;
        -ms-user-select: text !important;
    }
    
    /* Color Optimization for Black & White Printing */
    @media print and (monochrome) {
        * {
            background: white !important;
            color: black !important;
            border-color: black !important;
        }
        
        .skill-item {
            background: #f5f5f5 !important;
            border-left-color: black !important;
        }
        
        .section-title {
            border-bottom-color: black !important;
        }
        
        .timeline-marker,
        .timeline-dot {
            background: black !important;
        }
    }
    
    /* Accessibility for Print */
    .sr-only {
        position: static !important;
        width: auto !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        white-space: normal !important;
    }
    
    /* QR Code and Special Elements */
    .qr-code {
        width: 60pt !important;
        height: 60pt !important;
        border: 1pt solid #000 !important;
        background: white !important;
    }
    
    /* Print Quality Optimizations */
    img {
        max-width: 100% !important;
        height: auto !important;
        image-rendering: -webkit-optimize-contrast !important;
        image-rendering: optimize-contrast !important;
    }
    
    /* Prevent Content Overflow */
    .resume-document,
    .template-container {
        overflow: visible !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Character Counter and UI Elements */
    .char-counter,
    .optional,
    .feature-tag,
    .btn-*,
    .modal-*,
    .loading-*,
    .ats-*,
    .export-* {
        display: none !important;
    }
    
    /* Font Weight Adjustments for Print */
    .font-weight-light {
        font-weight: 300 !important;
    }
    
    .font-weight-normal {
        font-weight: 400 !important;
    }
    
    .font-weight-medium {
        font-weight: 500 !important;
    }
    
    .font-weight-semibold {
        font-weight: 600 !important;
    }
    
    .font-weight-bold {
        font-weight: 700 !important;
    }
    
    /* Print-Specific Utilities */
    .print-only {
        display: block !important;
    }
    
    .no-print {
        display: none !important;
    }
    
    .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;
    }
    
    /* Final Print Optimizations */
    .template-container::after {
        content: "";
        display: block;
        height: 0;
        clear: both;
        page-break-after: avoid;
    }
}

/* PDF Export Specific Styles */
.pdf-export {
    font-family: Arial, sans-serif !important;
    color: #000 !important;
    background: white !important;
}

.pdf-export * {
    box-shadow: none !important;
    text-shadow: none !important;
}

/* High DPI Print Support */
@media print and (-webkit-min-device-pixel-ratio: 2) {
    .resume-document {
        font-size: 10pt !important;
    }
    
    .full-name {
        font-size: 22pt !important;
    }
    
    .section-title {
        font-size: 13pt !important;
    }
}

/* Landscape Orientation Support */
@media print and (orientation: landscape) {
    @page {
        size: letter landscape;
        margin: 0.5in 0.75in;
    }
    
    .template-modern .content-grid,
    .template-creative .creative-grid {
        grid-template-columns: 3fr 2fr !important;
    }
}

/* A4 Paper Size Support */
@media print and (max-width: 210mm) {
    @page {
        size: A4;
        margin: 15mm;
    }
    
    .resume-document {
        font-size: 10pt !important;
    }
    
    .full-name {
        font-size: 20pt !important;
    }
    
    .section-title {
        font-size: 12pt !important;
    }
}