/* ==========================================================================
   TIPX SWITZERLAND - PRINT SPECIFIC STYLESHEET
   Optimized for Compliance Hub, FAQ Section, QR Signage & Guest Receipts
   ========================================================================== */

@page {
    size: A4 portrait;
    margin: 1.2cm 1.5cm 1.5cm 1.5cm;
}

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

@media print {
    /* Global Reset for High Contrast Print */
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #0f172a !important;
        box-shadow: none !important;
        text-shadow: none !important;
        filter: none !important;
        transition: none !important;
        animation: none !important;
    }

    html, body {
        background: #ffffff !important;
        color: #0f172a !important;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
        font-size: 10.5pt !important;
        line-height: 1.45 !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Hide non-printable navigation, interactive controls, and UI noise */
    nav,
    header nav,
    .nav-link,
    .btn-submit,
    .enterprise-btn-submit,
    #swiss-cookie-consent-banner,
    #offline-notification-banner,
    .floating-fab,
    .modal-close,
    .btn-primary,
    .btn-secondary,
    .marketing-tab-btn,
    .marketing-modal-container > button,
    .modal-close-btn,
    button[type="submit"],
    button[type="button"]:not(.printable-target),
    input[type="hidden"],
    input[style*="display:none"],
    .social-links-list,
    .footer-social-wrapper,
    .footer-social-section,
    .no-print,
    .sidebar-actions,
    .faq-icon,
    [aria-expanded] .faq-icon {
        display: none !important;
    }

    /* Page Breaks and Page Section Layouts */
    h1, h2, h3, h4, h5, h6 {
        color: #0f172a !important;
        font-weight: 800 !important;
        page-break-after: avoid;
        break-after: avoid;
        margin-top: 0.8rem !important;
        margin-bottom: 0.4rem !important;
    }

    p, blockquote, ul, ol, table, .feature-card, .stats-card, .enterprise-contact-section, .compliance-card, .faq-item {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Main Container Sizing for Print */
    .container, main, section {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Header & Branding for Print Document */
    header {
        position: static !important;
        border-bottom: 2px solid #0d9488 !important;
        padding-bottom: 10px !important;
        margin-bottom: 16px !important;
        background: #ffffff !important;
    }

    header .logo {
        font-size: 18pt !important;
        font-weight: 900 !important;
        color: #0d9488 !important;
    }

    /* ==========================================================================
       1. COMPLIANCE HUB & LEGAL FRAMEWORK PRINT FORMATTING
       ========================================================================== */
    #compliance,
    .features-section,
    .compliance-section,
    #compliance-hub-section,
    #legal_terms_sect,
    #legal_privacy_sect,
    #legal_impressum_sect,
    #compliance-detail-modal,
    .compliance-card,
    .compliance-grid {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        background: #ffffff !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 8px !important;
        padding: 16px !important;
        margin-bottom: 20px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Modals in Print Mode (Compliance Detail Modal & Client Legal Modal) */
    #compliance-detail-modal,
    #client-legal-modal,
    #dashboard-privacy-modal {
        position: static !important;
        background: #ffffff !important;
        backdrop-filter: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border: none !important;
    }

    #compliance-detail-modal .section-card,
    #client-legal-modal .section-card {
        max-width: 100% !important;
        max-height: none !important;
        box-shadow: none !important;
        border: 1px solid #0d9488 !important;
        padding: 16px !important;
        background: #ffffff !important;
    }

    .section-header h2,
    .compliance-header h2 {
        font-size: 15pt !important;
        color: #0f172a !important;
        border-bottom: 2px solid #0d9488 !important;
        padding-bottom: 6px !important;
        margin-bottom: 10px !important;
    }

    .section-header p,
    .compliance-header p {
        font-size: 9.5pt !important;
        color: #334155 !important;
        margin-bottom: 14px !important;
    }

    .grid-3,
    .grid-2,
    .compliance-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 14px !important;
    }

    .feature-card,
    .stats-card,
    .compliance-clickable-card,
    .compliance-card {
        flex: 1 1 30% !important;
        min-width: 180px !important;
        background: #f8fafc !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 8px !important;
        padding: 12px !important;
        margin-bottom: 10px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .feature-icon,
    .compliance-icon {
        font-size: 16pt !important;
        margin-bottom: 6px !important;
    }

    .feature-card h3,
    .stats-card h4,
    .compliance-card h3 {
        font-size: 11.5pt !important;
        color: #0f172a !important;
        margin-bottom: 4px !important;
    }

    .feature-card p,
    .stats-card p,
    .compliance-card p {
        font-size: 9pt !important;
        color: #334155 !important;
        line-height: 1.4 !important;
    }

    /* Badges & Legal Reference Highlights */
    .badge,
    .compliance-badge,
    #compliance-modal-badge {
        display: inline-block !important;
        background: #f0fdf4 !important;
        border: 1px solid #16a34a !important;
        color: #15803d !important;
        padding: 3px 8px !important;
        border-radius: 6px !important;
        font-size: 8.5pt !important;
        font-weight: 800 !important;
    }

    .legal-basis-box,
    #compliance-modal-legal-basis {
        background: #f8fafc !important;
        border-left: 4px solid #0d9488 !important;
        padding: 10px 14px !important;
        margin-bottom: 12px !important;
        font-size: 9.5pt !important;
        color: #0f172a !important;
        font-weight: 700 !important;
    }


    /* ==========================================================================
       2. FAQ SECTION PRINT FORMATTING (AUTOMATIC EXPANSION OF ANSWERS)
       ========================================================================== */
    .faq-section,
    #faq-section,
    .faq-container,
    .faq-accordion {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        margin-top: 16px !important;
        margin-bottom: 24px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .faq-section h2,
    #faq-section h2,
    .faq-container h2 {
        font-size: 15pt !important;
        color: #0f172a !important;
        border-bottom: 2px solid #0d9488 !important;
        padding-bottom: 6px !important;
        margin-bottom: 14px !important;
    }

    .faq-item {
        border: 1px solid #e2e8f0 !important;
        border-radius: 8px !important;
        padding: 10px 14px !important;
        margin-bottom: 10px !important;
        background: #ffffff !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .faq-header,
    button.faq-header,
    .faq-question {
        font-size: 11pt !important;
        font-weight: 800 !important;
        color: #0f172a !important;
        background: transparent !important;
        border: none !important;
        padding: 0 0 6px 0 !important;
        margin: 0 !important;
        text-align: left !important;
        width: 100% !important;
        display: block !important;
    }

    /* Force Expand All Collapsible FAQ Answers on Print */
    .faq-content,
    .faq-answer,
    .faq-body,
    div[id^="faq-ans-"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        max-height: none !important;
        height: auto !important;
        padding: 6px 0 2px 0 !important;
        margin-top: 4px !important;
        border-top: 1px dashed #cbd5e1 !important;
        font-size: 9.5pt !important;
        color: #334155 !important;
        line-height: 1.45 !important;
        overflow: visible !important;
    }


    /* ==========================================================================
       3. QR CODES, RESTAURANT SIGNAGE & THERMAL RECEIPTS
       ========================================================================== */
    #marketing-materials-modal,
    #qr-modal,
    .marketing-modal-container {
        position: static !important;
        background: #ffffff !important;
        backdrop-filter: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border: none !important;
        box-shadow: none !important;
    }

    .marketing-grid-layout {
        display: block !important;
        grid-template-columns: none !important;
        gap: 0 !important;
    }

    .marketing-grid-layout > div:last-child {
        display: none !important; /* Hide marketing modal form sidebar when printing */
    }

    /* Make Active Mockup Stage Fill Page Cleanly */
    .marketing-mockup-view {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        margin: 0 auto !important;
        padding: 10px 0 !important;
        max-width: 100% !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* High-Contrast Crisp QR Code Image & Canvas Rendering */
    .marketing-qr-container,
    #qr-canvas-holder,
    .qr-code-img,
    canvas[id*="qr"],
    img[src*="qr"],
    svg[id*="qr"] {
        display: inline-block !important;
        background: #ffffff !important;
        border: 2px solid #0f172a !important;
        border-radius: 8px !important;
        padding: 8px !important;
        box-shadow: none !important;
        image-rendering: -webkit-optimize-contrast !important;
        image-rendering: crisp-edges !important;
        image-rendering: pixelated !important;
        filter: contrast(200%) !important;
    }

    .marketing-qr-container img,
    .marketing-qr-container canvas,
    .marketing-qr-container svg,
    #qr-canvas-holder img,
    #qr-canvas-holder canvas {
        width: 150px !important;
        height: 150px !important;
        max-width: 100% !important;
    }

    /* Specific Signage Mockup Print Optimizations */
    /* Table Tent (Supporto da Tavolo) */
    #mockup-view-table-tent > div {
        border: 2px solid #0d9488 !important;
        border-radius: 12px !important;
        padding: 20px !important;
        background: #ffffff !important;
        transform: none !important;
        box-shadow: none !important;
    }

    /* Guest Bill & Thermal Receipt Format */
    #mockup-view-bill,
    .receipt-container,
    .receipt-print-area {
        font-family: 'Courier New', Courier, monospace !important;
        width: 100% !important;
        max-width: 340px !important;
        margin: 0 auto !important;
        padding: 16px !important;
        border-top: 3px dashed #0f172a !important;
        border-bottom: 3px dashed #0f172a !important;
        background: #ffffff !important;
        color: #000000 !important;
    }

    #mockup-view-bill *,
    .receipt-container * {
        color: #000000 !important;
    }

    /* Window Sticker, Coaster, Badge, Taxi, Hotel, POS and Social Story Print Normalization */
    #mockup-view-coaster > div,
    #mockup-view-sticker > div,
    #mockup-view-badge > div,
    #mockup-view-taxi > div,
    #mockup-view-hotel-desk > div,
    #mockup-view-counter-pos > div,
    #mockup-view-social-flyer > div {
        border: 2px solid #0d9488 !important;
        box-shadow: none !important;
        background: #ffffff !important;
        color: #0f172a !important;
        padding: 16px !important;
        transform: none !important;
    }

    #mockup-view-taxi *,
    #mockup-view-sticker *,
    #mockup-view-social-flyer * {
        color: #0f172a !important;
    }

    /* Swiss Precision 300 DPI Print Media with Crop Marks */
    .swiss-print-sheet {
        position: relative !important;
        margin: 0 auto !important;
        padding: 15mm !important;
        box-sizing: border-box !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        background: #ffffff !important;
    }

    .swiss-crop-marks-overlay {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        pointer-events: none !important;
    }

    .swiss-crop-mark-line {
        stroke: #000000 !important;
        stroke-width: 0.5pt !important;
    }

    .swiss-print-meta {
        font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
        font-size: 6.5pt !important;
        color: #475569 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.1em !important;
        margin-top: 6mm !important;
        text-align: center !important;
        border-top: 0.5pt solid #cbd5e1 !important;
        padding-top: 2mm !important;
        width: 100% !important;
        max-width: 320px !important;
    }

    .swiss-color-bars {
        display: flex !important;
        gap: 3px !important;
        justify-content: center !important;
        margin-top: 2mm !important;
    }

    .swiss-color-bar-patch {
        width: 10px !important;
        height: 4px !important;
        display: inline-block !important;
        border: 0.25pt solid #000 !important;
    }


    /* ==========================================================================
       4. ENTERPRISE PARTNERSHIP CONTACT DETAILS PRINT FORMATTING
       ========================================================================== */
    #enterprise-inquiry-section,
    .enterprise-contact-section {
        display: block !important;
        visibility: visible !important;
        background: #ffffff !important;
        border: 2px solid #0d9488 !important;
        border-radius: 10px !important;
        padding: 16px !important;
        margin-top: 18px !important;
        margin-bottom: 18px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .enterprise-badge {
        display: inline-block !important;
        background: #f0fdf4 !important;
        border: 1px solid #16a34a !important;
        color: #15803d !important;
        padding: 3px 8px !important;
        border-radius: 6px !important;
        font-size: 8.5pt !important;
        font-weight: 800 !important;
        margin-bottom: 8px !important;
    }

    .enterprise-contact-header h3 {
        font-size: 14pt !important;
        color: #0f172a !important;
        margin-bottom: 4px !important;
    }

    .enterprise-contact-header p {
        font-size: 9.5pt !important;
        color: #475569 !important;
        margin-bottom: 14px !important;
    }

    .enterprise-contact-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px 16px !important;
    }

    .enterprise-form-group {
        display: block !important;
        margin-bottom: 8px !important;
    }

    .enterprise-form-group.full-width {
        grid-column: span 2 !important;
    }

    .enterprise-form-label {
        font-weight: 700 !important;
        font-size: 8.5pt !important;
        color: #1e293b !important;
        text-transform: uppercase !important;
        letter-spacing: 0.03em !important;
        margin-bottom: 3px !important;
        display: block !important;
    }

    .enterprise-form-input,
    .enterprise-form-select,
    .enterprise-form-textarea {
        background: #f8fafc !important;
        border: 1px solid #94a3b8 !important;
        color: #0f172a !important;
        border-radius: 6px !important;
        padding: 6px 10px !important;
        font-size: 9.5pt !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .enterprise-form-textarea {
        min-height: 50px !important;
    }

    .enterprise-contact-section::after {
        content: "TIPX Switzerland Enterprise Partnerships • Corporate Contact: enterprise@tipx.ch • Lugano / Zürich, Switzerland";
        display: block !important;
        margin-top: 14px !important;
        padding-top: 8px !important;
        border-top: 1px dashed #cbd5e1 !important;
        font-size: 8pt !important;
        color: #64748b !important;
        text-align: center !important;
        font-weight: 600 !important;
    }


    /* ==========================================================================
       5. PRINT FOOTER & OFFICIAL LEGAL CERTIFICATION
       ========================================================================== */
    footer {
        border-top: 1px solid #cbd5e1 !important;
        margin-top: 16px !important;
        padding-top: 10px !important;
        font-size: 8pt !important;
        color: #64748b !important;
        text-align: center !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    footer::before {
        content: "Official Document — TIPX Switzerland Real-Time Tip Compliance System (Art. 8bis OAVS / Art. 21 L-GAV / nLPD 2023)";
        display: block !important;
        font-weight: 800 !important;
        color: #0f172a !important;
        font-size: 8.5pt !important;
        margin-bottom: 4px !important;
    }

    /* URL Printing for External Links */
    a[href^="http"]:not(.social-icon-link)::after {
        content: " (" attr(href) ")";
        font-size: 7.5pt;
        color: #475569;
    }

    /* ==========================================================================
       6. SWISS MARKETING MATERIALS & 9 MOCKUPS PRINT SPECIFICATION (300 DPI)
       ========================================================================== */
    .swiss-print-sheet {
        position: relative !important;
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 30px !important;
        background: #ffffff !important;
        margin: 0 auto !important;
        box-sizing: border-box !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .swiss-crop-marks-overlay {
        position: absolute !important;
        inset: 0 !important;
        pointer-events: none !important;
    }

    .swiss-crop-mark {
        position: absolute !important;
        width: 22px !important;
        height: 22px !important;
    }

    .swiss-crop-tl { top: 0 !important; left: 0 !important; border-top: 1.5pt solid #000 !important; border-left: 1.5pt solid #000 !important; }
    .swiss-crop-tr { top: 0 !important; right: 0 !important; border-top: 1.5pt solid #000 !important; border-right: 1.5pt solid #000 !important; }
    .swiss-crop-bl { bottom: 0 !important; left: 0 !important; border-bottom: 1.5pt solid #000 !important; border-left: 1.5pt solid #000 !important; }
    .swiss-crop-br { bottom: 0 !important; right: 0 !important; border-bottom: 1.5pt solid #000 !important; border-right: 1.5pt solid #000 !important; }

    .swiss-print-meta {
        margin-top: 20px !important;
        padding-top: 10px !important;
        border-top: 0.5pt solid #cbd5e1 !important;
        font-size: 7pt !important;
        color: #64748b !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        text-align: center !important;
        line-height: 1.4 !important;
    }

    .swiss-color-bars {
        display: flex !important;
        gap: 3px !important;
        justify-content: center !important;
        margin-top: 6px !important;
    }

    .swiss-swatch {
        width: 14px !important;
        height: 6px !important;
        border: 0.5pt solid #000 !important;
        display: inline-block !important;
    }

    .marketing-mockup-view {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .marketing-qr-container svg,
    .marketing-qr-container img,
    .marketing-qr-container canvas {
        max-width: 130px !important;
        max-height: 130px !important;
        display: block !important;
        margin: 0 auto !important;
    }
}
