* { margin: 0; padding: 0; box-sizing: border-box; } /* Verbesserte CSS-Counter für automatische Nummerierung */ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: white; color: #333; line-height: 1.6; margin: 0; padding: 0; counter-reset: page-counter chapter-counter section-counter subsection-counter; } /* Print page layout rules */ @page { size: A4; margin: 25mm 20mm 30mm 20mm; /* Top, Right, Bottom, Left margins */ } .page { width: 210mm; min-height: 297mm; margin: 0 auto; background: white; position: relative; box-shadow: 0 0 10px rgba(0,0,0,0.1); margin-bottom: 20px; overflow: visible; } /* First page: No footer, force page break */ .page:first-child { page-break-after: always; } /* Content page: Let content flow naturally across printed pages */ .page:not(:first-child) { page-break-after: auto; } /* Page 1: No header, no footer - completely clean */ .page:first-child::before { display: none; } .page:first-child .page-footer { display: none; } /* Ensure footer is visible on all content pages (pages 2+) */ .page:not(:first-child) .page-footer { display: block; } /* Logo section for first page */ .logo-section { text-align: right; padding: 20px 0; margin-bottom: 20px; } .logo { max-width: 200px; height: auto; } /* Contact information styling */ .contact-info { margin-top: 60px; } .contact-bars { display: flex; margin-bottom: 20px; } .grey-bar { width: 80px; height: 4px; background-color: #808080; } .golden-bar { flex: 1; height: 4px; background-color: #D4AF37; } .contact-grid { display: flex; justify-content: space-between; font-size: 14px; color: #808080; line-height: 1.6; } .contact-left p, .contact-right p { margin: 0; font-family: Arial, sans-serif; } /* CSS footers for flowing text - appear on every printed page */ @page { @bottom-center { content: "KI-Lead Management System Energie360° | Seite " counter(page); border-top: 2px solid #D4AF37; padding: 10px 0; font-size: 9px; color: #333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-weight: 400; line-height: 1.4; } } /* First page: No footer */ @page :first { @bottom-center { content: ""; } } /* Remove all fixed positioning and green styling */ .page-header { display: none; } /* Adjust main content to account for fixed header and footer */ .page .main-content { margin-top: 20px; margin-bottom: 20px; } /* All old footer styles removed - now using CSS @page rules */ /* Page numbering and content now handled by CSS @page rules */ .main-content { padding: 40px 40px 60px 40px; position: relative; overflow: visible; } .title-area { text-align: center; margin-bottom: 60px; } .main-title { font-size: 32px; font-weight: bold; color: #172B46; margin-bottom: 20px; } .subtitle { font-size: 24px; color: #172B46; margin-bottom: 30px; } .separator { width: 33%; height: 2px; background: #B39D14; margin: 0 auto 40px auto; } .document-details { text-align: left; margin-bottom: 60px; } .document-details p { margin-bottom: 10px; font-size: 16px; color: #333; } /* Inhaltsverzeichnis Styling */ .toc-title { font-size: 28px; font-weight: bold; color: #172B46; margin-bottom: 40px; text-align: center; } .toc-entry { margin-bottom: 8px; display: flex; justify-content: space-between; align-items: baseline; padding: 4px 0; transition: background-color 0.2s ease; border-radius: 4px; width: 100%; } .toc-entry:hover { background-color: #f8f9fa; padding-left: 10px; padding-right: 10px; } .toc-entry .toc-text { flex: 1; color: #333; text-decoration: none; min-width: 0; /* Allow text to shrink if needed */ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-right: 10px; /* Space between text and page number */ } .toc-entry .dots { flex: 0 0 20px; margin: 0 10px; /* Fixed width for spacing, giving more room for text */ } /* Alternative: Remove dotted line entirely */ .toc-entry.no-dots .dots { display: none; } .toc-entry .toc-page { font-weight: bold; color: #B39D14; min-width: 30px; text-align: right; flex-shrink: 0; /* Prevent page number from shrinking */ } .toc-level-1 { font-weight: bold; font-size: 18px; color: #172B46; border-left: 3px solid #B39D14; padding-left: 15px; } .toc-level-2 { margin-left: 20px; font-size: 16px; color: #333; border-left: 2px solid #dee2e6; padding-left: 15px; } .toc-level-3 { margin-left: 40px; font-size: 14px; color: #666; border-left: 1px solid #f1f3f4; padding-left: 15px; } /* Content Page Styling with automatic numbering */ .content-heading { font-weight: bold; color: #172B46; margin-bottom: 20px; } /* Kapitel-Überschriften Styling */ .heading-level-1 { font-size: 20px; margin-top: 40px; margin-bottom: 25px; page-break-after: avoid; } /* Abschnitts-Überschriften Styling */ .heading-level-2 { font-size: 18px; margin-top: 30px; margin-bottom: 20px; page-break-after: avoid; } /* Unterabschnitts-Überschriften Styling */ .heading-level-3 { font-size: 16px; margin-top: 25px; margin-bottom: 15px; page-break-after: avoid; } .content-text { margin-bottom: 20px; font-size: 14px; line-height: 1.6; text-align: justify; } .content-list { margin: 20px 0 20px 20px; } .content-list li { margin-bottom: 10px; font-size: 14px; line-height: 1.5; text-align: justify; } /* Entferne doppelte Listenzeichen - verwende nur HTML-Listen */ .bullet-list { list-style-type: none; } .bullet-list li { list-style: none; position: relative; padding-left: 1.5em; margin-bottom: 8px; text-align: left !important; } .bullet-list li::before { content: "•"; color: #B39D14; font-weight: bold; position: absolute; left: 0; top: 0; width: 1em; } /* Remove conflicting bullet styles from terms-list */ .terms-list { list-style-type: none; } .terms-list li:before { content: none; /* Remove the bullet */ } .numbered-list { list-style-type: none; counter-reset: list-counter; } .numbered-list li { counter-increment: list-counter; position: relative; padding-left: 2em; margin-bottom: 8px; text-align: left; } .numbered-list li::before { content: counter(list-counter) "."; color: #B39D14; font-weight: bold; position: absolute; left: 0; top: 0; width: 1.5em; } /* Phase Cards Styling */ .phase-section { margin-bottom: 50px; page-break-inside: avoid; } .phase-card { background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 8px; padding: 25px; margin-bottom: 25px; page-break-inside: avoid; } .phase-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; } .phase-name { font-size: 18px; font-weight: bold; color: #172B46; flex: 1; margin-right: 20px; } .phase-cost { background: white; padding: 15px; border-radius: 6px; border: 1px solid #dee2e6; text-align: center; min-width: 150px; flex-shrink: 0; } .cost-amount { font-size: 20px; font-weight: bold; color: #B39D14; margin-bottom: 5px; } .cost-label { font-size: 12px; color: #666; } .phase-details { background: #e8f5f2; padding: 25px; border-radius: 6px; border-left: 3px solid #B39D14; } .phase-details h5 { color: #172B46; margin-bottom: 20px; font-size: 16px; } .phase-details li { margin-bottom: 10px; color: #333; line-height: 1.6; font-size: 14px; text-align: justify; } /* Total Overview Styling */ .total-section { margin-top: 50px; margin-bottom: 50px; } .total-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 25px; margin: 25px 0; } .total-card { background: #f8f9fa; padding: 25px; border-radius: 8px; border-left: 4px solid #B39D14; page-break-inside: avoid; } .total-card h4 { color: #172B46; margin-bottom: 25px; font-size: 18px; } .cost-summary { background: white; padding: 25px; border-radius: 6px; border: 1px solid #dee2e6; } .cost-row { display: flex; justify-content: space-between; align-items: center; padding: 15px 0; border-bottom: 1px solid #f1f3f4; } .cost-row:last-child { border-bottom: none; } .cost-row.total-row { border-top: 2px solid #B39D14; border-bottom: none; font-weight: bold; font-size: 18px; color: #172B46; padding-top: 25px; } /* Info Boxes Styling */ .info-box { background: #e8f5f2; padding: 25px; border-radius: 6px; border-left: 3px solid #B39D14; margin: 30px 0; page-break-inside: avoid; } .info-box h4 { color: #172B46; margin-bottom: 20px; } .info-box ul { margin: 0; padding-left: 20px; } .info-box li { margin-bottom: 10px; color: #333; line-height: 1.6; font-size: 14px; text-align: justify; } /* Contact Information Styling */ .contact-section { margin: 40px 0; } .contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 25px; margin: 25px 0; } .contact-card { background: #f8f9fa; padding: 25px; border-radius: 8px; border-left: 4px solid #B39D14; page-break-inside: avoid; } .contact-card h4 { color: #172B46; margin-bottom: 20px; font-size: 16px; } .contact-details { background: white; padding: 20px; border-radius: 6px; border: 1px solid #dee2e6; } .contact-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #f1f3f4; } .contact-row:last-child { border-bottom: none; } /* Terms and Conditions Styling */ .terms-section { margin: 40px 0; } .terms-card { background: #f8f9fa; padding: 25px; border-radius: 8px; border-left: 4px solid #B39D14; margin-bottom: 25px; page-break-inside: avoid; } .terms-card h4 { color: #172B46; margin-bottom: 20px; font-size: 16px; } .terms-list { background: white; padding: 20px; border-radius: 6px; border: 1px solid #dee2e6; } .terms-list li { margin-bottom: 12px; padding-left: 25px; position: relative; line-height: 1.6; text-align: justify; } /* Removed duplicate rule - bullets now handled by bullet-list class */ /* Signature Section Styling */ .signature-section { margin: 50px 0; page-break-inside: avoid; } .signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin: 30px 0; } .signature-card { background: #f8f9fa; padding: 30px; border-radius: 8px; border-left: 4px solid #B39D14; min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; } .signature-card h4 { color: #172B46; margin-bottom: 25px; font-size: 18px; text-align: center; } .signature-area { background: white; border: 1px solid #dee2e6; border-radius: 6px; padding: 25px; margin: 20px 0; min-height: 80px; display: flex; align-items: center; justify-content: center; color: #999; font-style: italic; } .signature-details { background: white; padding: 20px; border-radius: 6px; border: 1px solid #dee2e6; margin-top: 20px; } .signature-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #f1f3f4; } .signature-row:last-child { border-bottom: none; } /* Timeline Styling */ .timeline { position: relative; padding: 30px 0; } .timeline-item { display: flex; margin-bottom: 40px; position: relative; page-break-inside: avoid; } .timeline-marker { width: 40px; height: 40px; background: #B39D14; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; flex-shrink: 0; margin-right: 25px; } .timeline-content { flex: 1; background: #f8f9fa; padding: 25px; border-radius: 8px; } .timeline-content h4 { color: #172B46; margin-bottom: 20px; font-size: 18px; } /* AI-Human Split Styling */ .ai-human-split { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-bottom: 25px; } .ai-section, .human-section { background: #f8f9fa; padding: 20px; border-radius: 6px; border-left: 3px solid; } .ai-section { border-left-color: #B39D14; } .human-section { border-left-color: #172B46; } .ai-section h5, .human-section h5 { color: #172B46; margin-bottom: 15px; font-size: 14px; } .ai-section ul, .human-section ul { margin: 0; padding-left: 20px; } .ai-section li, .human-section li { font-size: 13px; margin-bottom: 8px; color: #495057; line-height: 1.5; text-align: justify; } /* Grid Layout for Cards */ .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 25px; margin: 25px 0; } .card { background: #f8f9fa; padding: 25px; border-radius: 8px; border-left: 4px solid #B39D14; page-break-inside: avoid; } .card h4 { color: #172B46; margin-bottom: 20px; font-size: 16px; } .card p, .card ul { color: #495057; line-height: 1.6; font-size: 14px; } .card ul { margin-left: 20px; margin-top: 15px; } .card li { margin-bottom: 10px; text-align: justify; } /* Professional Print Styles */ @media print { .page { page-break-after: always; margin: 0; padding: 20px; } body { background: white; } .signature-section { page-break-inside: avoid; } .phase-card { page-break-inside: avoid; } .total-card { page-break-inside: avoid; } .info-box { page-break-inside: avoid; } .contact-card { page-break-inside: avoid; } .terms-card { page-break-inside: avoid; } .timeline-item { page-break-inside: avoid; } .card { page-break-inside: avoid; } /* Ensure proper page breaks */ .page:last-child { page-break-after: avoid; } /* Better text rendering for print */ * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } .logo-section { margin-top: 0; } /* Ensure footer appears on every printed page */ .page-footer { position: fixed; bottom: 20px; left: 20px; right: 20px; background: white; border-top: 2px solid #D4AF37; padding: 10px 0; z-index: 1000; } /* First page should not show footer */ .page:first-child .page-footer { display: none; } } /* Responsive Design */ @media (max-width: 768px) { .ai-human-split { grid-template-columns: 1fr; gap: 15px; } .grid { grid-template-columns: 1fr; gap: 15px; } .timeline-item { flex-direction: column; } .timeline-marker { margin-right: 0; margin-bottom: 15px; align-self: flex-start; } }