{"id":2141,"date":"2026-06-05T17:24:40","date_gmt":"2026-06-05T15:24:40","guid":{"rendered":"https:\/\/cad-kompass.de\/?page_id=2141"},"modified":"2026-07-07T06:47:24","modified_gmt":"2026-07-07T04:47:24","slug":"ausguck","status":"publish","type":"page","link":"https:\/\/cad-kompass.de\/?page_id=2141","title":{"rendered":"Ausguck"},"content":{"rendered":"\n<!--\nCAD-Kompass: Ausguck \u2013 Autodesk Versions-Radar (WP-Embed, avr-Prefix).\nIn einen \"Individuelles HTML\"-Block kopieren. font-family: inherit, kein globaler Reset.\nL\u00e4dt versions.json vom Server, mit datumsbewusstem Fallback (keine erfundenen Builds).\nLayout: Datenblatt (Karten) + Ma\u00dfstab-Jahresleiste, Status = Quadrat + Wort, kein linker Ampel-Streifen.\n-->\n<style>\n        :root {\n            --avr-primary:       #3f5f75;\n            --avr-primary-dark:  #2c4a5e;\n            --avr-primary-hover: #2a4a5c;\n            --avr-primary-light: #edf3f7;\n            --avr-primary-pale:  #f5f8fb;\n            --avr-text:          #334155;\n            --avr-text-light:    #7f8c8d;\n            --avr-heading:       #1e293b;\n            --avr-border:        #e3e8ec;\n            --avr-rule:          #e8edf1;\n            --avr-green:         #15803d;\n            --avr-amber:         #b45309;\n            --avr-red:           #c0341d;\n            --avr-mono:          ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n        }\n\n        .avr-wrap, .avr-wrap *, .avr-wrap *::before, .avr-wrap *::after { box-sizing: border-box; }\n\n        .avr-wrap {\n            font-family: inherit;\n            color: var(--avr-text); line-height: 1.7;\n            -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;\n            max-width: 1240px; margin: 0 auto; padding: 8px 0 80px;\n        }\n\n        \/* ===== HERO ===== *\/\n        .avr-hero {\n            position: relative; background: #2f485b; color: #fff;\n            border-radius: 2px; padding: 17px 28px; margin-bottom: 20px;\n            overflow: hidden; display: flex; align-items: center;\n            min-height: 96px; border: 1px solid rgba(255,255,255,0.16);\n            box-shadow: inset 0 -1px 0 rgba(255,255,255,0.2);\n        }\n        .avr-hero::before {\n            content: \"\"; position: absolute; inset: -16px;\n            background-image:\n                linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),\n                linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);\n            background-size: 28px 28px; opacity: 0.48; pointer-events: none;\n            transform: translate3d(var(--avr-grid-x, 0px), var(--avr-grid-y, 0px), 0);\n            transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.4, 1);\n        }\n        .avr-hero-text { position: relative; z-index: 2; max-width: 760px; }\n        .avr-hero-eyebrow {\n            font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.18em;\n            font-weight: 600; color: rgba(255,255,255,0.72); margin-bottom: 8px;\n        }\n        .avr-hero-title {\n            font-size: 1.34rem; font-weight: 700; line-height: 1.25;\n            margin: 0; color: #fff; letter-spacing: -0.005em;\n        }\n        .avr-hero-meta {\n            margin-top: 8px; font-family: var(--avr-mono);\n            font-size: 0.73rem; color: rgba(255,255,255,0.7); letter-spacing: 0.04em;\n        }\n        \/* Kompass: dekorativ. Sekund\u00e4rring dreht per CSS, Rose folgt der Maus. *\/\n        .avr-compass {\n            position: absolute; z-index: 1; right: -76px; top: 50%;\n            width: 300px; height: 300px; transform: translateY(-50%);\n            opacity: 0.42; pointer-events: none;\n        }\n        .avr-compass svg { width: 100%; height: 100%; display: block; }\n        .avr-compass-secondary, .avr-compass-rose { transform-box: fill-box; transform-origin: center; }\n        .avr-compass-rose { transition: transform 0.55s cubic-bezier(0.34, 1.2, 0.64, 1); }\n        @media (prefers-reduced-motion: reduce) { .avr-compass-rose { transition: none; } }\n        @media (prefers-reduced-motion: no-preference) {\n            .avr-compass-secondary { animation: avrCompassSpin 140s linear infinite; }\n            @keyframes avrCompassSpin { to { transform: rotate(-360deg); } }\n        }\n\n        \/* ===== STATUS-STEMPEL (Quadrat statt Kreis) ===== *\/\n        .avr-stamp {\n            font-size: 0.78rem; color: var(--avr-text-light); margin: 0 0 18px;\n            display: flex; align-items: center; gap: 8px; flex-wrap: wrap;\n        }\n        .avr-stamp-sq { width: 8px; height: 8px; border-radius: 1px; background: #16a34a; flex-shrink: 0; }\n        .avr-stamp-sq.is-stale { background: #d97706; }\n        .avr-stamp-sq.is-error { background: #94a3b8; }\n\n        \/* ===== FALLBACK-FLAG ===== *\/\n        .avr-fallback-flag {\n            display: none; align-items: flex-start; gap: 10px;\n            background: #fffbeb; border-left: 3px solid #d97706;\n            border-radius: 0 2px 2px 0; padding: 12px 16px; margin: 0 0 20px;\n            font-size: 0.84rem; color: #7c4a03;\n        }\n        .avr-fallback-flag.is-on { display: flex; }\n        .avr-fallback-flag svg { flex-shrink: 0; margin-top: 1px; }\n\n        \/* ===== MASSSTAB-JAHRESLEISTE ===== *\/\n        .avr-scale { margin: 0 0 26px; }\n        .avr-scale-track {\n            position: relative; display: flex; align-items: flex-end;\n            border-bottom: 2px solid #b8c4ce;\n        }\n        \/* feine Nebenteilung wie auf einem Lineal *\/\n        .avr-scale-track::before {\n            content: \"\"; position: absolute; left: 0; right: 0; bottom: 0; height: 7px;\n            background-image: repeating-linear-gradient(90deg, #d4dce2 0 1px, transparent 1px calc(100% \/ 24));\n            opacity: 0.7; pointer-events: none;\n        }\n        \/* WP-H\u00e4rtung (Pflicht): das Theme darf den Jahres-Button NICHT einf\u00e4rben\/umranden.\n           Ohne diese !important-Resets malt mancher Theme-Button-Stil (button:focus\/:active)\n           eine fette dunkelblaue Fl\u00e4che, sobald ein Jahr ausgew\u00e4hlt\/fokussiert ist. *\/\n        .avr-year {\n            position: relative; z-index: 1; flex: 1 1 0;\n            display: flex; flex-direction: column; align-items: center;\n            cursor: pointer; font-family: inherit; padding: 12px 2px 0;\n            background: none !important; border: 0 !important; border-radius: 0 !important;\n            box-shadow: none !important; outline: none;\n            -webkit-appearance: none !important; appearance: none !important;\n            color: inherit; min-height: 0; text-shadow: none;\n        }\n        .avr-year:hover, .avr-year:focus, .avr-year:active {\n            background: none !important; border: 0 !important; box-shadow: none !important;\n            outline: none !important; color: inherit;\n        }\n        .avr-year-num { font-family: var(--avr-mono); font-size: 0.96rem; font-weight: 700; color: #94a3b8 !important; line-height: 1; margin-bottom: 10px; transition: color 0.15s; }\n        .avr-year-tick { width: 1.5px; height: 13px; background: #b8c4ce !important; transition: height 0.15s, width 0.15s, background 0.15s; }\n        .avr-year:hover .avr-year-num { color: var(--avr-primary) !important; }\n        .avr-year:focus-visible { outline: 2px solid var(--avr-primary) !important; outline-offset: 3px; border-radius: 2px; }\n        .avr-year.is-rec .avr-year-num { color: var(--avr-green) !important; }\n        .avr-year.is-eol .avr-year-num { color: #c1ccd4 !important; }\n        .avr-year.is-active .avr-year-num { color: var(--avr-heading) !important; font-size: 1.12rem; }\n        .avr-year.is-active .avr-year-tick { height: 22px; width: 3px; background: var(--avr-primary) !important; }\n        .avr-scale-caption {\n            margin: 18px 0 0; font-size: 0.85rem; color: var(--avr-text);\n            display: flex; align-items: center; gap: 9px; flex-wrap: wrap;\n        }\n        .avr-scale-caption strong { color: var(--avr-heading); font-weight: 700; }\n        .avr-scale-caption .avr-cap-sep { color: #cbd5e1; }\n\n        \/* ===== STATUS-WORT + QUADRAT ===== *\/\n        .avr-status-line { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 700; white-space: nowrap; }\n        .avr-sq { width: 11px; height: 11px; border-radius: 1px; flex-shrink: 0; }\n        .avr-status-line.is-ja      { color: var(--avr-green); } .avr-status-line.is-ja .avr-sq      { background: #16a34a; }\n        .avr-status-line.is-warten  { color: var(--avr-amber); } .avr-status-line.is-warten .avr-sq  { background: #d97706; }\n        .avr-status-line.is-nein    { color: var(--avr-red); }   .avr-status-line.is-nein .avr-sq    { background: #dc2626; }\n        .avr-status-line.is-pruefen { color: var(--avr-text-light); } .avr-status-line.is-pruefen .avr-sq { background: #94a3b8; }\n        .avr-status-line.is-behoben    { color: var(--avr-green); } .avr-status-line.is-behoben .avr-sq    { background: #16a34a; }\n        .avr-status-line.is-workaround { color: var(--avr-amber); } .avr-status-line.is-workaround .avr-sq { background: #d97706; }\n        .avr-status-line.is-offen      { color: var(--avr-red); }   .avr-status-line.is-offen .avr-sq      { background: #dc2626; }\n\n        \/* ===== PRODUKT-KARTEN: Datenblatt, KEIN linker Streifen ===== *\/\n        .avr-products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0; }\n        .avr-card {\n            background: #fff; border: 1px solid #d8dee3; border-radius: 4px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.03);\n            display: flex; flex-direction: column;\n            transition: transform 0.2s ease, box-shadow 0.2s ease;\n        }\n        .avr-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(63,95,117,0.10), 0 2px 6px rgba(0,0,0,0.04); }\n\n        .avr-card-head { padding: 18px 20px 16px; border-bottom: 1px solid var(--avr-rule); }\n        .avr-prod-name { font-size: 1.06rem; font-weight: 700; color: var(--avr-heading); margin-bottom: 9px; }\n        .avr-card-head .avr-status-line { margin-bottom: 9px; }\n        .avr-version { font-family: var(--avr-mono); font-size: 0.82rem; font-weight: 700; color: var(--avr-primary-dark); letter-spacing: 0.01em; }\n        .avr-version .avr-version-date { color: var(--avr-text-light); font-weight: 400; }\n\n        .avr-card-body { padding: 4px 20px 6px; flex: 1; }\n        .avr-verdict { font-size: 0.86rem; line-height: 1.62; color: var(--avr-text); margin: 14px 0 4px; }\n\n        .avr-sec { margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--avr-rule); }\n        .avr-sec-label { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--avr-text-light); margin-bottom: 8px; }\n        .avr-list { margin: 0; padding-left: 15px; }\n        .avr-list li { font-size: 0.82rem; line-height: 1.55; color: var(--avr-text); margin-bottom: 5px; }\n        .avr-empty { font-size: 0.81rem; color: var(--avr-text-light); font-style: italic; margin: 0; }\n\n        .avr-trust { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: #aab4bd; margin-left: 4px; }\n        .avr-trust.is-offiziell { color: var(--avr-primary); }\n        \/* Quell-Trennung: offizielle Autodesk-Belege vs. Nutzerforen, auf einen Blick *\/\n        .avr-subhead { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; margin: 11px 0 5px; }\n        .avr-subhead:first-child { margin-top: 0; }\n        .avr-subhead.is-official  { color: var(--avr-primary); }\n        .avr-subhead.is-community { color: var(--avr-amber); }\n        .avr-srclink { font-size: 0.74rem; color: var(--avr-primary); text-decoration: none; margin-left: 5px; border-bottom: 1px solid rgba(63,95,117,0.3); white-space: nowrap; }\n        .avr-srclink:hover { border-color: var(--avr-primary); }\n        .avr-srclink:focus-visible { outline: 2px solid var(--avr-primary); outline-offset: 2px; border-radius: 2px; }\n\n        .avr-card-foot { padding: 14px 20px 18px; border-top: 1px solid var(--avr-rule); display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }\n        .avr-foot-link { font-size: 0.8rem; font-weight: 700; color: var(--avr-primary); text-decoration: none; border-bottom: 1px solid rgba(63,95,117,0.4); }\n        .avr-foot-link:hover { color: var(--avr-primary-hover); border-color: var(--avr-primary-hover); }\n        .avr-foot-link:focus-visible { outline: 2px solid var(--avr-primary); outline-offset: 2px; border-radius: 2px; }\n        .avr-foot-sep { color: #cbd5e1; }\n\n        \/* ===== WINDOWS- & HARDWARE-PROBLEME ===== *\/\n        .avr-section { margin-top: 34px; }\n        .avr-section-heading { font-size: 1rem; font-weight: 700; color: var(--avr-heading); margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--avr-border); }\n        .avr-os-item { padding: 13px 16px; border: 1px solid var(--avr-border); border-radius: 4px; margin-bottom: 9px; background: #fff; }\n        .avr-os-top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 6px; }\n        .avr-os-prod { font-weight: 700; color: var(--avr-heading); font-size: 0.9rem; }\n        .avr-os-kind { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--avr-text-light); border: 1px solid var(--avr-border); border-radius: 3px; padding: 1px 7px; }\n        .avr-os-status { display: inline-flex; align-items: center; gap: 6px; font-size: 0.78rem; font-weight: 700; }\n        .avr-os-status .avr-sq { width: 9px; height: 9px; }\n        .avr-os-date { font-size: 0.76rem; color: var(--avr-text-light); margin-left: auto; font-family: var(--avr-mono); }\n        .avr-os-note { font-size: 0.84rem; color: var(--avr-text); line-height: 1.55; }\n\n        \/* ===== WELCHE VERSION HABE ICH? (neutraler #3f5f75-Strich = Hausstil) ===== *\/\n        .avr-hint { margin-top: 26px; padding: 14px 18px; background: var(--avr-primary-light); border-left: 3px solid var(--avr-primary); border-radius: 0 2px 2px 0; font-size: 0.84rem; line-height: 1.65; color: var(--avr-text); }\n        .avr-hint strong { color: var(--avr-primary-dark); }\n\n        \/* FUSSZEILE *\/\n        .avr-foot { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--avr-border); font-size: 0.77rem; color: var(--avr-text-light); line-height: 1.7; }\n        .avr-foot p { margin: 0; }\n\n        \/* RESPONSIVE *\/\n        @media (max-width: 900px) {\n            .avr-hero { padding: 16px 18px; }\n            .avr-compass { width: 220px; height: 220px; right: -60px; opacity: 0.32; }\n            .avr-products { grid-template-columns: 1fr; }\n            .avr-year-num { font-size: 0.84rem; }\n            .avr-year.is-active .avr-year-num { font-size: 0.98rem; }\n        }\n        @media (max-width: 580px) {\n            .avr-wrap { padding: 0 14px 56px; }\n            .avr-hero-title { font-size: 1.15rem; }\n        }\n    <\/style>\n\n<div class=\"avr-wrap\">\n\n    <!-- 1. HERO + KOMPASS -->\n    <section class=\"avr-hero\" aria-labelledby=\"avr-hero-title\">\n        <div class=\"avr-hero-text\">\n            <div class=\"avr-hero-eyebrow\">Ausguck &middot; Ausschau halten<\/div>\n            <h1 class=\"avr-hero-title\" id=\"avr-hero-title\">Ausguck: Autodesk-Versionen im Blick<\/h1>\n            <div class=\"avr-hero-meta\">Civil&nbsp;3D &middot; AutoCAD &middot; Revit &middot; je Jahresversion mit Update-Empfehlung<\/div>\n        <\/div>\n        <div class=\"avr-compass\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 200 200\" fill=\"none\">\n                <defs>\n                    <filter id=\"avrNeedleGlow\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\n                        <feGaussianBlur stdDeviation=\"3\" result=\"avrGlowBlur\"\/>\n                        <feMerge><feMergeNode in=\"avrGlowBlur\"\/><feMergeNode in=\"SourceGraphic\"\/><\/feMerge>\n                    <\/filter>\n                <\/defs>\n                <circle cx=\"100\" cy=\"100\" r=\"96\" stroke=\"rgba(255,255,255,0.32)\" stroke-width=\"1.2\"\/>\n                <circle cx=\"100\" cy=\"100\" r=\"88\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"0.8\"\/>\n                <g stroke=\"rgba(255,255,255,0.7)\" stroke-width=\"1.6\">\n                    <line x1=\"100\" y1=\"4\"   x2=\"100\" y2=\"16\"\/>\n                    <line x1=\"184\" y1=\"100\" x2=\"196\" y2=\"100\"\/>\n                    <line x1=\"100\" y1=\"184\" x2=\"100\" y2=\"196\"\/>\n                    <line x1=\"4\"   y1=\"100\" x2=\"16\"  y2=\"100\"\/>\n                <\/g>\n                <g stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"1.2\">\n                    <g transform=\"rotate(30 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(60 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(120 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(150 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(210 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(240 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(300 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(330 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                <\/g>\n                <g fill=\"rgba(255,255,255,0.92)\" stroke=\"none\" font-family=\"ui-monospace, monospace\" font-weight=\"700\" font-size=\"11\" text-anchor=\"middle\">\n                    <text x=\"100\" y=\"29\">N<\/text>\n                    <text x=\"171\" y=\"104\">O<\/text>\n                    <text x=\"100\" y=\"178\">S<\/text>\n                    <text x=\"29\"  y=\"104\">W<\/text>\n                <\/g>\n                <g class=\"avr-compass-secondary\">\n                    <circle cx=\"100\" cy=\"100\" r=\"80\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"0.6\" stroke-dasharray=\"2 6\"\/>\n                <\/g>\n                <g class=\"avr-compass-rose\">\n                    <circle cx=\"100\" cy=\"100\" r=\"72\" stroke=\"rgba(255,255,255,0.16)\" stroke-width=\"0.6\" stroke-dasharray=\"3 5\"\/>\n                    <g stroke=\"none\">\n                        <g filter=\"url(#avrNeedleGlow)\">\n                            <polygon points=\"100,18 105,96 100,100\" fill=\"#ffbe3d\"\/>\n                            <polygon points=\"100,18 100,100 95,96\"  fill=\"#c47a1e\"\/>\n                        <\/g>\n                        <polygon points=\"182,100 104,105 100,100\" fill=\"rgba(255,255,255,0.85)\"\/>\n                        <polygon points=\"182,100 100,100 104,95\"  fill=\"rgba(255,255,255,0.5)\"\/>\n                        <polygon points=\"100,182 105,104 100,100\" fill=\"rgba(255,255,255,0.45)\"\/>\n                        <polygon points=\"100,182 100,100 95,104\"  fill=\"rgba(255,255,255,0.25)\"\/>\n                        <polygon points=\"18,100 96,105 100,100\"   fill=\"rgba(255,255,255,0.85)\"\/>\n                        <polygon points=\"18,100 100,100 96,95\"    fill=\"rgba(255,255,255,0.5)\"\/>\n                    <\/g>\n                    <g stroke=\"none\">\n                        <g transform=\"rotate(45 100 100)\">\n                            <polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.7)\"\/>\n                            <polygon points=\"100,42 100,100 97,98\"  fill=\"rgba(255,255,255,0.4)\"\/>\n                        <\/g>\n                        <g transform=\"rotate(135 100 100)\">\n                            <polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/>\n                            <polygon points=\"100,42 100,100 97,98\"  fill=\"rgba(255,255,255,0.35)\"\/>\n                        <\/g>\n                        <g transform=\"rotate(225 100 100)\">\n                            <polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/>\n                            <polygon points=\"100,42 100,100 97,98\"  fill=\"rgba(255,255,255,0.35)\"\/>\n                        <\/g>\n                        <g transform=\"rotate(315 100 100)\">\n                            <polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/>\n                            <polygon points=\"100,42 100,100 97,98\"  fill=\"rgba(255,255,255,0.35)\"\/>\n                        <\/g>\n                    <\/g>\n                <\/g>\n                <circle cx=\"100\" cy=\"100\" r=\"9\"   fill=\"#2a4a5c\" stroke=\"rgba(255,255,255,0.95)\" stroke-width=\"1.4\"\/>\n                <circle cx=\"100\" cy=\"100\" r=\"2.8\" fill=\"#ffbe3d\"\/>\n            <\/svg>\n        <\/div>\n    <\/section>\n\n    <!-- 2. STATUS-STEMPEL -->\n    <p class=\"avr-stamp\" id=\"avrStamp\">\n        <span class=\"avr-stamp-sq\" id=\"avrStampSq\"><\/span>\n        <span id=\"avrStampText\">Status wird geladen &hellip;<\/span>\n    <\/p>\n\n    <!-- 3. FALLBACK-FLAG -->\n    <div class=\"avr-fallback-flag\" id=\"avrFallbackFlag\" role=\"status\" aria-live=\"polite\">\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M10 3L1.5 17.5h17L10 3z\" stroke=\"#d97706\" stroke-width=\"1.5\"\/>\n            <path d=\"M10 9v3.5\" stroke=\"#d97706\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n            <circle cx=\"10\" cy=\"15.5\" r=\"0.8\" fill=\"#d97706\"\/>\n        <\/svg>\n        <div>\n            <strong>Live-Status derzeit nicht erreichbar.<\/strong>\n            Stattdessen zeigen wir Richtwerte aus dem Versionskalender (Stand der Erstellung dieser Seite).\n            F&uuml;r den aktuellen Stand direkt die verlinkte Quelle pr&uuml;fen.\n        <\/div>\n    <\/div>\n\n    <!-- 4. MASSSTAB-JAHRESLEISTE -->\n    <div class=\"avr-scale\">\n        <div class=\"avr-scale-track\" id=\"avrTabs\" role=\"group\" aria-label=\"Jahresversion w&auml;hlen\"><\/div>\n        <p class=\"avr-scale-caption\" id=\"avrCaption\"><\/p>\n    <\/div>\n\n    <!-- 5. PRODUKTE (Civil 3D, AutoCAD, Revit nebeneinander) -->\n    <div id=\"avrProducts\" class=\"avr-products\"><\/div>\n\n    <!-- 6. WINDOWS- & HARDWARE-PROBLEME (je Jahr) -->\n    <section class=\"avr-section\" id=\"avr-os\" aria-labelledby=\"avr-os-heading\">\n        <h2 class=\"avr-section-heading\" id=\"avr-os-heading\">Windows- &amp; Hardware-Probleme<\/h2>\n        <div id=\"avrOsContent\"><\/div>\n    <\/section>\n\n    <!-- 7. WELCHE VERSION HABE ICH? -->\n    <div class=\"avr-hint\">\n        <strong>Welche Version habe ich?<\/strong> Die Jahresversion steht in jedem Programm oben in der Titelleiste. Genauer findest du sie &uuml;ber das Hilfe-Men&uuml; bzw. das Fragezeichen oben rechts, Eintrag &bdquo;Info&ldquo; (bei Revit unter &bdquo;Datei, Info&ldquo;). Dann einfach oben das passende Jahr ausw&auml;hlen.\n    <\/div>\n\n    <!-- 8. FUSSZEILE: nur Disclaimer -->\n    <footer class=\"avr-foot\">\n        <p id=\"avrDisclaimer\"><\/p>\n    <\/footer>\n\n<\/div>\n\n<script>\n(function () {\n    'use strict';\n\n    \/* === Endpunkt (gleiche Domain, kein CORS). Nur diese Zeile bei abweichendem Hosting anpassen. === *\/\n    var AVR_ENDPOINT = '\/wp-content\/uploads\/ausguck\/versions.json';\n\n    \/* === Quellen (mehrfach genutzt) === *\/\n    var SRC_REVIT_GPU = 'https:\/\/forums.autodesk.com\/t5\/revit-architecture-forum\/revit-2025-2026-crashes-with-quot-video-driver-error-quot-on\/td-p\/14075214';\n    var SRC_C3D_24H2  = 'https:\/\/resources.imaginit.com\/support-blog\/civil-3d-2026-will-not-launch-after-updating-to-windows-11-24h2';\n    var SRC_RVT_24H2  = 'https:\/\/www.autodesk.com\/support\/technical\/article\/caas\/sfdcarticles\/sfdcarticles\/Revit-2025-or-2026-hangs-on-Splash-screen-in-Windows-11-24H2.html';\n    var SRC_ACD_24H2  = 'https:\/\/www.neowin.net\/news\/microsoft-blocks-windows-11-24h2-upgrades-on-pcs-with-autocad\/';\n    var SRC_AC_25H2   = 'https:\/\/www.autodesk.com\/support\/technical\/article\/caas\/sfdcarticles\/sfdcarticles\/AutoCAD-products-freezes-or-stops-working-after-installing-Windows-Update-on-Windows-11-25H2-OS-Builds-26200-8246.html';\n    var SRC_CVE_PDF   = 'https:\/\/www.tenable.com\/plugins\/nessus\/265375';\n    var SRC_AC26_KI   = 'https:\/\/help.autodesk.com\/view\/ACD\/2026\/ENU\/index.html?guid=AUTOCAD_2026_KNOWN_ISSUES';\n\n    \/* === Fallback-Datensatz (schema 3 Matrix, kuratiert real, Stand Juni 2026) ===\n       source_run: 'error' signalisiert dem Client, Fallback anzuzeigen. Keine erfundenen Builds. *\/\n    var AVR_FALLBACK = {\n        schema: 3,\n        generated_at: null,\n        source_run: 'error',\n        current_major: 2027,\n        products: ['civil3d', 'autocad', 'revit'],\n        matrix: {\n            '2027': {\n                civil3d: {\n                    build: '2027.0', release_date: '2026-04-02', recommendation: 'warten',\n                    verdict: 'Neue Jahresversion seit April 2026. Bei kritischen Projekten lieber bis zum ersten Wartungsupdate (~August) warten.',\n                    update_digest: ['Autodesk Assistant (Tech Preview): KI-Hilfe direkt in Civil 3D.', 'Forma Data Management Essentials und \u00fcberarbeitete Drainage-Werkzeuge.'],\n                    known_issues: [{ text: 'Online-Hilfe war zum Release teilweise nicht erreichbar.', trust: 'community', url: 'https:\/\/btl-blog.com\/2026\/04\/02\/autodesk-autocad-2027-and-civil-3d-2027-key-updates-explained\/' }]\n                },\n                autocad: {\n                    build: '2027.0', release_date: '2026-03-25', recommendation: 'warten',\n                    verdict: 'Ganz neu und zugleich die Basis von Civil 3D. Das erste Wartungsupdate fehlt noch, deshalb bei laufenden Projekten lieber kurz abwarten.',\n                    update_digest: ['Autodesk Assistant (Tech Preview) versteht die DWG-Geometrie.', 'Checkout: gleichzeitiges Bearbeiten einer DWG \u00fcber Forma; neue Geometry-Cleanup-Werkzeuge.'],\n                    known_issues: []\n                },\n                revit: {\n                    build: '2027.1', release_date: '2026-06-16', recommendation: 'warten',\n                    verdict: 'Aktuelle Version, mit 2027.1 (Juni 2026) ist schon ein erstes Update drau\u00dfen. Bei kritischen Projekten trotzdem noch kurz abwarten.',\n                    update_digest: ['2027.0: Autodesk Assistant (Tech Preview) und Accelerated Graphics produktiv.', '2027.1: MEP-Verbesserungen (In-Canvas-Kan\u00e4le), weitere Forma-Integration.'],\n                    known_issues: []\n                },\n                os_watch: [\n                    { product: 'AutoCAD', kind: 'Windows 11 25H2', status: 'workaround', date: 'Apr 2026', note: 'Einfrieren nach dem \u00d6ffnen einer Zeichnung (Update KB5083769). Hotfix verf\u00fcgbar, noch kein kumulativer Fix.', trust: 'offiziell', source_url: SRC_AC_25H2 }\n                ]\n            },\n            '2026': {\n                civil3d: {\n                    build: '2026.2.1', release_date: '2026-04-07', recommendation: 'ja',\n                    verdict: 'L\u00e4uft breit und stabil. Wer nicht zwingend 2027 braucht, ist hier richtig.',\n                    update_digest: ['2026.2: Drainage-Werkzeuge geb\u00fcndelt, IDF-Regens\u00e4tze, Feature Lines direkt auf dem Canvas editierbar.', '2026.1: Verbesserungen an Project Explorer und Achs-Workflows.'],\n                    known_issues: []\n                },\n                autocad: {\n                    build: '2026.1.1', release_date: '2025-08-13', recommendation: 'ja',\n                    verdict: 'L\u00e4uft stabil und ist ausgereift, f\u00fcr neue Projekte die klare Wahl.',\n                    update_digest: ['Sheet Set Manager in der Cloud mit Echtzeit-Konflikthinweisen.', 'Rasterbilder laden asynchron beim \u00d6ffnen; zwei neue 3D-Visualstile.'],\n                    known_issues: [{ text: 'Sheet Set Manager aus 2026.1.1 ist mit Civil 3D 2026\/2026.1 inkompatibel.', trust: 'offiziell', url: SRC_AC26_KI }]\n                },\n                revit: {\n                    build: '2026.4.1', release_date: '2026-04-16', recommendation: 'ja',\n                    verdict: 'Eine Version hinter dem aktuellen Release, wird aber aktiv gepflegt und ist produktionsreif.',\n                    update_digest: ['2026.0: Accelerated Graphics (Tech Preview), Echtzeit-Rechtschreibpr\u00fcfung, ReCap-Pro-Integration.', '2026.4.1: Stabilit\u00e4t bei Beam Systems und langen Operationen.'],\n                    known_issues: [{ text: 'Sicherheitsl\u00fccke CVE-2025-8893\/8894 (manipulierte PDF), gepatcht ab 2026.3.', trust: 'offiziell', url: SRC_CVE_PDF }]\n                },\n                os_watch: [\n                    { product: 'AutoCAD', kind: 'Windows 11 25H2', status: 'workaround', date: 'Apr 2026', note: 'Einfrieren nach dem \u00d6ffnen einer Zeichnung (KB5083769). Hotfix verf\u00fcgbar.', trust: 'offiziell', source_url: SRC_AC_25H2 },\n                    { product: 'Civil 3D', kind: 'Windows 11 24H2', status: 'workaround', date: 'Okt 2025', note: 'Startabsturz durch besch\u00e4digte MSVCP140.dll. Workaround: Visual C++ Redistributables reparieren.', trust: 'community', source_url: SRC_C3D_24H2 },\n                    { product: 'Revit', kind: 'Hybrid-Grafik', status: 'workaround', date: '2025', note: 'Video-Driver-Error auf Laptops mit Umschaltgrafik (NVIDIA RTX 50). Workaround: in der NVIDIA-Systemsteuerung die dedizierte Grafikkarte erzwingen (Discrete-Modus).', trust: 'community', source_url: SRC_REVIT_GPU },\n                    { product: 'Revit', kind: 'Windows 11 24H2', status: 'workaround', date: '2025', note: 'H\u00e4nger im Splash-Screen. Workarounds: Antivirus-Ausnahme, Vollbild-Optimierung deaktivieren.', trust: 'offiziell', source_url: SRC_RVT_24H2 }\n                ]\n            },\n            '2025': {\n                civil3d: {\n                    build: '2025.2.6', release_date: null, recommendation: 'ja',\n                    verdict: 'L\u00e4uft stabil und ist breit im Einsatz, steht noch im vollen Support-Fenster.',\n                    update_digest: ['2025.2.1: Custom-Profile-Installationsfehler behoben, Dynamo-Sicherheitsfixes.', '2025.2.2: Stabilit\u00e4t bei mehreren gleichzeitig offenen Projektzeichnungen.'],\n                    known_issues: []\n                },\n                autocad: {\n                    build: '2025.1.3', release_date: null, recommendation: 'ja',\n                    verdict: 'Gut eingefahren und weit verbreitet, eine verl\u00e4ssliche Basis f\u00fcr laufende Projekte.',\n                    update_digest: ['Smart Blocks aus der Tech Preview entlassen, jetzt produktionsreif.', 'GPU-beschleunigte Textdarstellung, verbesserte Schraffur-Erstellung.'],\n                    known_issues: []\n                },\n                revit: {\n                    build: '2025.4.5', release_date: '2026-04-23', recommendation: 'ja',\n                    verdict: 'L\u00e4uft stabil, ist in vielen B\u00fcros im Einsatz und wird noch aktiv unterst\u00fctzt.',\n                    update_digest: ['Hintergrund-Export als PDF, Add-In Manager.', 'Dynamo 3.4 mit verbesserter Paket- und Node-Suche.'],\n                    known_issues: [{ text: 'Sicherheitsl\u00fccke CVE-2025-8893\/8894 (manipulierte PDF), gepatcht ab 2025.4.3.', trust: 'offiziell', url: SRC_CVE_PDF }]\n                },\n                os_watch: [\n                    { product: 'AutoCAD', kind: 'Windows 11 25H2', status: 'workaround', date: 'Apr 2026', note: 'Einfrieren nach dem \u00d6ffnen einer Zeichnung (KB5083769). Hotfix verf\u00fcgbar.', trust: 'offiziell', source_url: SRC_AC_25H2 },\n                    { product: 'Revit', kind: 'Hybrid-Grafik', status: 'workaround', date: '2025', note: 'Video-Driver-Error auf Laptops mit Umschaltgrafik (NVIDIA RTX 50). Workaround: in der NVIDIA-Systemsteuerung die dedizierte Grafikkarte erzwingen (Discrete-Modus).', trust: 'community', source_url: SRC_REVIT_GPU },\n                    { product: 'Revit', kind: 'Windows 11 24H2', status: 'workaround', date: '2025', note: 'H\u00e4nger im Splash-Screen. Workarounds dokumentiert.', trust: 'offiziell', source_url: SRC_RVT_24H2 }\n                ]\n            },\n            '2024': {\n                civil3d: {\n                    build: '2024.4.8', release_date: null, recommendation: 'ja',\n                    verdict: '\u00c4lteste Version im Support-Fenster, sie l\u00e4uft als N\u00e4chstes aus. Neue Features kommen keine mehr.',\n                    update_digest: ['Mehrere Baselines beim Anlegen von Korridoren (Achsen plus Profile und Feature Lines).', '12 bis 40 % schnellere Korridor-Neuberechnung bei gleichen Zielobjekten.'],\n                    known_issues: []\n                },\n                autocad: {\n                    build: '2024.1.8', release_date: null, recommendation: 'ja',\n                    verdict: '\u00c4lteste noch unterst\u00fctzte Version. L\u00e4uft im Produktivbetrieb, neue Features gibt es aber keine mehr.',\n                    update_digest: ['Fixes f\u00fcr Grafikabst\u00fcrze (AMD und Intel), Stabilit\u00e4tsverbesserungen.', 'Gelegentliche Startabst\u00fcrze unter Windows 10 behoben.'],\n                    known_issues: []\n                },\n                revit: {\n                    build: '2024.3.5', release_date: '2026-05-28', recommendation: 'ja',\n                    verdict: 'L\u00e4uft in der Wartungsphase: neue Features kommen keine mehr, aber Sicherheits- und Stabilit\u00e4ts-Updates gibt es noch.',\n                    update_digest: ['Dunkles Design f\u00fcr Terminpl\u00e4ne und den Vorlagen-Editor.', 'Sicherheitsl\u00fccken CVE-2025-8893\/8894 gepatcht; Dynamo 2.19.3.'],\n                    known_issues: [{ text: 'Sicherheitsl\u00fccke CVE-2025-8893\/8894 (manipulierte PDF), gepatcht ab 2024.3.4.', trust: 'offiziell', url: SRC_CVE_PDF }]\n                },\n                os_watch: [\n                    { product: 'AutoCAD', kind: 'Windows 11 25H2', status: 'workaround', date: 'Apr 2026', note: 'Einfrieren nach dem \u00d6ffnen einer Zeichnung (KB5083769). Hotfix verf\u00fcgbar.', trust: 'offiziell', source_url: SRC_AC_25H2 }\n                ]\n            },\n            '2023': {\n                civil3d: {\n                    build: '2023.3.7', release_date: null, recommendation: 'nein',\n                    verdict: 'Seit der 2027er-Reihe aus dem Support. Object-Model-Updates liefen bis Ende 2025, jetzt lohnt der Umstieg.',\n                    update_digest: ['2023.3: Korridor-Stabilit\u00e4t und Objektmodell-Updates.', '2023.3.2: Sammlung von Stabilit\u00e4ts- und Funktions-Fixes.'],\n                    known_issues: []\n                },\n                autocad: {\n                    build: '2023.1.8', release_date: null, recommendation: 'nein',\n                    verdict: 'Seit AutoCAD 2027 au\u00dferhalb des Support-Fensters. L\u00e4uft stabil und ist verbreitet, aber Hersteller-Support gibt es keinen mehr.',\n                    update_digest: ['Verbesserungen an Markup Import und Markup Assist.', 'Fixes f\u00fcr AMD- und Intel-Grafikabst\u00fcrze beim Start.'],\n                    known_issues: []\n                },\n                revit: {\n                    build: '2023.1.9', release_date: '2026-03-05', recommendation: 'nein',\n                    verdict: 'Seit dem Revit-2027-Launch aus dem Support. Das letzte kumulative Update war 2023.1.9, jetzt ist der Umstieg dran.',\n                    update_digest: ['Letztes kumulatives Security- und Stabilit\u00e4ts-Update vor EOL.', 'Enth\u00e4lt alle fr\u00fcheren 2023.1.x-Patches.'],\n                    known_issues: []\n                },\n                os_watch: []\n            },\n            '2022': {\n                civil3d: {\n                    build: '2022.2.7', release_date: null, recommendation: 'nein',\n                    verdict: 'End of Support, f\u00fcnf Versionen zur\u00fcck. Kein Patch, kein Support mehr, h\u00f6chste Zeit zu wechseln.',\n                    update_digest: ['2022.2-Reihe: Korridor-Verbesserungen, Korrekturen an Beschriftung und Feature Lines.'],\n                    known_issues: []\n                },\n                autocad: {\n                    build: '2022.1.6', release_date: null, recommendation: 'nein',\n                    verdict: 'End of Support seit AutoCAD 2026. Das letzte Update war der 24H2-Notfallpatch, jetzt sollte der Umstieg her.',\n                    update_digest: ['Windows-11-24H2-Startblockade behoben (Microsoft-Sperre aufgehoben).', 'Allgemeine Stabilit\u00e4tsfixes.'],\n                    known_issues: []\n                },\n                revit: {\n                    build: '2022.1.8', release_date: '2024-11-18', recommendation: 'nein',\n                    verdict: 'End of Support seit Revit 2026. Wer noch darauf sitzt, sollte jetzt auf eine unterst\u00fctzte Version wechseln, Sicherheits-Updates kommen keine mehr.',\n                    update_digest: ['Kumulatives Security- und Stabilit\u00e4ts-Update (enth\u00e4lt alle 2022.1.x-Fixes).', 'Dynamo 2.12 integriert.'],\n                    known_issues: []\n                },\n                os_watch: [\n                    { product: 'AutoCAD', kind: 'Windows 11 24H2', status: 'behoben', date: 'M\u00e4r 2025', note: 'AutoCAD 2022 startete unter 24H2 nicht; Microsoft sperrte das Feature-Update. Behoben mit Update 2022.1.4.', trust: 'community', source_url: SRC_ACD_24H2 }\n                ]\n            }\n        },\n        disclaimer: 'Echtdaten aus offiziellen Autodesk-Quellen und Fachblogs, kuratierter Stand Juni 2026. Der Live-Abruf war gerade nicht erreichbar, du siehst daher einen Snapshot. Im Zweifel direkt die verlinkten Originalquellen pr\u00fcfen.'\n    };\n\n    var AVR_ORDER = ['civil3d', 'autocad', 'revit'];\n    var AVR_PROD_NAME = { civil3d: 'Autodesk Civil 3D', autocad: 'Autodesk AutoCAD', revit: 'Autodesk Revit' };\n    var AVR_PROD_CODE = { civil3d: 'CIV3D', autocad: 'ACD', revit: 'RVT' };\n    var AVR_REC_LABEL = { ja: 'Empfohlen', warten: 'Neu, noch abwarten', nein: 'Upgrade f\u00e4llig', pruefen: 'Status pr\u00fcfen' };\n    var AVR_OS_LABEL = { behoben: 'Behoben', workaround: 'Workaround', offen: 'Offen', problem: 'Offen', ok: 'OK' };\n\n    var AVR_STATE = { data: null, isFallback: false };\n\n    \/* --- DOM-Helfer --- *\/\n    function avrEl(tag, cls, txt) {\n        var e = document.createElement(tag);\n        if (cls) { e.className = cls; }\n        if (txt !== undefined ? txt !== null : false) { e.textContent = txt; }\n        return e;\n    }\n    function avrLink(cls, href, label) {\n        var a = document.createElement('a');\n        if (cls) { a.className = cls; }\n        a.href = href;\n        a.target = '_blank';\n        a.rel = 'noopener noreferrer';\n        a.textContent = label;\n        return a;\n    }\n    function avrFmtDate(iso) {\n        if (!iso) { return null; }\n        var part = iso.split('T')[0];\n        var d = new Date(part + 'T12:00:00');\n        if (isNaN(d.getTime())) { return null; }\n        return d.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' });\n    }\n    function avrReleaseNotesUrl(prodKey, build, year) {\n        var code = AVR_PROD_CODE[prodKey] || 'ACD';\n        var base = 'https:\/\/help.autodesk.com\/view\/' + code + '\/' + year + '\/ENU\/?guid=';\n        var b = build ? String(build) : String(year);\n        var bu = b.split('.').join('_');               \/* \"2025.2.6\" -> \"2025_2_6\" (versionsgenaue Seite) *\/\n        var isBase = \/^\\d{4}(\\.0)?$\/.test(b);          \/* Basisrelease \"2027\" \/ \"2027.0\" *\/\n        if (prodKey === 'autocad') { return base + 'AUTOCAD_' + year + '_RELEASE_NOTES'; }\n        if (prodKey === 'revit') {\n            if (isBase) { return base + 'RevitReleaseNotes_' + year + 'release_html'; }\n            var rp = b.split('.');                      \/* Revit: nur Jahr.Minor (Patch-Seiten existieren nicht) *\/\n            return base + 'RevitReleaseNotes_' + year + 'updates_' + rp[0] + '_' + (rp[1] !== undefined ? rp[1] : '0') + '_html';\n        }\n        \/* civil3d *\/\n        if (isBase) { return base + 'civil_3d_release_notes_' + year; }\n        return base + 'civil_3d_' + bu + '_release_notes';\n    }\n\n    \/* --- Lifecycle-Engine (Richtwert nach Autodesk-4-Versionen-Regel) --- *\/\n    function avrCurrentMajor(today) {\n        var y = today.getFullYear();\n        var m = today.getMonth() + 1;   \/* 1..12 *\/\n        return (m >= 4) ? (y + 1) : y; \/* Major Y erscheint ~Ende M\u00e4rz des Jahres Y-1 *\/\n    }\n    function avrLifeStatus(v, cur) {\n        if (v === cur) { return 'aktuell'; }\n        if (v >= cur - 3) {\n            if (v === cur - 3) { return 'laeuft-aus'; }\n            return 'unterstuetzt';\n        }\n        return 'eol';\n    }\n    function avrEolYear(v) { return v + 3; }\n\n    \/* --- Jahr aus dem Hash (#jahr-YYYY) --- *\/\n    function avrYearFromHash(cur) {\n        var h = location.hash || '';\n        var m = h.match(\/jahr-(\\d{4})\/);\n        if (m) { return parseInt(m[1], 10); }\n        return cur;\n    }\n\n    \/* --- Empfehlung je Jahr (Feld, sonst aus Lifecycle abgeleitet) --- *\/\n    function avrYearRec(p, lifeStatus) {\n        if (p.recommendation === 'ja' || p.recommendation === 'warten' || p.recommendation === 'nein') {\n            return p.recommendation;\n        }\n        if (lifeStatus === 'aktuell')      { return 'warten'; }\n        if (lifeStatus === 'unterstuetzt') { return 'ja'; }\n        if (lifeStatus === 'laeuft-aus')   { return 'ja'; }\n        if (lifeStatus === 'eol')          { return 'nein'; }\n        return 'pruefen';\n    }\n\n    \/* --- Ma\u00dfstab-Leiste (zweizeilige Jahres-Buttons als Lineal-Ticks) --- *\/\n    function avrRenderTabs(years, sel, cur) {\n        var track = document.getElementById('avrTabs');\n        if (!track) { return; }\n        track.textContent = '';\n        years.forEach(function (y) {\n            var status = avrLifeStatus(y, cur);\n            var b = document.createElement('button');\n            b.type = 'button';\n            var recCls = (y === cur - 1) ? ' is-rec' : '';\n            b.className = 'avr-year is-' + status + recCls + (y === sel ? ' is-active' : '');\n            if (y === sel) { b.setAttribute('aria-current', 'true'); }\n            b.appendChild(avrEl('span', 'avr-year-num', String(y)));\n            b.appendChild(avrEl('span', 'avr-year-tick'));\n            (function (yy) {\n                b.addEventListener('click', function () { location.hash = 'jahr-' + yy; });\n            })(y);\n            track.appendChild(b);\n        });\n    }\n\n    \/* --- Untertext zur Leiste: Lebenszyklus-Status des gew\u00e4hlten Jahres --- *\/\n    function avrCaptionText(y, status, cur) {\n        var eol = avrEolYear(y);\n        if (status === 'aktuell')      { return 'Aktuelle Jahresversion \u00b7 Support voraussichtlich bis ' + eol; }\n        if (y === cur - 1)             { return 'F\u00fcr neue Projekte empfohlen \u00b7 Support voraussichtlich bis ' + eol; }\n        if (status === 'unterstuetzt') { return 'Im Support \u00b7 voraussichtlich bis ' + eol; }\n        if (status === 'laeuft-aus')   { return 'L\u00e4uft als N\u00e4chstes aus \u00b7 Support-Ende ~' + eol; }\n        return 'Au\u00dferhalb des Support-Fensters \u00b7 Ende war ~' + eol;\n    }\n    \/* Belegtes End-of-Support-Datum (mit Quelle) h\u00e4ngt an die Caption an, sonst nur Richtwert. *\/\n    function avrRenderCaption(data, sel, status, cur) {\n        var cap = document.getElementById('avrCaption');\n        if (!cap) { return; }\n        cap.textContent = '';\n        cap.appendChild(avrEl('strong', null, 'Jahr ' + sel));\n        cap.appendChild(avrEl('span', 'avr-cap-sep', '\u00b7'));\n        cap.appendChild(document.createTextNode(avrCaptionText(sel, status, cur)));\n\n        var cell = (data.matrix ? data.matrix[String(sel)] : null) || {};\n        var lc = cell.lifecycle || {};\n        var realEol = lc.eol_confirmed ? (lc.eol_date || null) : null;\n        if (realEol) {\n            cap.appendChild(avrEl('span', 'avr-cap-sep', '\u00b7'));\n            cap.appendChild(document.createTextNode('End of Support: ' + (avrFmtDate(realEol) || realEol)));\n            if (lc.eol_source) { cap.appendChild(avrLink('avr-srclink', lc.eol_source, 'Quelle')); }\n        }\n    }\n\n    \/* --- Status-Zeile (Quadrat + Wort) --- *\/\n    function avrStatusLine(cls, label) {\n        var s = avrEl('span', 'avr-status-line is-' + cls);\n        s.appendChild(avrEl('span', 'avr-sq'));\n        s.appendChild(document.createTextNode(label));\n        return s;\n    }\n\n    \/* --- Bekannte-Probleme-Gruppe: offizielle Autodesk-Belege vs. Nutzerforen klar getrennt --- *\/\n    function avrIssueGroup(sec, cls, label, list) {\n        if (!list.length) { return; }\n        sec.appendChild(avrEl('div', 'avr-subhead ' + cls, label));\n        var ul = avrEl('ul', 'avr-list');\n        list.forEach(function (issue) {\n            var li = document.createElement('li');\n            li.appendChild(document.createTextNode(issue.text || ''));\n            if (issue.url) { li.appendChild(avrLink('avr-srclink', issue.url, 'Quelle')); }\n            ul.appendChild(li);\n        });\n        sec.appendChild(ul);\n    }\n\n    \/* --- Produkt-Karte (Datenblatt, f\u00fcr ein Jahr) --- *\/\n    function avrProductCard(prodKey, p, year, lifeStatus) {\n        p = p || {};\n        var rec = avrYearRec(p, lifeStatus);\n\n        var card = avrEl('div', 'avr-card');\n        card.id = 'avr-prod-' + prodKey;\n\n        var head = avrEl('div', 'avr-card-head');\n        head.appendChild(avrEl('div', 'avr-prod-name', AVR_PROD_NAME[prodKey] || prodKey));\n        head.appendChild(avrStatusLine(rec, AVR_REC_LABEL[rec] || rec));\n        var ver = avrEl('div', 'avr-version');\n        ver.appendChild(document.createTextNode(p.build ? p.build.toString() : 'Stand unbekannt'));\n        var relFmt = avrFmtDate(p.release_date);\n        if (relFmt) { ver.appendChild(avrEl('span', 'avr-version-date', ' \u00b7 ' + relFmt)); }\n        head.appendChild(ver);\n        card.appendChild(head);\n\n        var body = avrEl('div', 'avr-card-body');\n\n        \/* Verdict + Release Notes = \"Lead\" der Karte. Gleiche Lead-Hoehe (per JS) sorgt\n           dafuer, dass die \"Bekannte Probleme\"-Trennlinie bei allen drei Karten auf einer\n           Ebene liegt, egal wie lang die Texte sind. *\/\n        var lead = avrEl('div', 'avr-card-lead');\n        if (p.verdict) { lead.appendChild(avrEl('p', 'avr-verdict', p.verdict)); }\n\n        var digest = p.update_digest || [];\n        if (digest.length) {\n            var sec1 = avrEl('div', 'avr-sec');\n            sec1.appendChild(avrEl('div', 'avr-sec-label', 'Aus den Release Notes'));\n            var ulD = avrEl('ul', 'avr-list');\n            digest.forEach(function (t) { ulD.appendChild(avrEl('li', null, t)); });\n            sec1.appendChild(ulD);\n            lead.appendChild(sec1);\n        }\n        body.appendChild(lead);\n\n        var sec2 = avrEl('div', 'avr-sec');\n        sec2.appendChild(avrEl('div', 'avr-sec-label', 'Bekannte Probleme'));\n        var issues = p.known_issues || [];\n        if (issues.length) {\n            var offI = issues.filter(function (x) { return x.trust === 'offiziell'; });\n            var comI = issues.filter(function (x) { return x.trust !== 'offiziell'; });\n            avrIssueGroup(sec2, 'is-official', 'Von Autodesk best\u00e4tigt', offI);\n            avrIssueGroup(sec2, 'is-community', 'Aus Nutzerforen \u00b7 unbest\u00e4tigt', comI);\n        } else {\n            sec2.appendChild(avrEl('p', 'avr-empty', 'F\u00fcr ' + year + ' nichts gemeldet.'));\n        }\n        body.appendChild(sec2);\n        card.appendChild(body);\n\n        var rel = p.release_notes_url || avrReleaseNotesUrl(prodKey, p.build, year);\n        var foot = avrEl('div', 'avr-card-foot');\n        foot.appendChild(avrLink('avr-foot-link', rel, 'Release Notes'));\n        if (p.known_issues_url) {\n            foot.appendChild(avrEl('span', 'avr-foot-sep', '\u00b7'));\n            foot.appendChild(avrLink('avr-foot-link', p.known_issues_url, 'Known Issues'));\n        }\n        card.appendChild(foot);\n\n        return card;\n    }\n\n    \/* --- Produkte des Jahres --- *\/\n    function avrRenderProducts(data, sel, cur) {\n        var cont = document.getElementById('avrProducts');\n        if (!cont) { return; }\n        cont.textContent = '';\n        var cell = data.matrix ? data.matrix[String(sel)] : null;\n        var status = avrLifeStatus(sel, cur);\n        AVR_ORDER.forEach(function (k) {\n            var p = cell ? cell[k] : null;\n            cont.appendChild(avrProductCard(k, p, sel, status));\n        });\n    }\n\n    \/* --- Windows-\/Hardware-Problemzeile (Produkt, Art, Status, Datum, Notiz + Quelle) --- *\/\n    function avrOsRow(item) {\n        var row = avrEl('div', 'avr-os-item');\n        var top = avrEl('div', 'avr-os-top');\n        top.appendChild(avrEl('span', 'avr-os-prod', item.product || ''));\n        if (item.kind) { top.appendChild(avrEl('span', 'avr-os-kind', item.kind)); }\n        var stKey = item.status || 'offen';\n        var stCls = (stKey === 'behoben' || stKey === 'workaround') ? stKey : 'offen';\n        var stItem = avrStatusLine(stCls, AVR_OS_LABEL[stKey] || stKey);\n        stItem.classList.add('avr-os-status');\n        top.appendChild(stItem);\n        if (item.date) { top.appendChild(avrEl('span', 'avr-os-date', item.date)); }\n        row.appendChild(top);\n        var note = avrEl('div', 'avr-os-note');\n        note.appendChild(document.createTextNode(item.note || ''));\n        if (item.source_url) { note.appendChild(avrLink('avr-srclink', item.source_url, 'Quelle')); }\n        row.appendChild(note);\n        return row;\n    }\n    function avrOsGroup(cont, cls, label, list) {\n        if (!list.length) { return; }\n        cont.appendChild(avrEl('div', 'avr-subhead ' + cls, label));\n        list.forEach(function (item) { cont.appendChild(avrOsRow(item)); });\n    }\n\n    \/* --- Windows- und Hardware-Probleme des Jahres, nach Quelle getrennt --- *\/\n    function avrRenderOs(data, sel) {\n        var cont = document.getElementById('avrOsContent');\n        if (!cont) { return; }\n        cont.textContent = '';\n        var cell = data.matrix ? data.matrix[String(sel)] : null;\n        var items = cell ? (cell.os_watch || []) : [];\n        if (!items.length) {\n            cont.appendChild(avrEl('p', 'avr-empty', 'F\u00fcr ' + sel + ' nichts gemeldet.'));\n            return;\n        }\n        var offO = items.filter(function (x) { return x.trust === 'offiziell'; });\n        var comO = items.filter(function (x) { return x.trust !== 'offiziell'; });\n        avrOsGroup(cont, 'is-official', 'Von Autodesk best\u00e4tigt', offO);\n        avrOsGroup(cont, 'is-community', 'Aus Nutzerforen \u00b7 unbest\u00e4tigt', comO);\n    }\n\n    \/* Eine Gruppe Elemente auf die groesste natuerliche Hoehe bringen (min-height). *\/\n    function avrEqualizeSet(list) {\n        var i, max = 0;\n        for (i = 0; i < list.length; i++) {\n            if (list[i].offsetHeight > max) { max = list[i].offsetHeight; }\n        }\n        for (i = 0; i < list.length; i++) { list[i].style.minHeight = max + 'px'; }\n    }\n\n    \/* --- Beide Trennlinien der drei Karten auf eine Ebene bringen --- *\/\n    \/* Zwei Stufen: erst Verdict-Hoehe angleichen (richtet die \"Aus den Release Notes\"-Linie\n       aus), dann den ganzen Lead (richtet die \"Bekannte Probleme\"-Linie aus). *\/\n    function avrEqualizeLeads() {\n        var cont = document.getElementById('avrProducts');\n        if (!cont) { return; }\n        var leads = cont.querySelectorAll('.avr-card-lead');\n        var verds = cont.querySelectorAll('.avr-verdict');\n        if (leads.length < 2) { return; }\n        var i;\n        for (i = 0; i < verds.length; i++) { verds[i].style.minHeight = ''; }\n        for (i = 0; i < leads.length; i++) { leads[i].style.minHeight = ''; }\n        \/* Nur im mehrspaltigen Layout ausrichten (nebeneinander = gleiche obere Kante). *\/\n        var top0 = leads[0].getBoundingClientRect().top;\n        var sameRow = true;\n        for (i = 1; i < leads.length; i++) {\n            if (Math.abs(leads[i].getBoundingClientRect().top - top0) > 2) { sameRow = false; }\n        }\n        if (!sameRow) { return; }\n        if (verds.length === leads.length) { avrEqualizeSet(verds); }  \/* Stufe 1 *\/\n        avrEqualizeSet(leads);                                          \/* Stufe 2 *\/\n    }\n    (function () {\n        var t;\n        window.addEventListener('resize', function () {\n            clearTimeout(t);\n            t = setTimeout(avrEqualizeLeads, 150);\n        });\n    })();\n\n    \/* --- Jahr neu zeichnen (Leiste, Caption, Produkte, Windows) --- *\/\n    function avrPaint() {\n        var data = AVR_STATE.data;\n        if (!data) { return; }\n        var today = new Date();\n        var cur = data.current_major || avrCurrentMajor(today);\n        var years = [];\n        var i;\n        for (i = 5; i >= 0; i--) { years.push(cur - i); }  \/* alt -> neu (Lineal) *\/\n        var sel = avrYearFromHash(cur);\n        if (years.indexOf(sel) === -1) { sel = cur; }\n        avrRenderTabs(years, sel, cur);\n        avrRenderCaption(data, sel, avrLifeStatus(sel, cur), cur);\n        avrRenderProducts(data, sel, cur);\n        avrRenderOs(data, sel);\n        avrEqualizeLeads();\n        avrBindCompass();\n    }\n\n    \/* --- Hauptrender: Stempel setzen, dann Jahr zeichnen --- *\/\n    function avrRender(data, isFallback) {\n        AVR_STATE.data = data;\n        AVR_STATE.isFallback = isFallback;\n\n        var sq       = document.getElementById('avrStampSq');\n        var stampTxt = document.getElementById('avrStampText');\n        var flag     = document.getElementById('avrFallbackFlag');\n        var disc     = document.getElementById('avrDisclaimer');\n\n        if (sq) { sq.className = 'avr-stamp-sq'; }\n        if (flag) { flag.classList.remove('is-on'); }\n\n        if (isFallback ? true : (data.source_run === 'error')) {\n            if (sq)       { sq.classList.add('is-error'); }\n            if (stampTxt) { stampTxt.textContent = 'Live-Status nicht erreichbar, Richtwerte aus dem Versionskalender'; }\n            if (flag)     { flag.classList.add('is-on'); }\n        } else if (data.source_run === 'stale') {\n            if (sq)       { sq.classList.add('is-stale'); }\n            if (stampTxt) { stampTxt.textContent = 'Letzter gesicherter Stand: ' + (avrFmtDate(data.generated_at) || 'unbekannt'); }\n        } else {\n            if (stampTxt) { stampTxt.textContent = 'Stand: ' + (avrFmtDate(data.generated_at) || 'heute') + ' \u00b7 regelm\u00e4\u00dfig aktualisiert'; }\n        }\n\n        if (disc) { disc.textContent = data.disclaimer || ''; }\n\n        avrPaint();\n    }\n\n    \/* --- Schema-Pruefung (schema 3) --- *\/\n    function avrValid(d) {\n        if (!d) { return false; }\n        if (!d.matrix) { return false; }\n        if (typeof d.matrix !== 'object') { return false; }\n        return true;\n    }\n\n    \/* --- Fetch + Timeout + Fallback --- *\/\n    function avrLoad() {\n        var done  = false;\n        var ctrl  = ('AbortController' in window) ? new AbortController() : null;\n        var timer = setTimeout(function () {\n            if (done) { return; }\n            done = true;\n            if (ctrl) { ctrl.abort(); }\n            avrRender(AVR_FALLBACK, true);\n        }, 8000);\n\n        fetch(AVR_ENDPOINT, { cache: 'no-store', signal: ctrl ? ctrl.signal : undefined })\n            .then(function (r) {\n                if (!r.ok) { throw new Error('HTTP ' + r.status); }\n                return r.json();\n            })\n            .then(function (data) {\n                if (done) { return; }\n                done = true;\n                clearTimeout(timer);\n                if (avrValid(data) ? (data.source_run !== 'error') : false) {\n                    avrRender(data, false);\n                } else {\n                    avrRender(AVR_FALLBACK, true);\n                }\n            })\n            .catch(function () {\n                if (done) { return; }\n                done = true;\n                clearTimeout(timer);\n                avrRender(AVR_FALLBACK, true);\n            });\n    }\n\n    \/* --- Hero-Raster: leicht parallax bei Mausbewegung --- *\/\n    (function heroParallax() {\n        var prefersReduced = window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;\n        if (prefersReduced) { return; }\n        var hasFine = window.matchMedia ? window.matchMedia('(pointer: fine)').matches : false;\n        if (!hasFine) { return; }\n        var hero = document.querySelector('.avr-hero');\n        if (!hero) { return; }\n        var lx = 0, ly = 0, ticking = false;\n        function apply() {\n            hero.style.setProperty('--avr-grid-x', lx.toFixed(1) + 'px');\n            hero.style.setProperty('--avr-grid-y', ly.toFixed(1) + 'px');\n            ticking = false;\n        }\n        hero.addEventListener('mousemove', function (e) {\n            var r  = hero.getBoundingClientRect();\n            var nx = (e.clientX - r.left) \/ r.width  - 0.5;\n            var ny = (e.clientY - r.top)  \/ r.height - 0.5;\n            lx = nx * -16; ly = ny * -16;\n            if (!ticking) { requestAnimationFrame(apply); ticking = true; }\n        }, { passive: true });\n        hero.addEventListener('mouseleave', function () {\n            lx = 0; ly = 0;\n            if (!ticking) { requestAnimationFrame(apply); ticking = true; }\n        });\n    })();\n\n    \/* === Kompass-Wegweiser: Nadel zeigt auf das Element unter der Maus.\n       Ruhelage = aktives Jahr auf der Leiste. === *\/\n    var AVR_COMPASS = document.querySelector('.avr-compass');\n    var AVR_ROSE = AVR_COMPASS ? AVR_COMPASS.querySelector('.avr-compass-rose') : null;\n    var AVR_COMPASS_CURRENT = null;\n    var AVR_COMPASS_DYNAMIC = false;\n\n    function avrCompassAngleTo(el) {\n        if (!el) { return 0; }\n        if (!AVR_COMPASS) { return 0; }\n        var c = AVR_COMPASS.getBoundingClientRect();\n        if (c.width === 0) { return 0; }\n        var t = el.getBoundingClientRect();\n        var cx = c.left + c.width \/ 2;\n        var cy = c.top + c.height \/ 2;\n        var tx = t.left + t.width \/ 2;\n        var ty = t.top + t.height \/ 2;\n        return Math.atan2(ty - cy, tx - cx) * 180 \/ Math.PI + 90;\n    }\n    function avrCompassRest() {\n        var t = document.querySelector('.avr-year.is-active');\n        if (!t) { t = document.querySelector('.avr-year'); }\n        return t;\n    }\n    function avrCompassRefresh() {\n        if (!AVR_ROSE) { return; }\n        var target = AVR_COMPASS_CURRENT || avrCompassRest();\n        AVR_ROSE.style.transform = 'rotate(' + avrCompassAngleTo(target).toFixed(2) + 'deg)';\n    }\n    \/* Hover an die aktuell gerenderten Jahre\/Karten binden; wird in avrPaint nach jedem Render aufgerufen. *\/\n    function avrBindCompass() {\n        avrCompassRefresh();\n        if (!AVR_COMPASS_DYNAMIC) { return; }\n        var els = Array.prototype.slice.call(document.querySelectorAll('.avr-year, .avr-card'));\n        els.forEach(function (el) {\n            el.addEventListener('mouseenter', function () { AVR_COMPASS_CURRENT = el; avrCompassRefresh(); });\n            el.addEventListener('mouseleave', function () { AVR_COMPASS_CURRENT = null; avrCompassRefresh(); });\n        });\n    }\n    (function compassInit() {\n        if (!AVR_ROSE) { return; }\n        var prefersReduced = window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;\n        var hasFine = window.matchMedia ? window.matchMedia('(pointer: fine)').matches : false;\n        AVR_COMPASS_DYNAMIC = prefersReduced ? false : (hasFine ? true : false);\n        if (!AVR_COMPASS_DYNAMIC) { return; }\n        var ticking = false;\n        function onScroll() {\n            if (ticking) { return; }\n            ticking = true;\n            requestAnimationFrame(function () { ticking = false; avrCompassRefresh(); });\n        }\n        window.addEventListener('scroll', onScroll, { passive: true });\n        window.addEventListener('resize', onScroll, { passive: true });\n    })();\n\n    \/* --- Jahr-Wechsel ohne Reload --- *\/\n    window.addEventListener('hashchange', function () { avrPaint(); });\n\n    \/* --- Init --- *\/\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', avrLoad);\n    } else {\n        avrLoad();\n    }\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Ausguck &middot; Ausschau halten Ausguck: Autodesk-Versionen im Blick Civil&nbsp;3D &middot; AutoCAD &middot; Revit &middot; je Jahresversion mit Update-Empfehlung N O [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":13,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2141","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":false,"author_link":"https:\/\/cad-kompass.de\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"Ausguck &middot; Ausschau halten Ausguck: Autodesk-Versionen im Blick Civil&nbsp;3D &middot; AutoCAD &middot; Revit &middot; je Jahresversion mit Update-Empfehlung N O [&hellip;]","_links":{"self":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/2141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2141"}],"version-history":[{"count":11,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/2141\/revisions"}],"predecessor-version":[{"id":2279,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/2141\/revisions\/2279"}],"wp:attachment":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}