PageSourceSearch

https://www.gaeb-online.de/sitemap.html

html gaeb-online.de collected 2026-10-04 02:33:38 UTC 96,123 bytes, 1,426 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de" data-theme="light">
3<head>
4<meta charset="utf-8">
5<meta http-equiv="X-UA-Compatible" content="IE=edge">
6<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, shrink-to-fit=no">
7
8<title>gaeb-online: Sitemap von GAEB-Online 2025</title>
9<meta name="description" content="Sitemap von gaeb-online.de – alle Seiten der Website im Überblick: Software, Funktionen, Preise, Downloads, FAQ und Kontakt.">
10<meta name="keywords" content="gaeb, gaeb datei, GAEB XML, GAEB DA XML, GAEB 2000, GAEB 90, Excel, LV, Kalkulation, D84, D83, P83, P84, X83, X84, EFB 223, EFB 221, D11, DA11, X31, X89, XRechnung, REB 23.003, Excel-Aufmaß">
11<meta name="author" content="Ulrike Braun">
12<meta name="publisher" content="Ulrike Braun">
13<meta name="company" content="gaeb-online, Ulrike Braun">
14<meta name="page-topic" content="Bausoftware">
15<meta name="page-type" content="Produktinfo, Software, Download">
16<meta name="reply-to" content="[email protected]">
17<meta name="robots" content="index,follow">
18<meta name="audience" content="Alle">
19
20<link rel="canonical" href="https://www.gaeb-online.de/sitemap.html">
21<link rel="alternate" hreflang="de" href="https://www.gaeb-online.de/sitemap.html">
22<link rel="alternate" hreflang="x-default" href="https://www.gaeb-online.de/sitemap.html">
23
24<!-- Open Graph / Facebook -->
25<meta property="og:type"        content="website">
26<meta property="og:site_name"   content="GAEB-Online">
27<meta property="og:locale"      content="de_DE">
28<meta property="og:url"         content="https://www.gaeb-online.de/sitemap.html">
29<meta property="og:title"       content="gaeb-online: Sitemap von GAEB-Online 2025">
30<meta property="og:description" content="Sitemap von gaeb-online.de – alle Seiten der Website im Überblick: Software, Funktionen, Preise, Downloads, FAQ und Kontakt.">
31<meta property="og:image"       content="https://www.gaeb-online.de/pics/main.webp">
32<meta property="og:image:alt"   content="gaeb-online: Sitemap von GAEB-Online 2025">
33
34<!-- Twitter / X -->
35<meta name="twitter:card"        content="summary_large_image">
36<meta name="twitter:title"       content="gaeb-online: Sitemap von GAEB-Online 2025">
37<meta name="twitter:description" content="Sitemap von gaeb-online.de – alle Seiten der Website im Überblick: Software, Funktionen, Preise, Downloads, FAQ und Kontakt.">
38<meta name="twitter:image"       content="https://www.gaeb-online.de/pics/main.webp">
39<meta name="twitter:image:alt"   content="gaeb-online: Sitemap von GAEB-Online 2025">
40
41<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico">
42<link rel="apple-touch-icon" href="img/gaeb-touch-icon.png">
43
44<!-- Preconnect für Cookie-Consent-Domain (wird lazy geladen) -->
45<link rel="preconnect" href="https://consent.cookiefirst.com/" crossorigin>
46
47<!-- Preload wichtigste Fonts -->
48<link rel="preload" as="font" type="font/woff2" href="fonts/inter-latin-400-normal.woff2" crossorigin>
49<link rel="preload" as="font" type="font/woff2" href="fonts/inter-latin-700-normal.woff2" crossorigin>
50
51<!-- Stylesheet (self-hosted, DSGVO-konform, keine externen Abhängigkeiten) -->
52<link rel="stylesheet" href="assets/styles.css">
53
54<!-- FOUC-freier Theme-Init (muss vor Body-Render laufen) -->
55<script src="assets/theme-init.js"></script>
55
56
57<!-- Privacy-friendly analytics by Plausible (cookie-frei, DSGVO-konform) -->
58<script defer src="https://plausible.io/js/pa-JcqnpeHxqSm44cCHVN0yN.js"></script>
vendor: 2 bytes, line 58
58
59<script>
60  window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
61  plausible.init();
62
63  // Custom Event: Aufruf einer Wissen-Ratgeber-Seite
64  (function(){
65    var wissenSlugs = [
66      'gaeb-wissen',
67      'gaeb-datei-oeffnen',
68      'gaeb-in-excel-umwandeln',
69      'gaeb-x83-datei',
70      'gaeb-x84-datei',
71      'gaeb-d83-d84-erklaert',
72      'gaeb-aufmass',
73      'gaeb-da11-datei',
74      'gaeb-x31-datei'
75    ];
76    var path = location.pathname.replace(/^.*\//, '').replace(/\.html$/, '');
77    if (wissenSlugs.indexOf(path) !== -1 && window.plausible) {
78      window.plausible('Wissen-Seite', { props: { seite: path } });
79    }
80  })();
81
82</script>
82
83
84<!-- Strukturierte Daten -->
85<script type="application/ld+json">
86{
87			  "@context" : "https://schema.org",
88			  "@type" : "SoftwareApplication",
89			  "name" : "GAEB-Online 2025",
90			  "image" : "https://www.gaeb-online.de/img/logo_head.webp",
91			  "url" : "https://www.gaeb-online.de",
92			  "author" : {
93				"@type" : "Person",
94				"name" : "Ulrike Braun"
95			  },
96			  "datePublished" : "2025-01-08",
97			  "publisher" : {
98				"@type" : "Organization",
99				"name" : "gaeb-online, Ulrike Braun"
100			  },
101			  "offers": {
102				"@type": "Offer",
103				"price": "120.00",
104				"priceCurrency": "EUR"
105			  },
106			  "applicationCategory" : "Bau-Software",
107			  "downloadUrl" : "https://www.gaeb-online.de/download/setup_GO2025.exe",
108			  "operatingSystem" : "Windows",
109			  "requirements" : ".NET 4.8",
110			  "screenshot" : "https://www.gaeb-online.de/pics/gaeb_signatur_paper.png",
111			  "softwareVersion" : "2025"
112			  }
113</script>
113
114
115</head>
116
117<body>
118
119<!-- ============ LUCIDE SVG-SPRITE (inline) ============
120     Quelle: https://lucide.dev (ISC License).
121     Inline eingebettet, damit <use href="#name"/> auch bei lokalem Aufruf
122     (file://) in allen Browsern funktioniert. Die Pflege erfolgt in
123     assets/icons.svg; Aenderungen dort bitte hierher synchronisieren. -->
124<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
125  <symbol id="check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></symbol>
126  <symbol id="check-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></symbol>
127  <symbol id="box" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5"/><path d="M12 22V12"/></symbol>
128  <symbol id="monitor" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/></symbol>
129  <symbol id="download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></symbol>
130  <symbol id="shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/></symbol>
131  <symbol id="shopping-cart" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="21" r="1"/><circle cx="19" cy="21" r="1"/><path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12"/></symbol>
132  <symbol id="arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></symbol>
133  <symbol id="zap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></symbol>
134  <symbol id="euro" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10h12"/><path d="M4 14h9"/><path d="M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2"/></symbol>
135  <symbol id="list" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="8" x2="21" y1="6" y2="6"/><line x1="8" x2="21" y1="12" y2="12"/><line x1="8" x2="21" y1="18" y2="18"/><line x1="3" x2="3.01" y1="6" y2="6"/><line x1="3" x2="3.01" y1="12" y2="12"/><line x1="3" x2="3.01" y1="18" y2="18"/></symbol>
136  <symbol id="file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><polyline points="14 2 14 8 20 8"/></symbol>
137  <symbol id="file-text" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><line x1="10" y1="9" x2="8" y2="9"/></symbol>
138  <symbol id="file-spreadsheet" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><polyline points="14 2 14 8 20 8"/><path d="M8 13h2"/><path d="M14 13h2"/><path d="M8 17h2"/><path d="M14 17h2"/></symbol>
139  <symbol id="file-code" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><polyline points="14 2 14 8 20 8"/><path d="m10 13-2 2 2 2"/><path d="m14 17 2-2-2-2"/></symbol>
140  <symbol id="pencil" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/></symbol>
141  <symbol id="check-square" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 11 12 14 22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/></symbol>
142  <symbol id="users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></symbol>
143  <symbol id="usb" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="7" r="1"/><circle cx="4" cy="20" r="1"/><path d="M4.7 19.3 19 5"/><path d="m21 3-3 1 2 2Z"/><path d="M9.26 7.68 5 12l2 5"/><path d="m10 14 5 2 3-2"/><path d="m11 10 4-2"/></symbol>
144  <symbol id="network" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="16" y="16" width="6" height="6" rx="1"/><rect x="2" y="16" width="6" height="6" rx="1"/><rect x="9" y="2" width="6" height="6" rx="1"/><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"/><path d="M12 12V8"/></symbol>
145  <symbol id="log-out" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" x2="9" y1="12" y2="12"/></symbol>
146  <symbol id="share" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" x2="12" y1="2" y2="15"/></symbol>
147  <symbol id="share-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"/><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"/></symbol>
148  <symbol id="server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><line x1="6" x2="6.01" y1="6" y2="6"/><line x1="6" x2="6.01" y1="18" y2="18"/></symbol>
149  <symbol id="reply" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 17 4 12 9 7"/><path d="M20 18v-2a4 4 0 0 0-4-4H4"/></symbol>
150  <symbol id="quote" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z"/><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z"/></symbol>
151  <symbol id="info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></symbol>
152  <symbol id="filter" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"/></symbol>
153  <symbol id="arrow-right-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 3 4 4-4 4"/><path d="M20 7H4"/><path d="m8 21-4-4 4-4"/><path d="M4 17h16"/></symbol>
154  <symbol id="mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></symbol>
155  <symbol id="settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></symbol>
156  <symbol id="code" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></symbol>
157  <symbol id="calculator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="16" height="20" x="4" y="2" rx="2"/><line x1="8" x2="16" y1="6" y2="6"/><line x1="16" x2="16" y1="14" y2="18"/><path d="M16 10h.01"/><path d="M12 10h.01"/><path d="M8 10h.01"/><path d="M12 14h.01"/><path d="M8 14h.01"/><path d="M12 18h.01"/><path d="M8 18h.01"/></symbol>
158  <symbol id="ban" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m4.9 4.9 14.2 14.2"/></symbol>
159  <symbol id="arrow-right-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m12 16 4-4-4-4"/><path d="M8 12h8"/></symbol>
160  <symbol id="compass" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/></symbol>
161  <symbol id="bar-chart" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M18 17V9"/><path d="M13 17V5"/><path d="M8 17v-3"/></symbol>
162  <symbol id="clipboard-list" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M12 11h4"/><path d="M12 16h4"/><path d="M8 11h.01"/><path d="M8 16h.01"/></symbol>
163  <symbol id="ruler" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.3 8.7 8.7 21.3a2.4 2.4 0 0 1-3.4 0l-2.6-2.6a2.41 2.41 0 0 1 0-3.4L15.3 2.7a2.41 2.41 0 0 1 3.4 0l2.6 2.6a2.4 2.4 0 0 1 0 3.4Z"/><path d="m7.5 10.5 2 2"/><path d="m10.5 7.5 2 2"/><path d="m13.5 4.5 2 2"/><path d="m4.5 13.5 2 2"/></symbol>
164  <symbol id="target" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></symbol>
165  <symbol id="badge-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"/><path d="m9 12 2 2 4-4"/></symbol>
166  <symbol id="bot" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></symbol>
167  <symbol id="printer" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect width="12" height="8" x="6" y="14"/></symbol>
168  <symbol id="clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></symbol>
169  <symbol id="wrench" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></symbol>
170  <symbol id="link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></symbol>
171  <symbol id="lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></symbol>
172  <symbol id="unlock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></symbol>
173  <symbol id="refresh-cw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></symbol>
174  <symbol id="shuffle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5"/><path d="M4 20 21 3"/><path d="M21 16v5h-5"/><path d="m15 15 6 6"/><path d="M4 4l5 5"/></symbol>
175  <symbol id="upload" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" x2="12" y1="3" y2="15"/></symbol>
176  <symbol id="paperclip" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 17.93 8.8l-8.57 8.57a2 2 0 0 1-2.83-2.83l7.07-7.07"/></symbol>
177  <symbol id="hard-hat" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 18a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1Z"/><path d="M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5"/><path d="M4 15v-3a6 6 0 0 1 6-6"/><path d="M14 6a6 6 0 0 1 6 6v3"/></symbol>
178  <symbol id="film" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M7 3v18"/><path d="M3 7.5h4"/><path d="M3 12h18"/><path d="M3 16.5h4"/><path d="M17 3v18"/><path d="M17 7.5h4"/><path d="M17 16.5h4"/></symbol>
179  <symbol id="scale" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"/>
179<path d="m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"/><path d="M7 21h10"/><path d="M12 3v18"/><path d="M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2"/></symbol>
180  <symbol id="timer" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="10" x2="14" y1="2" y2="2"/><line x1="12" x2="15" y1="14" y2="11"/><circle cx="12" cy="14" r="8"/></symbol>
181  <symbol id="image" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></symbol>
182  <symbol id="trending-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></symbol>
183  <symbol id="save" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/><polyline points="17 21 17 13 7 13 7 21"/><polyline points="7 3 7 8 15 8"/></symbol>
184  <symbol id="eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></symbol>
185  <symbol id="globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/></symbol>
186  <symbol id="help-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" x2="12.01" y1="17" y2="17"/></symbol>
187  <symbol id="brain" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"/><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"/><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"/><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"/><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"/><path d="M3.477 10.896a4 4 0 0 1 .585-.396"/><path d="M19.938 10.5a4 4 0 0 1 .585.396"/><path d="M6 18a4 4 0 0 1-1.967-.516"/><path d="M19.967 17.484A4 4 0 0 1 18 18"/></symbol>
188  <symbol id="files" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 7h-3a2 2 0 0 1-2-2V2"/><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6l5 5v9a2 2 0 0 1-2 2Z"/><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"/></symbol>
189  <symbol id="arrow-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 19-7-7 7-7"/><path d="M19 12H5"/></symbol>
190  <symbol id="calendar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 2v4"/><path d="M16 2v4"/><rect width="18" height="18" x="3" y="4" rx="2"/><path d="M3 10h18"/></symbol>
191  <symbol id="layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"/><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"/></symbol>
192  <symbol id="pie-chart" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.21 15.89A10 10 0 1 1 8 2.83"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></symbol>
193  <symbol id="lightbulb" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/></symbol>
194  <!-- Versionsmatrix (gaeb-versionen.html / gaeb-funktionen.html): Ja / Nein -->
195  <symbol id="v-yes" viewBox="0 0 24 24" fill="none" stroke="currentColor"><circle cx="12" cy="12" r="11" stroke-width="2"/><path d="M7 12.5l3.2 3.2L17 8.8" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></symbol>
196  <symbol id="v-no" viewBox="0 0 24 24" fill="none" stroke="currentColor"><circle cx="12" cy="12" r="11" stroke-width="2"/><path d="M8 8l8 8M16 8l-8 8" stroke-width="2.4" stroke-linecap="round"/></symbol>
197</svg>
198
199<!-- Skip-Link für Screenreader -->
200<a href="#main" class="skip-link">Zum Inhalt springen</a>
201
202<!-- ============ TOPBAR ============ -->
203<div class="topbar" role="complementary" aria-label="Service-Navigation">
204  <div class="container">
205    <div class="topbar-inner">
206      <a href="gaeb-schulung.html">Schulung</a>
207      <span class="topbar-divider" aria-hidden="true"></span>
208      <a href="sitemap.html">Sitemap</a>
209      <span class="topbar-divider" aria-hidden="true"></span>
210      <a href="gaeb-impr.html">Impressum</a>
211      <span class="topbar-divider" aria-hidden="true"></span>
212      <a href="index-en.html" lang="en">English</a>
213      <span class="topbar-divider" aria-hidden="true"></span>
214      <button class="topbar-btn" type="button" data-theme-toggle aria-pressed="false" aria-label="Dunkelmodus aktivieren">
215        <svg class="icon-moon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
216        <svg class="icon-sun"  width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>
217        <span>Modus</span>
218      </button>
219    </div>
220  </div>
221</div>
222
223<!-- ============ HEADER ============ -->
224<header class="header" role="banner">
225  <div class="container">
226    <div class="header-inner">
227
228      <!-- Brand -->
229      <a href="index.html" class="brand" aria-label="GAEB-Online 2025 — Startseite">
230        <img src="img/logo_head.webp" alt="GAEB-Online 2025 Logo" width="120" height="31" loading="eager" decoding="async">
231      </a>
232
233      <!-- Haupt-Navigation (Desktop) -->
234      <nav class="nav" role="navigation" aria-label="Hauptnavigation">
235
236        <div class="nav-item has-dropdown">
237          <a href="#" class="nav-link">Software
238            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
239          </a>
240          <div class="dropdown dropdown-desc" role="menu">
241            <a href="gaeb-aktuell.html" class="dropdown-link" role="menuitem"><strong>GAEB-Online 2025 – Einzelplatz</strong><small>Hauptprodukt für Windows</small></a>
242            <a href="gaeb-online-usb.html" class="dropdown-link" role="menuitem"><strong>GAEB-Online 2025 – USB-Stick</strong><small>Portable Version auf USB-Stick</small></a>
243            <a href="gaeb-preis-ts.html" class="dropdown-link" role="menuitem"><strong>GAEB-Online 2025 – Terminalserver</strong><small>Für Windows Terminalserver</small></a>
244            <a href="gaeb-ki-preisnavigator.html" class="dropdown-link" role="menuitem"><strong>GAEB-KI-PreisNavigator</strong><small>KI-gestützte Preiskalkulation</small></a>
245            <div class="dropdown-divider" role="separator"></div>
246            <a href="gaeb-schulung.html" class="dropdown-link" role="menuitem"><strong>Schulung per Video-Training</strong><small>Lernen Sie GAEB-Online 2025</small></a>
247            <a href="gaeb-produktbeschreibung.html" class="dropdown-link" role="menuitem"><strong>Produktbeschreibung</strong><small>Beschreibungen aller Produkte</small></a>
248          </div>
249        </div>
250
251        <div class="nav-item has-dropdown">
252          <a href="#" class="nav-link">Erweiterungen
253            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
254          </a>
255          <div class="dropdown dropdown-desc" role="menu">
256            <a href="gaeb-efb-221-223.html" class="dropdown-link" role="menuitem"><strong>Excel EFB-Kalkulation</strong><small>EFB 221 / 223 aus Urkalkulation</small></a>
257            <a href="gaeb-efb-ekt-detail.html" class="dropdown-link" role="menuitem"><strong>Excel EFB-EKT-Detail</strong><small>Detaillierte Kostenansätze je Position</small></a>
258            <a href="gaeb-efb-221-rueck.html" class="dropdown-link" role="menuitem"><strong>Excel EFB-Rückwärtskalkulation</strong><small>Nachträgliche Aufteilung vorhandener EP</small></a>
259            <div class="dropdown-divider" role="separator"></div>
260            <a href="gaeb-excel-aufmass.html" class="dropdown-link" role="menuitem"><strong>Excel-Aufmaß XRechnung</strong><small>Aufmaß mit XRechnung 3.0</small></a>
261            <a href="gaeb-x31-generator.html" class="dropdown-link" role="menuitem"><strong>GAEB-X31-Generator</strong><small>GAEB X31 aus einem Excel-LV</small></a>
262            <a href="gaeb-excel-xrechnung.html" class="dropdown-link" role="menuitem"><strong>Excel Vorlage für XRechnung</strong><small>XRechnung direkt aus Excel</small></a>
263            <div class="dropdown-divider" role="separator"></div>
264            <a href="gaeb-excel-lv-generator.html" class="dropdown-link" role="menuitem"><strong>Excel-LV-Generator <span class="free-badge">KOSTENLOS</span></strong><small>Excel-Vorlage für GAEB-Online 2025</small></a>
265          </div>
266        </div>
267
268        <div class="nav-item has-dropdown">
269          <a href="#" class="nav-link">Funktionen
270            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
271          </a>
272          <div class="dropdown" role="menu">
273            <a href="gaeb-excel-gaeb.html" class="dropdown-link" role="menuitem">Excel in GAEB konvertieren</a>
274            <a href="gaeb-excel.html" class="dropdown-link" role="menuitem">Export in Excel</a>
275            <a href="gaeb-excel-kalk.html" class="dropdown-link" role="menuitem">Kalkulation in Excel</a>
276            <a href="gaeb-ekt.html" class="dropdown-link" role="menuitem">Einzelkosten der Teilleistungen</a>
277            <a href="gaeb-open.html" class="dropdown-link" role="menuitem">Export in OpenOffice</a>
278            <a href="gaeb-imp-excel.html" class="dropdown-link" role="menuitem">Import Preise aus Excel</a>
279            <a href="gaeb-da84.html" class="dropdown-link" role="menuitem">Export DA84</a>
280            <a href="gaeb-imp-da84.html" class="dropdown-link" role="menuitem">Import DA84</a>
281            <a href="gaeb-imp-x94.html" class="dropdown-link" role="menuitem">Import X94 und P94</a>
282            <a href="gaeb-excel-aufmass.html" class="dropdown-link" role="menuitem">Aufmaß und Rechnung</a>
283            <a href="gaeb-excel-xrechnung.html" class="dropdown-link" role="menuitem">XRechnung</a>
284            <a href="gaeb-word.html" class="dropdown-link" role="menuitem">Export in Word</a>
285            <a href="gaeb-excel-konverter.html" class="dropdown-link" role="menuitem">Konverter für GAEB</a>
286            <a href="gaeb-phasen.html" class="dropdown-link" role="menuitem">GAEB Austauschphasen</a>
287            <a href="gaeb-funktionen.html" class="dropdown-link" role="menuitem"><strong>Übersicht der Funktionen</strong></a>
288          </div>
289        </div>
290
291        <div class="nav-item has-dropdown">
292          <a href="#" class="nav-link">Preise
293            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
294          </a>
295          <div class="dropdown" role="menu">
296            <a href="gaeb-preis.html" class="dropdown-link" role="menuitem"><strong>Preise – Einzelplatz</strong></a>
297            <a href="gaeb-preis-usb.html" class="dropdown-link" role="menuitem">Preise – USB</a>
298            <a href="gaeb-preis-ts.html" class="dropdown-link" role="menuitem">Preise – Terminalserver</a>
299            <a href="gaeb-ueber.html" class="dropdown-link" role="menuitem">Preisliste / Produktübersicht</a>
300          </div>
301        </div>
302
303        <a href="gaeb-download.html" class="nav-link">Download</a>
304
305        <a href="gaeb-ki-preisnavigator.html" class="nav-link">GAEB-KI</a>
306
307        <div class="nav-item has-dropdown">
308          <a href="gaeb-wissen.html" class="nav-link">Wissen
309            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
310          </a>
311          <div class="dropdown" role="menu">
312            <a href="gaeb-wissen.html" class="dropdown-link" role="menuitem"><strong>Übersicht: GAEB-Wissen</strong></a>
313            <a href="gaeb-datei-oeffnen.html" class="dropdown-link" role="menuitem">GAEB-Datei öffnen</a>
314            <a href="gaeb-in-excel-umwandeln.html" class="dropdown-link" role="menuitem">GAEB in Excel umwandeln</a>
315            <a href="pdf-in-gaeb-umwandeln.html" class="dropdown-link" role="menuitem">PDF in GAEB umwandeln</a>
316            <a href="gaeb-x83-datei.html" class="dropdown-link" role="menuitem">X83-Datei erklärt</a>
317            <a href="gaeb-x84-datei.html" class="dropdown-link" role="menuitem">X84-Datei erklärt</a>
318            <a href="gaeb-d83-d84-erklaert.html" class="dropdown-link" role="menuitem">D83 &amp; D84 (GAEB 90) erklärt</a>
319            <a href="gaeb-aufmass.html" class="dropdown-link" role="menuitem">Aufmaß im Bau (REB 23.003)</a>
320            <a href="gaeb-da11-datei.html" class="dropdown-link" role="menuitem">DA11 erklärt</a>
321            <a href="gaeb-x31-datei.html" class="dropdown-link" role="menuitem">GAEB X31 erklärt</a>
322            <a href="gaeb-datei.html" class="dropdown-link" role="menuitem">Was ist eine GAEB-Datei?</a>
323            <a href="gaeb-diff.html" class="dropdown-link" role="menuitem">GAEB-Formate im Vergleich</a>
324            <a href="gaeb-phasen.html" class="dropdown-link" role="menuitem">GAEB-Austauschphasen</a>
325          </div>
326        </div>
327
328        <div class="nav-item has-dropdown">
329          <a href="#" class="nav-link">Service
330            <svg class="nav-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
331          </a>
332          <div class="dropdown" role="menu">
333            <a href="gaeb-release-2025.html" class="dropdown-link" role="menuitem">Aktuelle Updates 2025</a>
334            <a href="gaeb-release-2023.html" class="dropdown-link" role="menuitem">Download älterer Versionen</a>
335            <a href="gaeb-system.html" class="dropdown-link" role="menuitem">Systemvoraussetzungen</a>
336            <a href="gaeb-faq.html" class="dropdown-link" role="menuitem">Fragen und Antworten</a>
337            <a href="gaeb-schulung.html" class="dropdown-link" role="menuitem">Schulung per Video-Training</a>
338            <a href="gaeb-excel-konverter.html" class="dropdown-link" role="menuitem">Produktbeschreibungen (GAEB-Format)</a>
339            <a href="gaeb-presse.html" class="dropdown-link" role="menuitem">Pressemitteilungen</a>
340          </div>
341        </div>
342
343      </nav>
344
345      <!-- Aktionen Rechts -->
346      <div class="header-actions">
347        <a href="gaeb-bestellung.html" class="btn btn-primary btn-sm">Kaufen</a>
348        <button class="theme-toggle" type="button" data-theme-toggle aria-pressed="false" aria-label="Dunkelmodus aktivieren">
349          <svg class="icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
350          <svg class="icon-sun"  width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41
350M17.66 6.34l1.41-1.41"/></svg>
351        </button>
352        <button class="nav-toggle" type="button" data-nav-toggle aria-label="Menü öffnen" aria-expanded="false" aria-controls="mobile-drawer">
353          <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
354        </button>
355      </div>
356
357    </div>
358  </div>
359</header>
360
361<!-- ============ MOBILE DRAWER ============ -->
362<div class="mobile-backdrop" data-backdrop aria-hidden="true"></div>
363<aside class="mobile-drawer" id="mobile-drawer" data-drawer aria-hidden="true" aria-label="Mobile Navigation">
364  <button class="mobile-drawer-close" type="button" data-drawer-close aria-label="Menü schließen">
365    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
366  </button>
367  <nav class="mobile-nav" aria-label="Mobile Hauptnavigation">
368    <button type="button" data-mobile-sub="m-software" aria-expanded="false">Software
369      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
370    </button>
371    <div class="mobile-sub" id="m-software">
372      <a href="gaeb-aktuell.html">GAEB-Online 2025 – Einzelplatz</a>
373      <a href="gaeb-online-usb.html">GAEB-Online 2025 – USB-Stick</a>
374      <a href="gaeb-preis-ts.html">GAEB-Online 2025 – Terminalserver</a>
375      <a href="gaeb-ki-preisnavigator.html">GAEB-KI-PreisNavigator</a>
376      <a href="gaeb-schulung.html">Schulung per Video-Training</a>
377      <a href="gaeb-produktbeschreibung.html">Produktbeschreibung</a>
378    </div>
379    <button type="button" data-mobile-sub="m-erweiterungen" aria-expanded="false">Erweiterungen
380      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
381    </button>
382    <div class="mobile-sub" id="m-erweiterungen">
383      <a href="gaeb-efb-221-223.html">Excel EFB-Kalkulation</a>
384      <a href="gaeb-efb-ekt-detail.html">Excel EFB-EKT-Detail</a>
385      <a href="gaeb-efb-221-rueck.html">Excel EFB-Rückwärtskalkulation</a>
386      <a href="gaeb-excel-aufmass.html">Excel-Aufmaß XRechnung</a>
387      <a href="gaeb-x31-generator.html">GAEB-X31-Generator</a>
388      <a href="gaeb-excel-xrechnung.html">Excel Vorlage XRechnung</a>
389      <a href="gaeb-excel-lv-generator.html">Excel-LV-Generator <span class="free-badge">KOSTENLOS</span></a>
390    </div>
391    <button type="button" data-mobile-sub="m-funktionen" aria-expanded="false">Funktionen
392      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
393    </button>
394    <div class="mobile-sub" id="m-funktionen">
395      <a href="gaeb-excel-gaeb.html">Excel in GAEB</a>
396      <a href="gaeb-excel.html">Export in Excel</a>
397      <a href="gaeb-excel-kalk.html">Kalkulation in Excel</a>
398      <a href="gaeb-ekt.html">Einzelkosten der Teilleistungen</a>
399      <a href="gaeb-da84.html">Export DA84</a>
400      <a href="gaeb-imp-da84.html">Import DA84</a>
401      <a href="gaeb-excel-aufmass.html">Aufmaß und Rechnung</a>
402      <a href="gaeb-excel-xrechnung.html">XRechnung</a>
403      <a href="gaeb-word.html">Export in Word</a>
404      <a href="gaeb-funktionen.html">Alle Funktionen</a>
405    </div>
406    <button type="button" data-mobile-sub="m-preise" aria-expanded="false">Preise
407      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
408    </button>
409    <div class="mobile-sub" id="m-preise">
410      <a href="gaeb-preis.html">Preise – Einzelplatz</a>
411      <a href="gaeb-preis-usb.html">Preise – USB</a>
412      <a href="gaeb-preis-ts.html">Preise – Terminalserver</a>
413      <a href="gaeb-ueber.html">Preisliste</a>
414    </div>
415    <a href="gaeb-download.html">Download</a>
416    <a href="gaeb-ki-preisnavigator.html">GAEB-KI</a>
417    <button type="button" data-mobile-sub="m-wissen" aria-expanded="false">Wissen
418      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
419    </button>
420    <div class="mobile-sub" id="m-wissen">
421      <a href="gaeb-wissen.html"><strong>Übersicht: GAEB-Wissen</strong></a>
422      <a href="gaeb-datei-oeffnen.html">GAEB-Datei öffnen</a>
423      <a href="gaeb-in-excel-umwandeln.html">GAEB in Excel umwandeln</a>
424      <a href="pdf-in-gaeb-umwandeln.html">PDF in GAEB umwandeln</a>
425      <a href="gaeb-x83-datei.html">X83-Datei erklärt</a>
426      <a href="gaeb-x84-datei.html">X84-Datei erklärt</a>
427      <a href="gaeb-d83-d84-erklaert.html">D83 &amp; D84 erklärt</a>
428      <a href="gaeb-aufmass.html">Aufmaß im Bau (REB 23.003)</a>
429      <a href="gaeb-da11-datei.html">DA11 erklärt</a>
430      <a href="gaeb-x31-datei.html">GAEB X31 erklärt</a>
431      <a href="gaeb-datei.html">Was ist eine GAEB-Datei?</a>
432      <a href="gaeb-diff.html">GAEB-Formate im Vergleich</a>
433      <a href="gaeb-phasen.html">GAEB-Austauschphasen</a>
434    </div>
435    <button type="button" data-mobile-sub="m-service" aria-expanded="false">Service
436      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
437    </button>
438    <div class="mobile-sub" id="m-service">
439      <a href="gaeb-release-2025.html">Aktuelle Updates 2025</a>
440      <a href="gaeb-release-2023.html">Download älterer Versionen</a>
441      <a href="gaeb-system.html">Systemvoraussetzungen</a>
442      <a href="gaeb-faq.html">FAQ</a>
443      <a href="gaeb-schulung.html">Schulung</a>
444      <a href="gaeb-excel-konverter.html">Produktbeschreibungen (GAEB-Format)</a>
445      <a href="gaeb-presse.html">Pressemitteilungen</a>
446    </div>
447    <a href="gaeb-bestellung.html" class="btn btn-primary mt-4" style="justify-content:center">Jetzt kaufen</a>
448  </nav>
449</aside>
450
451<!-- ============ MAIN ============ -->
452<main id="main">
453<section class="section section-tight">
454  <div class="container">
455    <h1>Sitemap – Alle Seiten von gaeb-online.de</h1>
456    <p class="lead">Eine Übersicht aller Seiten unserer Website nach Themen sortiert.</p>
457  </div>
458</section>
459
460<section class="section section-tight">
461  <div class="container">
462    <div class="sitemap-grid">
463
464      <article class="sitemap-card">
465        <h3>Produkte</h3>
466        <ul class="sitemap-list">
467    <li><a href="gaeb-aktuell.html">GAEB-Online 2025 – Einzelplatz</a></li>
468    <li><a href="gaeb-online-usb.html">GAEB-Online 2025 – USB</a></li>
469    <li><a href="gaeb-preis-ts.html">GAEB-Online 2025 – Terminalserver</a></li>
470    <li><a href="gaeb-excel-aufmass.html">Excel-Aufmaß für GAEB-Online 2025</a></li>
471    <li>
471<a href="gaeb-excel-xrechnung.html">XRechnung für GAEB-Online 2025</a></li>
472    <li><a href="gaeb-efb-221-223.html">Excel-EFB 221/223 (Urkalkulation)</a></li>
473    <li><a href="gaeb-efb-221-rueck.html">Excel-EFB Rückwärtskalkulation</a></li>
474    <li><a href="gaeb-efb-ekt-detail.html">Excel EFB-EKT-Detail</a></li>
475    <li><a href="gaeb-x31-generator.html">GAEB-X31-Generator</a></li>
476    <li><a href="gaeb-wissen.html">GAEB-Wissen (Ratgeber-Übersicht)</a></li>
477    <li><a href="gaeb-excel-xrechnung.html">Excel-Vorlage für XRechnung</a></li>
478    <li><a href="gaeb-excel-lv-generator.html">Excel-LV-Generator (kostenlos)</a></li>
479    <li><a href="gaeb-ki-preisnavigator.html">KI-PreisNavigator</a></li>
480    <li><a href="gaeb-schulung.html">Schulung per Video-Training</a></li>
481    <li><a href="gaeb-ueber.html">Produktübersicht</a></li>
482    <li><a href="gaeb-produktbeschreibung.html">Produktbeschreibung</a></li>
483    <li><a href="gaeb-flyer.html">Produktflyer als PDF</a></li>
484        </ul>
485      </article>
486
487      <article class="sitemap-card">
488        <h3>Funktionen</h3>
489        <ul class="sitemap-list">
490    <li><a href="gaeb-neu.html">Neuerungen anzeigen</a></li>
491    <li><a href="gaeb-funktionen.html">Funktions­übersicht</a></li>
492    <li><a href="gaeb-excel-gaeb.html">Excel in GAEB konvertieren</a></li>
493    <li><a href="gaeb-excel.html">Export in Excel</a></li>
494    <li><a href="gaeb-excel-kalk.html">Kalkulation in Excel</a></li>
495    <li><a href="gaeb-ekt.html">Einzelkosten der Teilleistungen</a></li>
496    <li><a href="gaeb-excel-vorlagen.html">Freie Excel-Vorlagen</a></li>
497    <li><a href="gaeb-open.html">Export in OpenOffice</a></li>
498    <li><a href="gaeb-word.html">Export in Word</a></li>
499    <li><a href="gaeb-signatur.html">Angebote digital signieren</a></li>
500    <li><a href="gaeb-da84.html">Export DA84</a></li>
501    <li><a href="gaeb-imp-excel.html">Import Preise aus Excel</a></li>
502    <li><a href="gaeb-imp-da84.html">Import Preise aus DA84</a></li>
503    <li><a href="gaeb-imp-x94.html">Import Preise aus X94</a></li>
504    <li><a href="gaeb-excel-aufmass.html">Excel-Aufmaß XRechnung</a></li>
505    <li><a href="gaeb-excel-xrechnung.html">XRechnung</a></li>
506    <li><a href="gaeb-phasen.html">GAEB-Austauschphasen</a></li>
507    <li><a href="gaeb-datei.html">Was ist eine GAEB-Datei</a></li>
508    <li><a href="gaeb-konvertierung.html">Konverter für GAEB</a></li>
509    <li><a href="gaeb-xml.html">GAEB XML</a></li>
510    <li><a href="gaeb-diff.html">Unterschiede GAEB-Formate</a></li>
511        </ul>
512      </article>
513
514      <article class="sitemap-card">
515        <h3>Preise & Kaufen</h3>
516        <ul class="sitemap-list">
517    <li><a href="gaeb-preis.html">Preise – Einzelplatz</a></li>
518    <li><a href="gaeb-preis-usb.html">Preise – USB</a></li>
519    <li><a href="gaeb-preis-ts.html">Preise – Terminalserver</a></li>
520    <li><a href="gaeb-bestellung.html">Jetzt kaufen (Übersicht)</a></li>
521    <li><a href="gaeb-kaufen-direkt.html">Direkt online kaufen (Einzelplatz / USB)</a></li>
522    <li><a href="gaeb-kaufen-direkt-ts.html">Direkt online kaufen (Terminalserver)</a></li>
523    <li><a href="gaeb-kaufen-ki.html">KI-PreisNavigator testen oder buchen</a></li>
524    <li><a href="gaeb-kaufen.html">Per Rechnung / Vorkasse bestellen</a></li>
525    <li><a href="gaeb-order.html">Bestellformular</a></li>
526    <li><a href="gaeb-lieferzeit.html">Lieferzeit der Software</a></li>
527        </ul>
528      </article>
529
530      <article class="sitemap-card">
531        <h3>Wissen &amp; Ratgeber</h3>
532        <ul class="sitemap-list">
533    <li><a href="gaeb-wissen.html">GAEB-Wissen (Übersicht)</a></li>
534    <li><a href="gaeb-in-excel-umwandeln.html">GAEB-Datei in Excel umwandeln</a></li>
535    <li><a href="pdf-in-gaeb-umwandeln.html">PDF in GAEB umwandeln</a></li>
536    <li><a href="gaeb-datei-oeffnen.html">GAEB-Datei öffnen</a></li>
537    <li><a href="gaeb-x83-datei.html">X83-Datei erklärt</a></li>
538    <li><a href="gaeb-x84-datei.html">X84-Datei erklärt</a></li>
539    <li><a href="gaeb-d83-d84-erklaert.html">D83 &amp; D84 (GAEB 90) erklärt</a></li>
540    <li><a href="gaeb-excel-aufmass.html">Aufmaß im Bau erklärt (REB 23.003)</a></li>
541    <li><a href="gaeb-da11-datei.html">DA11 erklärt</a></li>
542    <li><a href="gaeb-x31-datei.html">GAEB X31 erklärt</a></li>
543    <li><a href="gaeb-datei.html">Was ist eine GAEB-Datei?</a></li>
544    <li><a href="gaeb-diff.html">GAEB-Formate im Vergleich</a></li>
545        </ul>
546      </article>
547
548      <article class="sitemap-card">
549        <h3>Testen & Download</h3>
550        <ul class="sitemap-list">
551    <li><a href="gaeb-download.html">Testversion herunterladen</a></li>
552    <li><a href="gaeb-load.html">Download-Übersicht</a></li>
553    <li><a href="gaeb-system.html">Systemvoraussetzungen</a></li>
554    <li><a href="gaeb-save.html">Signierter Download</a></li>
555    <li><a href="gaeb-macos.html">GAEB-Online auf Mac</a></li>
556        </ul>
557      </article>
558
559      <article class="sitemap-card">
560        <h3>Service & Updates</h3>
561        <ul class="sitemap-list">
562    <li><a href="gaeb-release-2025.html">Updates Version 2025</a></li>
563    <li><a href="gaeb-release-2023.html">Updates Version 2023</a></li>
564    <li><a href="gaeb-release-2021.html">Updates Version 2021</a></li>
565    <li><a href="gaeb-release-2018.html">Updates Version 2018</a></li>
566    <li><a href="gaeb-release-2016.html">Updates Version 2016</a></li>
567    <li><a href="gaeb-release-2014.html">Updates Version 2014</a></li>
568    <li><a href="gaeb-versionen.html">Alle Versionen</a></li>
569    <li><a href="gaeb-faq.html">FAQ – Fragen & Antworten</a></li>
570    <li><a href="gaeb-meinungen.html">
570Kunden­meinungen</a></li>
571    <li><a href="gaeb-excel-konverter.html">Produkt­beschreibungen im GAEB-Format</a></li>
572    <li><a href="gaeb-presse.html">Pressemitteilungen</a></li>
573        </ul>
574      </article>
575
576      <article class="sitemap-card">
577        <h3>Rechtliches</h3>
578        <ul class="sitemap-list">
579    <li><a href="gaeb-impr.html">Impressum</a></li>
580    <li><a href="gaeb-agb.html">AGB</a></li>
581    <li><a href="gaeb-data.html">Datenschutz</a></li>
582    <li><a href="gaeb-dsgvo-einw.html">DSGVO-Einwilligung</a></li>
583        </ul>
584      </article>
585
586      <article class="sitemap-card">
587        <h3>English Information</h3>
588        <ul class="sitemap-list">
589    <li><a href="index-en.html">Main page</a></li>
590    <li><a href="gaeb-2025-en.html">New in GAEB-Online 2025</a></li>
591    <li><a href="gaeb-da84-en.html">Export DA84</a></li>
592    <li><a href="gaeb-excel-gaeb-en.html">Convert Excel to GAEB</a></li>
593    <li><a href="gaeb-ueber-en.html">Product overview</a></li>
594    <li><a href="gaeb-diff-en.html">Differences between GAEB formats</a></li>
595    <li><a href="gaeb-us.html">US information</a></li>
596        </ul>
597      </article>
598
599    </div>
600  </div>
601</section>
602
603<!-- Fußzeile -->
604</main>
605
606<!-- ============ FOOTER ============ -->
607<footer class="site-footer" role="contentinfo">
608  <div class="container">
609    <div class="footer-grid">
610
611      <div class="footer-col">
612        <h2>Blog &amp; Presse</h2>
613        <ul>
614          <li><a href="https://blog.gaeb-online.de/ki-kalkulation-gaeb-daten-im-unternehmen/" data-external>KI: Ihre Daten bleiben im Unternehmen</a></li>
615          <li><a href="https://blog.gaeb-online.de/" data-external>Unterschied EFB-Kalkulation und Rückwärtskalkulation</a></li>
616          <li><a href="https://blog.gaeb-online.de/" data-external>GAEB-Online 2025 vereinfacht die Angebotsbearbeitung mit Excel</a></li>
617          <li><a href="gaeb-presse.html">Alle Pressemitteilungen</a></li>
618        </ul>
619      </div>
620
621      <div class="footer-col footer-contact">
622        <h2>Kontakt</h2>
623        <address>
624          <strong>gaeb-online, Ulrike Braun</strong><br>
625          Kraichgaustraße 15<br>
626          75045 Walzbachtal/Jö<br>
627          Deutschland<br><br>
628          Telefon: <a href="tel:+4972033346506">+49 7203 346506</a><br>
629          E-Mail: <a href="mailto:[email protected]">[email protected]</a>
630        </address>
631      </div>
632
633      <div class="footer-col">
634        <h2>Folgen Sie uns</h2>
635        <div class="footer-social">
636          <a href="https://blog.gaeb-online.de/" data-external aria-label="gaeb-online Blog" title="Blog">
637            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
638          </a>
639          <a href="https://www.youtube.com/@gaeb-online" data-external aria-label="YouTube-Kanal" title="YouTube">
640            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19.08C5.12 19.54 12 19.54 12 19.54s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.33 29 29 0 0 0-.46-5.33z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"/></svg>
641          </a>
642          <a href="mailto:[email protected]" aria-label="E-Mail" title="E-Mail">
643            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg>
644          </a>
645        </div>
646        <div class="mt-6">
647          <h2>Ausgewählte Produkte</h2>
648          <ul>
649            <li><a href="gaeb-aktuell.html">GAEB-Online 2025</a></li>
650            <li><a href="gaeb-ki-preisnavigator.html">GAEB-KI-PreisNavigator</a></li>
651            <li><a href="gaeb-efb-221-223.html">Excel-EFB 221/223</a></li>
652            <li><a href="gaeb-excel-aufmass.html">Excel-Aufmaß XRechnung</a></li>
653          </ul>
654          <p class="footer-prod-version footer-version" hidden>Aktuelle Programmversion: <a href="gaeb-release-2025.html" data-site-version title="Zu den Releasenotes"></a></p>
655        </div>
656      </div>
657
658    </div>
659
660    <div class="footer-bottom">
661      <div class="footer-copy">
662        <img src="img/logo_footer.webp" alt="gaeb-online Logo" width="32" height="32" loading="lazy" decoding="async">
663        <span>© 2014-<span data-year>2026</span> gaeb-online, Ulrike Braun. MS-Excel® und MS-Word® sind eingetragene Warenzeichen der Microsoft Corporation. Alle Markennamen innerhalb dieser Website gehören ihren legitimen Besitzern. <span class="footer-version" hidden> · Aktuelle Version: <a href="gaeb-release-2025.html" data-site-version title="Zu den Releasenotes"></a></span></span>
664      </div>
665      <div class="footer-legal">
666        <a href="gaeb-presse.html">Presse</a>
667        <a href="gaeb-faq.html">FAQ</a>
668        <a href="gaeb-impr.html">Impressum</a>
669        <a href="gaeb-agb.html">AGB</a>
670        <a href="gaeb-data.html">Datenschutz</a>
671      </div>
672    </div>
673
674    <div class="footer-disclaimer">
675      Dieses Angebot richtet sich ausschließlich an Unternehmer, juristische Personen des öffentlichen Rechts und öffentlich-rechtliche Sondervermögen.
676      Alle angegebenen Preise verstehen sich als Netto-Preise, zuzüglich der derzeit gültigen gesetzlichen Mehrwertsteuer.
677      Unsere Preise sind <strong>Einmalkaufpreise</strong> ohne laufende Gebühren. Der KI-PreisNavigator bildet eine Ausnahme und wird als Abonnement angeboten.
678    </div>
679
680  </div>
681</footer>
682
683<!-- ============ BACK TO TOP ============ -->
684<button class="to-top" type="button" data-to-top aria-label="Nach oben scrollen">
685  <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="18 15 12 9 6 15"/></svg>
686</button>
687
688<!-- ============ JS ============ -->
689<script src="assets/app.js" defer></script>
689
690
691<!-- ============ APPLE-USER-HINWEIS-BANNER ============
692     Schwebender Hinweis unten links für Mac/iOS-User: GAEB-Online 2025
693     läuft unter Windows; Hinweis auf Terminalserver/Parallels.
694     Position: unten links (Produktberater-/Chat-Pill ist unten rechts).
695     Auf Mobile zusätzlicher Abstand nach unten wegen pf-mobile-bar.
696     Dismiss-Klick wird in localStorage gemerkt – kommt nicht wieder. -->
697<style>
698  #apple-os-banner {
699    position: fixed;
700    left: 20px;
701    bottom: 20px;
702    z-index: 9995; /* unter dem pf-combo (max int), aber über normalem Content */
703    max-width: 320px;
704    padding: 14px 38px 14px 16px;
705    background: var(--c-surface, #fff);
706    border: 1px solid var(--c-border, #e0e0e0);
707    border-left: 4px solid var(--c-brand, #0958b3);
708    border-radius: 8px;
709    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
710    font: 13.5px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
711    color: var(--c-ink-2, #555);
712  }
713  #apple-os-banner p { margin: 0; }
714  #apple-os-banner strong { color: var(--c-ink, #1f1f1f); display: block; margin-bottom: 4px; font-size: 14px; }
715  #apple-os-banner a { color: var(--c-brand, #0958b3); font-weight: 600; text-decoration: none; white-space: nowrap; }
716  #apple-os-banner a:hover { text-decoration: underline; }
717  #apple-os-banner .apple-banner-close {
718    position: absolute;
719    top: 6px;
720    right: 8px;
721    background: transparent;
722    border: 0;
723    font-size: 22px;
724    line-height: 1;
725    cursor: pointer;
726    color: var(--c-ink-3, #999);
727    padding: 4px 8px;
728    border-radius: 4px;
729  }
730  #apple-os-banner .apple-banner-close:hover { color: var(--c-ink, #1f1f1f); background: var(--c-bg-2, #f5f5f5); }
731  @media (max-width: 640px) {
732    #apple-os-banner {
733      left: 12px;
734      right: 12px;
735      max-width: none;
736      bottom: 100px; /* über der pf-mobile-bar */
737    }
738  }
739</style>
740<div id="apple-os-banner" hidden role="region" aria-label="Hinweis für Mac- und iOS-Nutzer">
741  <button type="button" class="apple-banner-close" aria-label="Hinweis schließen">&times;</button>
742  <p>
743    GAEB-Online 2025 läuft unter Windows. Hinweise zur Nutzung auf macOS finden Sie <a href="gaeb-macos.html">hier</a>.
744  </p>
745</div>
746<script>
747(function() {
748  try {
749    if (localStorage.getItem('appleOsBannerDismissed') === '1') return;
750  } catch (e) {}
751  var ua = navigator.userAgent || '';
752  var isMac    = /Macintosh|Mac OS X/i.test(ua);
753  var isIOS    = /iPhone|iPad|iPod/i.test(ua);
754  var isIPadOS = /Macintosh/.test(ua) && (navigator.maxTouchPoints || 0) > 1;
755  if (!(isMac || isIOS || isIPadOS)) return;
756  var banner = document.getElementById('apple-os-banner');
757  if (!banner) return;
758  banner.removeAttribute('hidden');
759  function dismiss() {
760    banner.style.display = 'none';
761    try { localStorage.setItem('appleOsBannerDismissed', '1'); } catch (e) {}
762  }
763  var btn = banner.querySelector('.apple-banner-close');
764  if (btn) btn.addEventListener('click', dismiss);
765  // Auch wenn der Nutzer den Link klickt: Banner als gelesen markieren —
766  // beim Zurück-Navigieren erscheint er dann nicht wieder.
767  var lnk = banner.querySelector('a');
768  if (lnk) lnk.addEventListener('click', dismiss);
769})();
770</script>
770
771
772<!-- ============ FLOATING-PILL: PRODUKTBERATER ============
773     Schwebender Button unten rechts, sichtbar auf Desktop UND Mobilgeraeten.
774     Wonderchat-Bubble bleibt daran angrenzend als eigenes Element sichtbar
775     (CORS verhindert programmatisches Oeffnen von Wonderchat mit einem Klick). -->
776<style>
777  .pf-combo {
778    position: fixed;
779    right: 20px;
780    bottom: 20px;
781    z-index: 2147483647; /* immer ueber Wonderchat / sonstigen Overlays */
782    pointer-events: auto;
783    display: flex;
784    align-items: stretch;
785    background: var(--c-surface, #fff);
786    border: 1px solid var(--c-border, #e0e0e0);
787    border-radius: 999px;
788    box-shadow: 0 14px 36px rgba(0,0,0,0.22), 0 3px 10px rgba(0,0,0,0.10);
789    overflow: hidden;
790    font: 600 16px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
791    color: var(--c-ink, #1f1f1f);
792  }
793  .pf-combo-btn {
794    display: inline-flex;
795    align-items: center;
796    gap: 10px;
797    padding: 16px 24px;
798    background: transparent;
799    border: 0;
800    color: inherit;
801    cursor: pointer;
802    white-space: nowrap;
803    transition: background .15s ease, color .15s ease;
804  }
805  .pf-combo-btn:hover,
806  .pf-combo-btn:focus-visible {
807    background: rgba(17,104,166,0.09);
808    color: var(--c-primary, #1168a6);
809    outline: none;
810  }
811  .pf-combo-btn svg {
812    width: 26px; height: 26px;
813    color: var(--c-primary, #1168a6);
814    flex: 0 0 26px;
815  }
816  .pf-combo-sep {
817    width: 1px;
818    background: var(--c-border, #e0e0e0);
819    align-self: stretch;
820    flex: 0 0 1px;
821  }
822  .pf-combo-close {
823    display: inline-flex;
824    align-items: center; justify-content: center;
825    width: 32px;
826    background: transparent;
827    border: 0;
828    color: var(--c-ink-3, #888);
829    cursor: pointer;
830    font-size: 16px;
831    line-height: 1;
832    transition: background .15s ease, color .15s ease;
833  }
834  .pf-combo-close:hover,
835  .pf-combo-close:focus-visible {
836    background: rgba(0,0,0,0.06);
837    color: var(--c-ink, #111);
838    outline: none;
839  }
840  html[data-theme="dark"] .pf-combo-close { color: #a8a8a8; }
841  html[data-theme="dark"] .pf-combo-close:hover,
842  html[data-theme="dark"] .pf-combo-close:focus-visible {
843    background: rgba(255,255,255,0.08);
844    color: #f0f0f0;
845  }
846  /* Eingeklappt: nur das Kompass-Icon als kleiner Rand-Tab */
847  .pf-combo.is-collapsed .pf-combo-btn span,
848  .pf-combo.is-collapsed .pf-combo-sep,
849  .pf-combo.is-collapsed .pf-combo-close { display: none; }
850  .pf-combo.is-collapsed .pf-combo-btn { padding: 14px; }
851  /* Dark-Mode */
852  html[data-theme="dark"] .pf-combo {
853    background: #1f2937;
854    border-color: rgba(255,255,255,0.12);
855    color: #f0f0f0;
856  }
857  html[data-theme="dark"] .pf-combo-btn:hover,
858  html[data-theme="dark"] .pf-combo-btn:focus-visible {
859    background: rgba(90,170,255,0.15);
860    color: #5aa7ff;
861  }
862  html[data-theme="dark"] .pf-combo-btn svg { color: #5aa7ff; }
863  html[data-theme="dark"] .pf-combo-sep { background: rgba(255,255,255,0.12); }
864  /* Kleine Screens: kompakter, nur Icons */
865  @media (max-width: 480px) {
866    .pf-combo { right: 12px; }
867    .pf-combo-btn { padding: 16px 18px; }
868    .pf-combo-btn span { display: none; }
869  }
870  @media print { .pf-combo { display: none !important; } }
871
872  /* ---------- Mobile Toolbox (nur ≤ 640 px) ----------
873     Vollbreite Leiste am unteren Rand mit ZWEI gleich grossen Pill-
874     Buttons: links Produktberater, rechts Chat. Der Chat-Button triggert
875     per JS einen Klick auf den nativen Wonderchat-Launcher. Die native
876     Wonderchat-Bubble wird auf Mobilgeraeten versteckt (visibility:hidden),
877     ihre aufklappende iframe-Oberflaeche bleibt aber sichtbar
878     (visibility:visible Override unten). */
879  .pf-mobile-bar { display: none; }
880  @media (max-width: 640px) {
881    .pf-combo { display: none !important; }
882    .to-top   { display: none !important; }
883    .pf-mobile-bar {
884      position: fixed;
885      left: 0; right: 0; bottom: 0;
886      z-index: 9996;
887      display: flex;
888      align-items: stretch;
889      gap: 10px;
890      padding: 12px 14px;
891      padding-bottom: calc(12px + env(safe-area-inset-bottom));
892      background: var(--c-surface, #ffffff);
893      border-top: 1px solid var(--c-border, #e0e0e0);
894      border-radius: 20px 20px 0 0;
895      box-shadow: 0 -8px 24px rgba(0,0,0,0.12);
896      font: 600 14px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
897      color: var(--c-ink, #1f1f1f);
898      box-sizing: border-box;
899    }
900    .pf-mobile-bar .pf-mobile-btn {
901      flex: 1 1 0;
902      min-width: 0;
903      display: inline-flex;
904      align-items: center;
905      justify-content: center;
906      gap: 8px;
907      padding: 14px 12px;
908      background: var(--c-primary, #1168a6);
909      color: #fff;
910      border: 0;
911      border-radius: 999px;
912      cursor: pointer;
913      font: inherit;
914      white-space: nowrap;
915      -webkit-tap-highlight-color: rgba(0,0,0,0.15);
916    }
917    .pf-mobile-bar .pf-mobile-btn:active { opacity: 0.85; }
918    .pf-mobile-bar .pf-mobile-btn svg {
919      width: 18px; height: 18px;
920      color: #fff;
921      flex: 0 0 18px;
922    }
923    html[data-theme="dark"] .pf-mobile-bar {
924      background: #1f2937;
925      border-color: rgba(255,255,255,0.12);
926      color: #f0f0f0;
927    }
928    /* Seiten brauchen unten Platz, damit Inhalte nicht hinter der Leiste verschwinden */
929    body { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
930  }
931  @media print { .pf-mobile-bar { display: none !important; } }
932
933  /* Sicherheitsnetz: wenn unser eigener Toggle den Chat schliessen will,
934     aber die Wonderchat-SDK toggleChat(false) ignoriert, blenden wir das
935     Wonderchat-iframe und seine bekannten Container per CSS aus. */
936  body.pf-wc-closed iframe[src*="wonderchat"],
937  body.pf-wc-closed iframe[src*="app.wonderchat.io"],
938  body.pf-wc-closed iframe[id*="wonderchat" i],
939  body.pf-wc-closed iframe[name*="wonderchat" i],
940  body.pf-wc-closed iframe[title*="wonderchat" i],
941  body.pf-wc-closed div[id^="wonderchat"],
942  body.pf-wc-closed div[id*="wonderchat-window"],
943  body.pf-wc-closed div[id*="wonderchat-frame"],
944  body.pf-wc-closed div[class*="wonderchat" i] {
945    display: none !important;
946    visibility: hidden !important;
947    pointer-events: none !important;
948  }
949  /* Mobile-Toolbox bleibt natuerlich klickbar */
950  .pf-mobile-bar { z-index: 2147483647; pointer-events: auto; }
951</style>
952<script>
953  (function () {
954    var lang = (document.documentElement.getAttribute('lang') || 'de').toLowerCase();
955    if (lang.indexOf('de') !== 0) return; // nur DE
956    if (typeof window === 'undefined') return;
957
958    function build() {
959      if (document.getElementById('pfCombo')) return;
960      document.body.classList.add('pf-combo-active');
961
962      var el = document.createElement('div');
963      el.id = 'pfCombo';
964      el.className = 'pf-combo';
965      el.setAttribute('role', 'group');
966      el.setAttribute('aria-label', 'Produktberater');
967      el.innerHTML =
968        '<button type="button" class="pf-combo-btn" id="pfComboAdvisor" aria-haspopup="dialog" title="Produktberater starten">' +
969          '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">' +
970            '<circle cx="12" cy="12" r="10"/>' +
971            '<polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/>' +
972          '</svg>' +
973          '<span>Produktberater</span>' +
974        '</button>' +
975        '<span class="pf-combo-sep" aria-hidden="true"></span>' +
976        '<button type="button" class="pf-combo-btn" id="pfComboChat" aria-haspopup="dialog" title="Chat starten">' +
977          '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">' +
978            '<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z"/>' +
979          '</svg>' +
980          '<span>Sie haben eine Frage?</span>' +
981        '</button>' +
982        '<span class="pf-combo-sep" aria-hidden="true"></span>' +
983        '<button type="button" class="pf-combo-close" id="pfComboClose" aria-label="Label ausblenden" title="Einklappen">&#x2715;</button>';
984      document.body.appendChild(el);
985
986      // Zustand aus sessionStorage wiederherstellen (eingeklappt oder voll)
987      try {
988        if (sessionStorage.getItem('pfComboCollapsed') === '1') {
989          el.classList.add('is-collapsed');
990        }
991      } catch (e) {}
992
993      document.getElementById('pfComboAdvisor').addEventListener('click', function () {
994        if (typeof window.pfOpen === 'function') window.pfOpen();
995      });
996      document.getElementById('pfComboChat').addEventListener('click', function () {
997        openWonderchatWidget();
998      });
999      document.getElementById('pfComboClose').addEventListener('click', function (ev) {
1000        ev.stopPropagation();
1001        el.classList.add('is-collapsed');
1002        try { sessionStorage.setItem('pfComboCollapsed', '1'); } catch (e) {}
1003      });
1004
1005      // Mobile-Toolbox zusaetzlich bauen (CSS blendet sie >640px wieder aus).
1006      // Zwei gleich grosse Pill-Buttons: Produktberater + Chat. Der Chat-
1007      // Button triggert programmatisch die native Wonderchat-Bubble, die
1008      // per CSS auf Mobilgeraeten versteckt ist.
1009      if (!document.getElementById('pfMobileBar')) {
1010        var bar = document.createElement('div');
1011        bar.id = 'pfMobileBar';
1012        bar.className = 'pf-mobile-bar';
1013        bar.setAttribute('role', 'group');
1014        bar.setAttribute('aria-label', 'Produktberater und Chat');
1015        bar.innerHTML =
1016          '<button type="button" class="pf-mobile-btn" id="pfMobileAdvisor" aria-haspopup="dialog" title="Produktberater starten">' +
1017            '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">' +
1018              '<circle cx="12" cy="12" r="10"/>' +
1019              '<polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/>' +
1020            '</svg>' +
1021            '<span>Produktberater</span>' +
1022          '</button>' +
1023          '<button type="button" class="pf-mobile-btn" id="pfMobileChat" aria-haspopup="dialog" title="Chat starten">' +
1024            '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">' +
1025              '<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z"/>' +
1026            '</svg>' +
1027            '<span>Chat</span>' +
1028          '</button>';
1029        document.body.appendChild(bar);
1030        document.getElementById('pfMobileAdvisor').addEventListener('click', function () {
1031          if (typeof window.pfOpen === 'function') window.pfOpen();
1032        });
1033        document.getElementById('pfMobileChat').addEventListener('click', function () {
1034          openWonderchatWidget();
1035        });
1036      }
1037    }
1038
1039    // ---------- Wonderchat-Integration ----------
1040    // Native Bubble ist via data-hidden=true (siehe assets/tracking.js)
1041    // komplett ausgeblendet. Chat wird nur ueber unsere eigenen Buttons
1042    // gesteuert. Da der Wonderchat-SDK keinen verlaesslichen Auto-Toggle
1043    // ohne Argument hat, tracken wir den Status selbst: erstes Mal true
1044    // (oeffnen), zweites Mal false (schliessen), usw.
1045    // Das Wonderchat-Panel selbst hat kein eigenes X – die Pille ist als
1046    // bottom/right positioniert und liegt damit unterhalb des Chat-Panels
1047    // und bleibt klickbar.
1048    // Da das Widget lazy geladen wird (tracking.js nach 1. Interaktion oder
1049    // 7s), kann window.wonderchat beim ersten Klick noch nicht da sein —
1050    // dann kurz nachpollen.
1051    window.__pfChatOpen = false;
1052    function openWonderchatWidget() {
1053      var triesLeft = 60; // ~6s Gnadenfrist
1054      (function tryToggle() {
1055        try {
1056          if (window.wonderchat && typeof window.wonderchat.toggleChat === 'function') {
1057            var nextState = !window.__pfChatOpen;
1058            console.log('[pf-chat] toggleChat(' + nextState + ') – war:', window.__pfChatOpen);
1059            window.wonderchat.toggleChat(nextState);
1060            if (nextState) {
1061              document.body.classList.remove('pf-wc-closed');
1062            } else {
1063              document.body.classList.add('pf-wc-closed');
1064            }
1065            window.__pfChatOpen = nextState;
1066            return;
1067          }
1068        } catch (e) {
1069          console.warn('[pf-chat] toggleChat-Fehler:', e);
1070        }
1071        if (--triesLeft > 0) setTimeout(tryToggle, 100);
1072        else {
1073          console.warn('[pf-chat] window.wonderchat ist nach 6s nicht verfuegbar');
1074          // Sichtbarer Fallback: Kontakt-Optionen einblenden
1075          alert('Der Chat konnte nicht geladen werden.\n\nBitte pruefen Sie einen aktiven Adblocker oder Tracking-Schutz und versuchen es erneut.\n\nAlternativ erreichen Sie uns unter:\[email protected]\n+49 7203 346506');
1076        }
1077      })();
1078    }
1079
1080    if (document.readyState === 'loading') {
1081      document.addEventListener('DOMContentLoaded', build);
1082    } else {
1083      build();
1084    }
1085  })();
1086</script>
1086
1087
1088<!-- ============ PRODUKTBERATER-MODAL (global) ============ -->
1089<div class="pf-backdrop" id="pfBackdrop" role="dialog" aria-modal="true" aria-labelledby="pfTitle">
1090  <div class="pf-modal">
1091    <div class="pf-head">
1092      <div class="pf-progress-wrap">
1093        <div class="pf-progress-label">Schritt <span id="pfStepNum">1</span> von 3</div>
1094        <div class="pf-progress-bar"><div class="pf-progress-fill" id="pfProgress" style="width:33%"></div></div>
1095      </div>
1096      <button type="button" class="pf-close" onclick="pfClose()" aria-label="Produktberater schließen">&#x2715;</button>
1097    </div>
1098    <div class="pf-body" id="pfBody" aria-live="polite"></div>
1099
1100    <!-- Checkout-Shell: wird im Schritt „Warenkorb & Bezahlung" eingeblendet.
1101         WICHTIG: Die FastSpring-SBL sucht beim Seitenstart EINMALIG nach
1102         #fsc-embedded-checkout-container. Der Container muss daher von Beginn
1103         an im DOM vorhanden sein, auch wenn er noch unsichtbar ist, sonst
1104         bleibt das Checkout-Fenster beim zweiten Öffnen leer. -->
1105    <div class="pf-checkout-shell" id="pfCheckoutShell" hidden>
1106      <div class="pf-checkout-head">
1107        <h2 id="pfCheckoutTitle">Ihre Bestellung &mdash; sicher bezahlen</h2>
1108        <p class="pf-sub" id="pfCheckoutSub">Folgende Produkte werden in den Warenkorb gelegt. Den Kauf wickeln wir über unseren Zahlungsdienstleister <strong>FastSpring</strong> ab.</p>
1109        <ul class="pf-checkout-items" id="pfCheckoutItems"></ul>
1110      </div>
1111      <div id="fsc-embedded-checkout-container" class="pf-checkout-frame"></div>
1112    </div>
1113
1114    <div class="pf-foot">
1115      <button type="button" class="pf-btn" id="pfBack" onclick="pfBack()" style="visibility:hidden">&larr; Zurück</button>
1116      <button type="button" class="pf-btn" onclick="pfClose()">Abbrechen</button>
1117    </div>
1118  </div>
1119</div>
1120
1121<!-- ============ EOL-DOWNLOAD-MODAL (global) ============
1122     Wird angezeigt, wenn Besucher auf Release-Seiten (2014/2016/2018/2021)
1123     ein abgekündigtes Setup herunterladen wollen.
1124     Die Logik steckt in assets/app.js → window.confirmDownloadOld(link). -->
1125<div class="eol-backdrop" id="eolBackdrop" role="dialog" aria-modal="true" aria-labelledby="eolTitle" aria-describedby="eolBody">
1126  <div class="eol-modal" role="document">
1127    <button type="button" class="eol-close" id="eolCloseX" aria-label="Dialog schließen">&#x2715;</button>
1128    <div class="eol-icon" aria-hidden="true">
1129      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1130        <path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z"/>
1131        <line x1="12" y1="9" x2="12" y2="13"/>
1132        <line x1="12" y1="17" x2="12.01" y2="17"/>
1133      </svg>
1134    </div>
1135    <h2 id="eolTitle">Achtung: Abgekündigte Version!</h2>
1136    <p id="eolBody" class="eol-text">Diese Version ist abgekündigt (EOL) und wird nicht mehr unterstützt. Möchten Sie diese trotzdem laden?</p>
1137    <div class="eol-ctas">
1138      <button type="button" class="btn btn-secondary" id="eolNo">Nein, abbrechen</button>
1139      <button type="button" class="btn btn-primary" id="eolYes">Ja, trotzdem laden</button>
1140    </div>
1141  </div>
1142</div>
1143
1144<!-- ============ DEMO-DOWNLOAD-MODAL (global) ============
1145     Wird angezeigt, wenn Besucher die 14-Tage-Demoversion Excel-Aufmaß XRechnung laden.
1146     Die Logik steckt in assets/app.js → window.confirmDemoDownload(link). -->
1147<div class="eol-backdrop" id="demoBackdrop" role="dialog" aria-modal="true" aria-labelledby="demoTitle" aria-describedby="demoBody">
1148  <div class="eol-modal" role="document">
1149    <button type="button" class="eol-close" id="demoCloseX" aria-label="Dialog schließen">&#x2715;</button>
1150    <div class="eol-icon" aria-hidden="true">
1151      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1152        <path d="M9 12l2 2 4-4"/>
1153        <circle cx="12" cy="12" r="10"/>
1154      </svg>
1155    </div>
1156    <h2 id="demoTitle">Digital signierte Demoversion</h2>
1157    <p id="demoBody" class="eol-text">Diese Demoversion ist von uns <strong>digital signiert</strong> und frei von Schadsoftware.<br><br>Sollte Ihr Virenscanner sie fälschlicherweise als Bedrohung melden, legen Sie bitte eine Ausnahme im Virenscanner an &ndash; oder verzichten Sie auf den Download.</p>
1158    <div class="eol-ctas">
1159      <button type="button" class="btn btn-secondary" id="demoNo">Abbrechen</button>
1160      <button type="button" class="btn btn-primary" id="demoYes">Download starten</button>
1161    </div>
1162  </div>
1163</div>
1164
1165<!-- ============ KAUF-ZWISCHENDIALOG (Systemumstellung 20.04.2026 – 23.05.2026) ============
1166     Wird vor dem Klick auf „Kauf auf Rechnung" (→ gaeb-kaufen.html) eingeblendet.
1167     Logik in assets/app.js → window.confirmKauf(link). Außerhalb des Zeitraums
1168     wird der Dialog übersprungen und der Link folgt direkt dem href. -->
1169<div class="kauf-backdrop" id="kaufBackdrop" role="dialog" aria-modal="true" aria-labelledby="kaufTitle">
1170  <div class="kauf-modal" role="document">
1171    <button type="button" class="kauf-close" id="kaufCloseX" aria-label="Dialog schließen">&#x2715;</button>
1172
1173    <!-- Ansicht 1: Hinweis + Auswahl Rechnung / FastSpring -->
1174    <div class="kauf-view" id="kaufViewNotice">
1175      <div class="kauf-icon" aria-hidden="true">
1176        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1177          <circle cx="12" cy="12" r="10"/>
1178          <line x1="12" y1="8" x2="12" y2="12"/>
1179          <line x1="12" y1="16" x2="12.01" y2="16"/>
1180        </svg>
1181      </div>
1182      <h2 id="kaufTitle">Hinweis zur Zahlungsabwicklung</h2>
1183      <p class="kauf-sub"><strong>Gültig vom 23.04.2026 bis 23.05.2026</strong></p>
1184      <p class="kauf-text">Aufgrund einer Systemumstellung können Zahlungen (Rechnung / Vorkasse) nur täglich <strong>nach&nbsp;20&nbsp;Uhr</strong> geprüft und bearbeitet werden. Wenn Sie Ihre Lizenzen schneller benötigen, nutzen Sie bitte den Kauf über unseren Partner <strong>FastSpring</strong>.</p>
1185      <div class="kauf-ctas">
1186        <button type="button" class="btn btn-secondary" id="kaufGoInvoice">Weiter per Rechnung</button>
1187        <button type="button" class="btn btn-primary" id="kaufGoFs">Weiter zu FastSpring</button>
1188      </div>
1189    </div>
1190
1191    <!-- Ansicht 1b (nur KI-Test): Anzahl Arbeitsplätze abfragen -->
1192    <div class="kauf-view" id="kaufViewQty" hidden>
1193      <h2>Wie viele Arbeitsplätze möchten Sie testen?</h2>
1194      <p class="kauf-sub">Wählen Sie, für wie viele <strong>GAEB-Online&nbsp;2025 Arbeitsplätze</strong> Sie den KI-PreisNavigator testen oder buchen möchten. Sie können die Anzahl später jederzeit anpassen.</p>
1195      <div class="pf-qty-panel" role="group" aria-label="Anzahl Arbeitsplätze"
1196           style="display:flex;justify-content:center;align-items:center;gap:12px;margin:22px 0 8px;">
1197        <button type="button" id="kaufQtyMinus" class="pf-qty-btn" aria-label="Ein Arbeitsplatz weniger"
1198                style="width:48px;height:48px;font-size:22px;border-radius:8px;border:1px solid var(--c-border,#ccc);background:var(--c-surface,#fff);cursor:pointer;font-weight:600;">&minus;</button>
1199        <input type="number" id="kaufQty" class="pf-qty-input" min="1" max="99" step="1" value="1" inputmode="numeric" aria-label="Anzahl Arbeitsplätze"
1200               style="width:88px;height:48px;text-align:center;font-size:20px;font-weight:600;border-radius:8px;border:1px solid var(--c-border,#ccc);background:var(--c-surface,#fff);color:var(--c-text,#222);">
1201        <button type="button" id="kaufQtyPlus" class="pf-qty-btn" aria-label="Ein Arbeitsplatz mehr"
1202                style="width:48px;height:48px;font-size:22px;border-radius:8px;border:1px solid var(--c-border,#ccc);background:var(--c-surface,#fff);cursor:pointer;font-weight:600;">+</button>
1203      </div>
1204      <p class="kauf-sub" style="text-align:center;margin-top:0;font-size:13px;opacity:.75;">1 bis 99 Arbeitsplätze &middot; 25&nbsp;€ netto/Monat je Arbeitsplatz</p>
1205      <div class="kauf-ctas">
1206        <button type="button" class="btn btn-secondary" id="kaufQtyCancel">Abbrechen</button>
1207        <button type="button" class="btn btn-primary" id="kaufQtyGo">Weiter</button>
1208      </div>
1209    </div>
1210
1211    <!-- Ansicht 2: Bestätigung vor Weiterleitung zu FastSpring -->
1212    <div class="kauf-view" id="kaufViewConfirm" hidden>
1213      <h2>Bestätigung vor FastSpring</h2>
1214      <p class="kauf-sub">Vor der Weiterleitung zu unserem Zahlungsdienstleister <strong>FastSpring</strong> bestätigen Sie bitte:</p>
1215      <div class="pf-confirm-list">
1216        <label class="pf-confirm-item">
1217          <input type="checkbox" class="kauf-cb" data-key="unternehmer">
1218          <span>Mit dem Kauf bestätige ich, dass ich Unternehmer, juristische Person des öffentlichen Rechts oder öffentlich-rechtliches Sondervermögen bin.</span>
1219        </label>
1220        <label class="pf-confirm-item">
1221          <input type="checkbox" class="kauf-cb" data-key="agb-system">
1222          <span>Ich akzeptiere die <a href="gaeb-agb.html" target="_blank" rel="noopener">AGB</a> und habe die <a href="gaeb-system.html" target="_blank" rel="noopener">Systemvoraussetzungen</a> zur Kenntnis genommen.</span>
1223        </label>
1224        <!-- TS-Zusatz-Bestätigungen: werden von assets/app.js → confirmTsFastspring()
1225             per [hidden] eingeblendet, wenn der Direkt-Kauf auf gaeb-preis-ts.html
1226             über den Bestätigungsdialog läuft. -->
1227        <label class="pf-confirm-item kauf-ts-only" hidden>
1228          <input type="checkbox" class="kauf-cb kauf-cb-ts" data-key="ts-rds">
1229          <span>Ich bin mir bewusst, dass diese Ausführung des Programms ausschließlich auf einem <strong>Microsoft Windows Terminalserver</strong> mit den <strong>Microsoft Windows Remote Desktop Services (RDS)</strong> über <strong>RDP (Remote Desktop Protocol)</strong> verwendet werden kann. Diese Version ist nicht kompatibel mit einem herkömmlichen Windows Server.</span>
1230        </label>
1231        <label class="pf-confirm-item kauf-ts-only" hidden>
1232          <input type="checkbox" class="kauf-cb kauf-cb-ts" data-key="ts-umwandlung">
1233          <span>Ich nehme zur Kenntnis, dass die <strong>Umwandlung in Einzelplatzlizenzen</strong> &ndash; bei fehlendem Terminalserver &ndash; <strong>100&nbsp;EUR zzgl.&nbsp;MwSt.</strong> kostet und nur in der Anzahl der ursprünglich gekauften Nutzerlizenzen möglich ist.</span>
1234        </label>
1235        <!-- KI-PreisNavigator-Zusatz: DSGVO-Einwilligung in die Lizenzüberwachung
1236             (max. 1 Jahr, Widerruf jederzeit möglich). Wird von confirmKiTest() in
1237             assets/app.js per [hidden] eingeblendet. -->
1238        <label class="pf-confirm-item kauf-ki-only" hidden>
1239          <input type="checkbox" class="kauf-cb kauf-cb-ki" data-key="ki-dsgvo">
1240          <span>Ich willige gemäß Art.&nbsp;7 DSGVO in die Verarbeitung der in der <a href="gaeb-dsgvo-einw.html" target="_blank" rel="noopener">Einwilligungserklärung</a> angegebenen personenbezogenen Daten zur <strong>Lizenzüberwachung des KI-PreisNavigators</strong> für maximal ein Jahr ein. Der Widerruf dieser Einwilligung ist jederzeit mit Wirkung für die Zukunft möglich.</span>
1241        </label>
1242      </div>
1243      <div class="kauf-ctas">
1244        <button type="button" class="btn btn-secondary" id="kaufBack">&larr; Zurück</button>
1245        <button type="button" class="btn btn-primary" id="kaufConfirmGo" disabled>Weiter zu FastSpring</button>
1246      </div>
1247      <p class="kauf-fallback">Ohne Bestätigung beider Punkte ist keine Weiterleitung an FastSpring möglich.</p>
1248    </div>
1249  </div>
1250</div>
1251
1252<!-- Lazy-Load-Tracker (Cookie-Consent + Chat) — lädt erst nach 1. Interaktion -->
1253<script src="assets/tracking.js" defer></script>
1253
1254
1255<!-- FastSpring Store Builder Library (Popup-Checkout für Produktberater) -->
1256<!-- data-debug="true" schreibt FS-Diagnoseausgaben in die Konsole; nach Test entfernen -->
1257<script id="fsc-api"
1258        src="https://sbl.onfastspring.com/sbl/1.0.5/fastspring-builder.min.js"
1259        type="text/javascript"
1260        data-storefront="gaebonline.onfastspring.com/embedded-go"
1261        data-debug="true"
1262        data-error-callback="fsErrorCallback"
1263        defer></script>
vendor: 2 bytes, line 1263
1263
1264<script>
1265  // Wird von FastSpring-SBL bei Fehlern aufgerufen (z. B. ungültiger Produktpfad,
1266  // Netzwerkfehler beim Checkout, Service-Ausfall). Phase-1-Absicherung:
1267  // - Plausible-Event "cart-checkout-error" senden
1268  // - User-sichtbarer Toast einblenden mit Hinweis auf Alternativen
1269  window.fsErrorCallback = function (msg) {
1270    console.error('[FastSpring-Error]', msg);
1271    // Bot-Filter: Crawler/Preview-Tools können nicht kaufen, ihre 403er von
1272    // FastSpring sind reines Hintergrundrauschen. Komplett ignorieren — kein
1273    // Plausible-Event, kein Logfile-Eintrag.
1274    try {
1275      var ua = (navigator.userAgent || '').toLowerCase();
1276      if (/bot|crawl|spider|preview-tool|headlesschrome|pingdom|lighthouse|googleother|petal|bingpreview|chrome-lighthouse|gptbot|claude-?web|perplexity|yandex|baidu|duckduck|semrush|ahrefs|mj12bot|dotbot|seznambot|applebot|facebookexternalhit|twitterbot|whatsapp|telegrambot|slackbot|discordbot|yeti|naver|sogou|coccoc|360spider|qwantify|exabot|archive\.org_bot|crawler-jp|yahoo!\s*slurp|barkrowler|serpstatbot|linguee|opensiteexplorer/.test(ua)) {
1277        return;
1278      }
1279    } catch (e) {}
1280    // FastSpring-Noise filtern: leere/falsy Meldungen (z.B. 0) sind keine echten
1281    // Checkout-Fehler, sondern Init-Geräusch der SBL → nicht in Plausible-Goal
1282    // zählen, damit die Statistik aussagekräftig bleibt.
1283    // 403 = FastSpring-CDN blockt Datacenter-/Bot-IPs (sehen wir nur bei Scraper-
1284    // Schwärmen, nie bei echten Käufern) → ebenfalls Noise.
1285    // 204 = FastSpring-interner Init-Status (z.B. Order-Number ready bei Bots) →
1286    // taucht praktisch nur bei Crawlern auf, nie bei echten Kaufversuchen.
1287    var isNoise = (msg === 0 || msg === '0' || msg === '' || msg == null || msg === false
1288                || msg === 403 || msg === '403'
1289                || msg === 204 || msg === '204');
1290    // Diagnose-Anreicherung: Typ + stringifizierte msg
1291    var msgType = (msg === null) ? 'null' : typeof msg;
1292    var msgStr;
1293    try {
1294      if (msg === null || msg === undefined) msgStr = '[' + msgType + ']';
1295      else if (typeof msg === 'object') msgStr = JSON.stringify(msg);
1296      else msgStr = String(msg);
1297    } catch (e) { msgStr = '[unstringifiable]'; }
1298    if (msgStr && msgStr.length > 500) msgStr = msgStr.slice(0, 500) + '…';
1299    // SBL-Ready-Status: hilft zu unterscheiden, ob's beim Init oder beim
1300    // aktiven Checkout knallt
1301    var sblReady = !!(window.fastspring && window.fastspring.builder
1302                      && typeof window.fastspring.builder.push === 'function');
1303    // Bei Noise: weder Plausible noch Logger – sauberer Log = sofortiges Signal
1304    // bei echten Problemen.
1305    if (isNoise) return;
1306    try {
1307      if (window.plausible) {
1308        window.plausible('cart-checkout-error', { props: { msg: msgStr.slice(0, 120), type: msgType } });
1309      }
1310    } catch (e) {}
1311    try {
1312      var src = 'fs:' + msgType + (sblReady ? ':ready' : ':init');
1313      var body = 'msg=' + encodeURIComponent(msgStr || '[empty]')
1314               + '&page=' + encodeURIComponent(String(location.pathname + location.search).slice(0, 200))
1315               + '&src=' + encodeURIComponent(src);
1316      fetch('gaeb-log-cart-error.php', {
1317        method: 'POST',
1318        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
1319        body: body,
1320        keepalive: true,
1321        credentials: 'same-origin'
1322      });
1323    } catch (e) {}
1324    try {
1325      // Toast nur einmal anlegen
1326      if (document.getElementById('fsErrorToast')) return;
1327      var t = document.createElement('div');
1328      t.id = 'fsErrorToast';
1329      t.setAttribute('role', 'alert');
1330      t.style.cssText = [
1331        'position:fixed', 'left:50%', 'bottom:24px', 'transform:translateX(-50%)',
1332        'z-index:2147483646', 'max-width:520px', 'padding:14px 18px',
1333        'background:#fff', 'color:#1f2937', 'border:1px solid #d97706',
1334        'border-left:5px solid #d97706', 'border-radius:8px',
1335        'box-shadow:0 10px 30px rgba(0,0,0,.18)', 'font:600 14px/1.45 -apple-system,Segoe UI,Roboto,sans-serif'
1336      ].join(';');
1337      t.innerHTML =
1338        '<div style="display:flex;gap:10px;align-items:flex-start;">' +
1339          '<div style="flex:1;min-width:0;">
1339' +
1340            '<div style="font-weight:700;margin-bottom:4px;">Beim Checkout ist ein Fehler aufgetreten</div>' +
1341            '<div style="font-weight:400;color:#374151;">Bitte versuchen Sie es in einem Moment erneut. Alternativ können Sie ' +
1342              '<a href="gaeb-kaufen.html" style="color:#1168a6;font-weight:600;">per Rechnung bestellen</a> ' +
1343              'oder uns an <a href="mailto:[email protected]?subject=Checkout-Fehler" style="color:#1168a6;font-weight:600;">[email protected]</a> schreiben.' +
1344            '</div>' +
1345          '</div>' +
1346          '<button type="button" aria-label="Schließen" style="background:transparent;border:0;color:#6b7280;cursor:pointer;font-size:18px;line-height:1;padding:0 0 0 4px;">&#x2715;</button>' +
1347        '</div>';
1348      var html = document.documentElement;
1349      if (html && html.getAttribute('data-theme') === 'dark') {
1350        t.style.background = '#1f2937';
1351        t.style.color = '#f0f0f0';
1352        t.style.borderColor = '#d97706';
1353      }
1354      document.body.appendChild(t);
1355      t.querySelector('button').addEventListener('click', function () { t.remove(); });
1356      setTimeout(function () { if (t.parentNode) t.remove(); }, 12000);
1357    } catch (e) {}
1358  };
1359</script>
1359
1360
1361<!-- Produktberater-Modal -->
1362<script src="assets/produktberater.js" defer></script>
1362
1363
1364<!-- ============ LIVE-VERSIONSANZEIGE (Footer) ============
1365     Holt /download/version.txt (Format: VERSION|URL) und blendet "Aktuelle
1366     Version: X.X.X.X" mit Link auf gaeb-release-2025.html ein. Cached pro
1367     Browser-Tab via sessionStorage, scheitert lautlos bei Netzwerk-Problemen. -->
1368<script>
1369(function () {
1370  function showVersion(v) {
1371    if (!v || !/^[\d.]+$/.test(v)) return;
1372    // Alle Elemente mit data-site-version befüllen (Multi-Spot-Support)
1373    var slots = document.querySelectorAll('[data-site-version]');
1374    for (var i = 0; i < slots.length; i++) {
1375      slots[i].textContent = v;
1376    }
1377    // Alle Wrapper mit .footer-version sichtbar machen
1378    var wraps = document.querySelectorAll('.footer-version');
1379    for (var j = 0; j < wraps.length; j++) {
1380      wraps[j].hidden = false;
1381    }
1382  }
1383
1384  // Kurzlebiger sessionStorage-Cache (5 Min) — schneller bei Navigation,
1385  // aber neue Releases werden trotzdem zeitnah sichtbar.
1386  var CACHE_TTL_MS = 5 * 60 * 1000;
1387  try {
1388    var raw = sessionStorage.getItem('siteVersion');
1389    if (raw) {
1390      var obj = JSON.parse(raw);
1391      if (obj && obj.v && obj.t && (Date.now() - obj.t) < CACHE_TTL_MS) {
1392        showVersion(obj.v);
1393        return;
1394      }
1395    }
1396  } catch (e) {}
1397
1398  function tryFetch() {
1399    // cache: 'no-cache' erzwingt Server-Revalidierung (304-Antwort bei
1400    // unverändertem File ist trotzdem schnell, aber neuer Inhalt wird
1401    // sofort übernommen).
1402    fetch('download/version.txt', { cache: 'no-cache' })
1403      .then(function (r) { return r.ok ? r.text() : null; })
1404      .then(function (txt) {
1405        if (!txt) return;
1406        var parts = txt.trim().split('|');
1407        var version = (parts[0] || '').trim();
1408        if (!version) return;
1409        try {
1410          sessionStorage.setItem('siteVersion', JSON.stringify({ v: version, t: Date.now() }));
1411        } catch (e) {}
1412        showVersion(version);
1413      })
1414      .catch(function () { /* silent */ });
1415  }
1416
1417  if (document.readyState === 'loading') {
1418    document.addEventListener('DOMContentLoaded', tryFetch);
1419  } else {
1420    tryFetch();
1421  }
1422})();
1423</script>
1423
1424
1425</body>
1426</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.