{"id":2802,"date":"2026-10-13T07:10:58","date_gmt":"2026-10-13T05:10:58","guid":{"rendered":"https:\/\/cad-kompass.de\/?p=2802"},"modified":"2026-10-13T07:10:59","modified_gmt":"2026-10-13T05:10:59","slug":"wer-bestimmt-das-aussehen","status":"publish","type":"post","link":"https:\/\/cad-kompass.de\/?p=2802","title":{"rendered":"Wer bestimmt das Aussehen?"},"content":{"rendered":"\n<style>\n    .wa-box {\n        --wa-primary: #3f5f75;\n        --wa-primary-dark: #2c4a5e;\n        --wa-primary-deep: #1e3548;\n        --wa-good: #059669;\n        --wa-good-deep: #15803d;\n        --wa-ink: #1e293b;\n        --wa-text: #334155;\n        --wa-muted: #64748b;\n        --wa-border: #c8d6e0;\n        --wa-hair: #e2e8f0;\n        --wa-surface: #f7f9fb;\n        --wa-win: #edf4f8;           \/* gewinnende Stufe und ma\u00dfgebliche Gruppe *\/\n        --wa-mono: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n        background: #fff;\n        border: 3px solid var(--wa-primary);\n        border-radius: 8px;\n        margin: 28px 0;\n        overflow: hidden;\n        position: relative;\n        font-family: inherit;\n        color: var(--wa-text);\n        line-height: 1.55;\n        text-align: left;\n    }\n    .wa-box, .wa-box *, .wa-box *::before, .wa-box *::after { box-sizing: border-box; }\n\n    .wa-header {\n        background: linear-gradient(135deg, var(--wa-primary-deep) 0%, var(--wa-primary-dark) 100%);\n        padding: 13px 28px 12px;\n        position: relative;\n    }\n    .wa-header::after {\n        content: '';\n        position: absolute;\n        left: 0; right: 0; bottom: 0;\n        height: 3px;\n        background: repeating-linear-gradient(90deg, var(--wa-primary) 0px, var(--wa-primary) 8px, transparent 8px, transparent 12px);\n    }\n    .wa-header-top { display: flex; align-items: center; gap: 14px; }\n    .wa-header-icon { width: 36px; height: 36px; flex-shrink: 0; }\n    .wa-box .wa-box-title { font-size: 1.15rem; color: #fff; font-weight: 700; margin: 0; padding: 0; letter-spacing: -0.01em; line-height: 1.3; border: 0; background: none; }\n    .wa-box .wa-box-desc { font-size: 0.85rem; color: rgba(255,255,255,0.78); margin: 4px 0 0; line-height: 1.5; }\n\n    .wa-body { padding: 12px 28px 16px; background: var(--wa-surface); }\n    .wa-privacy {\n        background: #f0fdf4;\n        border: 1px solid #bbf7d0;\n        border-radius: 3px;\n        padding: 6px 14px;\n        margin-bottom: 10px;\n        font-size: 0.8rem;\n        color: #15803d;\n        line-height: 1.5;\n        display: flex;\n        align-items: center;\n        gap: 8px;\n    }\n    .wa-privacy::before { content: '\\1F512'; flex-shrink: 0; font-size: 0.9rem; }\n\n    .wa-box .wa-section-label {\n        font-size: 0.68rem;\n        font-weight: 800;\n        text-transform: uppercase;\n        letter-spacing: 0.1em;\n        color: var(--wa-muted);\n        margin: 0 0 8px;\n    }\n    .wa-box p, .wa-box h2, .wa-box h3, .wa-box h4, .wa-box ol, .wa-box li { margin: 0; padding: 0; }\n    .wa-box h2, .wa-box h3, .wa-box h4 { font-family: inherit; text-transform: none; letter-spacing: 0; border: 0; background: none; }\n    .wa-box ol { list-style: none; }\n    .wa-box [hidden] { display: none !important; }\n\n    \/* ---------- Fall-Leiste ---------- *\/\n    .wa-cases { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 8px; }\n    .wa-box .wa-cases .wa-section-label { margin: 0; white-space: nowrap; }\n    .wa-cases-row { flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }\n    .wa-seg { display: flex; flex-wrap: wrap; gap: 6px; }\n    .wa-box .wa-seg button {\n        -webkit-appearance: none !important;\n        appearance: none !important;\n        position: relative !important;\n        font-family: inherit !important;\n        font-size: 0.76rem !important;\n        font-weight: 700 !important;\n        line-height: 1.2 !important;\n        color: var(--wa-text) !important;\n        background: #fff !important;\n        border: 1px solid var(--wa-border) !important;\n        border-radius: 3px !important;\n        min-height: 34px !important;\n        padding: 6px 12px !important;\n        margin: 0 !important;\n        cursor: pointer !important;\n        box-shadow: none !important;\n        text-transform: none !important;\n        letter-spacing: 0 !important;\n        text-decoration: none !important;\n        text-align: left !important;\n        transition: background-color 0.15s, color 0.15s, border-color 0.15s;\n    }\n    .wa-box .wa-seg button:hover { background: #edf4f8 !important; color: var(--wa-primary-deep) !important; border-color: var(--wa-primary) !important; }\n    .wa-box .wa-seg button:active { background: #e2ecf2 !important; color: var(--wa-primary-deep) !important; }\n    .wa-box .wa-seg button:focus-visible { outline: 2px solid var(--wa-primary) !important; outline-offset: 2px !important; }\n    .wa-box .wa-seg button:disabled,\n    .wa-box .wa-seg button:disabled:hover { opacity: 0.5 !important; cursor: not-allowed !important; background: #f1f5f9 !important; color: var(--wa-muted) !important; border-color: var(--wa-border) !important; }\n    .wa-box .wa-seg button.is-active,\n    .wa-box .wa-seg button.is-active:hover { background: var(--wa-primary) !important; color: #fff !important; border-color: var(--wa-primary) !important; }\n    .wa-box .wa-num { font-family: var(--wa-mono); margin-right: 4px; }\n    .wa-box .wa-seg button .wa-done,\n    .wa-box .wa-seg button .wa-srdone { display: none; }\n    .wa-box .wa-seg button.is-done .wa-done { display: inline; }\n    .wa-box .wa-seg button.is-done .wa-srdone {\n        display: block; position: absolute; width: 1px; height: 1px; overflow: hidden;\n        clip: rect(0 0 0 0); white-space: nowrap;\n    }\n\n    \/* Nebenknopf (Fall zur\u00fccksetzen, Ganz nach oben) *\/\n    .wa-box .wa-side {\n        -webkit-appearance: none !important;\n        appearance: none !important;\n        font-family: inherit !important;\n        font-size: 0.74rem !important;\n        font-weight: 700 !important;\n        line-height: 1.2 !important;\n        color: var(--wa-primary-deep) !important;\n        background: #fff !important;\n        border: 1px solid var(--wa-border) !important;\n        border-radius: 3px !important;\n        min-height: 34px !important;\n        padding: 6px 12px !important;\n        margin: 0 !important;\n        cursor: pointer !important;\n        box-shadow: none !important;\n        text-transform: none !important;\n        letter-spacing: 0 !important;\n        text-decoration: none !important;\n        transition: background-color 0.15s, color 0.15s, border-color 0.15s;\n    }\n    .wa-box .wa-side:hover { background: #edf4f8 !important; color: var(--wa-primary-deep) !important; border-color: var(--wa-primary) !important; }\n    .wa-box .wa-side:active { background: #e2ecf2 !important; color: var(--wa-primary-deep) !important; }\n    .wa-box .wa-side:focus-visible { outline: 2px solid var(--wa-primary) !important; outline-offset: 2px !important; }\n    .wa-box .wa-side:disabled,\n    .wa-box .wa-side:disabled:hover { opacity: 0.5 !important; cursor: not-allowed !important; background: #f1f5f9 !important; color: var(--wa-muted) !important; border-color: var(--wa-border) !important; }\n    .wa-box .wa-reset { margin-left: auto !important; }\n\n    \/* ---------- Aufgabe ---------- *\/\n    .wa-box .wa-task {\n        background: #f0f5fa;\n        border-left: 3px solid var(--wa-primary);\n        border-radius: 0 4px 4px 0;\n        padding: 11px 15px;\n        margin: 0 0 10px;\n        font-size: 0.86rem;\n        color: var(--wa-text);\n    }\n    .wa-task strong { color: var(--wa-ink); }\n    .wa-box .wa-task p + p { margin-top: 3px; }\n\n    \/* ---------- B\u00fchne ---------- *\/\n    .wa-stage {\n        display: grid;\n        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n        column-gap: 22px;\n        row-gap: 14px;\n        grid-template-areas: \"steuer plan\" \"steuer kette\" \"steuer feedback\";\n        align-items: start;\n    }\n    .wa-stage.is-narrow { grid-template-columns: minmax(0, 1fr); grid-template-areas: \"plan\" \"kette\" \"steuer\" \"feedback\"; }\n    .wa-c-steuer { grid-area: steuer; }\n    .wa-c-plan { grid-area: plan; }\n    .wa-c-kette { grid-area: kette; }\n\n    .wa-card { background: #fff; border: 1px solid var(--wa-border); border-radius: 4px; padding: 14px 15px 15px; min-width: 0; }\n    .wa-box .wa-card-title { font-size: 0.92rem; font-weight: 800; color: var(--wa-ink); margin: 0; line-height: 1.3; }\n    .wa-box .wa-card-sub { font-size: 0.74rem; color: var(--wa-muted); margin: 2px 0 8px; line-height: 1.45; }\n    .wa-box .wa-note { font-size: 0.74rem; color: var(--wa-muted); line-height: 1.5; margin: 6px 0 0; }\n    .wa-box .wa-civil { font-family: var(--wa-mono); font-size: 0.72rem; color: var(--wa-muted); line-height: 1.45; margin: 5px 0 0; }\n    .wa-sq { display: inline-block; width: 9px; height: 9px; border-radius: 1px; flex-shrink: 0; background: var(--wa-primary); }\n\n    \/* Karte Steuerung: Gruppenzeilen (breit: Text links, Kn\u00f6pfe rechts; schmal: untereinander) *\/\n    .wa-glist { margin-top: 2px; }\n    .wa-grow {\n        display: grid;\n        grid-template-columns: minmax(0, 1fr) auto;\n        grid-template-areas: \"head top\" \"stat tog\" \"enth tog\" \"vor tog\";\n        column-gap: 12px;\n        row-gap: 2px;\n        align-items: start;\n        padding: 7px 10px 8px;\n        border-top: 1px solid var(--wa-hair);\n        border-radius: 3px;\n    }\n    .wa-c-steuer.is-tight .wa-grow { grid-template-areas: \"head top\" \"stat stat\" \"enth enth\" \"vor vor\" \"tog tog\"; }\n    .wa-grow:first-child { border-top-color: transparent; }\n    .wa-grow[data-wa-top=\"ja\"] { background: var(--wa-win); box-shadow: inset 0 0 0 1.5px var(--wa-primary); border-top-color: transparent; }\n    .wa-grow[data-wa-top=\"ja\"] + .wa-grow { border-top-color: transparent; }\n    .wa-ghead { grid-area: head; display: flex; align-items: center; gap: 8px; align-self: center; }\n    .wa-box .wa-gpos { font-family: var(--wa-mono); font-size: 0.74rem; font-weight: 800; color: var(--wa-muted); min-width: 12px; }\n    .wa-box .wa-gname { font-size: 0.84rem; font-weight: 800; color: var(--wa-ink); line-height: 1.3; }\n    .wa-box .wa-gtop { grid-area: top; justify-self: stretch; width: 100% !important; }\n    .wa-box .wa-gstat { grid-area: stat; display: flex; align-items: center; gap: 6px; font-size: 0.76rem; line-height: 1.4; color: var(--wa-muted); margin: 0; }\n    .wa-gstat .wa-sq { display: none; }\n    .wa-grow[data-wa-top=\"ja\"] .wa-gstat { color: var(--wa-ink); font-weight: 800; }\n    .wa-grow[data-wa-top=\"ja\"] .wa-gstat .wa-sq { display: inline-block; }\n    .wa-box .wa-genth { grid-area: enth; font-family: var(--wa-mono); font-size: 0.72rem; color: var(--wa-muted); line-height: 1.4; margin: 0; }\n    .wa-box .wa-gvor { grid-area: vor; font-size: 0.76rem; color: var(--wa-text); line-height: 1.4; margin: 0; }\n    .wa-togs { grid-area: tog; display: flex; flex-direction: column; align-items: stretch; gap: 4px; margin-top: 4px; }\n    .wa-c-steuer.is-tight .wa-togs { flex-direction: row; margin-top: 4px; }\n    .wa-box .wa-togs .wa-tog { flex: 0 0 auto; }\n    .wa-c-steuer.is-tight .wa-togs .wa-tog { flex: 1 1 0; min-width: 0; }\n\n    \/* Kontrollk\u00e4stchen als Toggle-Buttons (aria-pressed) *\/\n    .wa-box .wa-tog {\n        -webkit-appearance: none !important;\n        appearance: none !important;\n        position: relative !important;\n        display: inline-flex !important;\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        justify-content: center !important;\n        font-family: inherit !important;\n        font-size: 0.76rem !important;\n        font-weight: 700 !important;\n        line-height: 1.25 !important;\n        color: var(--wa-ink) !important;\n        background: #fff !important;\n        border: 1px solid var(--wa-border) !important;\n        border-radius: 3px !important;\n        min-height: 34px !important;\n        padding: 5px 10px 5px 31px !important;\n        margin: 0 !important;\n        cursor: pointer !important;\n        box-shadow: none !important;\n        text-transform: none !important;\n        letter-spacing: 0 !important;\n        text-align: left !important;\n        white-space: normal !important;\n        max-width: 100% !important;\n        transition: background-color 0.15s, color 0.15s, border-color 0.15s;\n    }\n    .wa-box .wa-tog::before {\n        content: \"\" !important;\n        position: absolute !important;\n        left: 9px !important;\n        top: 50% !important;\n        width: 15px !important;\n        height: 15px !important;\n        margin-top: -7.5px !important;\n        border: 1.5px solid var(--wa-muted) !important;\n        border-radius: 2px !important;\n        background: #fff !important;\n        box-sizing: border-box !important;\n    }\n    .wa-box .wa-tog[aria-pressed=\"true\"]::before { background: var(--wa-primary) !important; border-color: var(--wa-primary) !important; }\n    .wa-box .wa-tog[aria-pressed=\"true\"]::after {\n        content: \"\" !important;\n        position: absolute !important;\n        left: 14.5px !important;\n        top: 50% !important;\n        width: 4.5px !important;\n        height: 8.5px !important;\n        margin-top: -6px !important;\n        border: solid #fff !important;\n        border-width: 0 2px 2px 0 !important;\n        transform: rotate(45deg) !important;\n        box-sizing: border-box !important;\n    }\n    .wa-box .wa-tog:hover { background: #edf4f8 !important; color: var(--wa-primary-deep) !important; border-color: var(--wa-primary) !important; }\n    .wa-box .wa-tog:active { background: #e2ecf2 !important; color: var(--wa-primary-deep) !important; }\n    .wa-box .wa-tog:focus-visible { outline: 2px solid var(--wa-primary) !important; outline-offset: 2px !important; }\n    .wa-box .wa-tog.is-active { border-color: var(--wa-primary) !important; }\n    .wa-box .wa-tog:disabled,\n    .wa-box .wa-tog:disabled:hover { opacity: 0.5 !important; cursor: not-allowed !important; background: #f1f5f9 !important; color: var(--wa-muted) !important; border-color: var(--wa-border) !important; }\n    .wa-box .wa-tog.wa-tog-sm { font-size: 0.72rem !important; padding: 5px 7px 5px 26px !important; }\n    .wa-box .wa-tog.wa-tog-sm::before { left: 7px !important; width: 13px !important; height: 13px !important; margin-top: -6.5px !important; }\n    .wa-box .wa-tog.wa-tog-sm[aria-pressed=\"true\"]::after { left: 11.5px !important; width: 4px !important; height: 7.5px !important; margin-top: -5px !important; }\n\n    \/* Block \"Punkt 1015 selbst\" *\/\n    .wa-pblock { margin-top: 8px; padding-top: 9px; border-top: 1px solid var(--wa-hair); }\n    .wa-phead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 12px; margin: 0 0 6px; }\n    .wa-box .wa-pline { font-size: 0.78rem; color: var(--wa-text); margin: 0; }\n    .wa-box .wa-label { display: block; font-size: 0.76rem; font-weight: 800; color: var(--wa-ink); margin: 0 0 4px; padding: 0; }\n    .wa-seg-own { gap: 4px; }\n\n    \/* Karte Plan *\/\n    .wa-plan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }\n    .wa-goal { flex-shrink: 0; }\n    .wa-box .wa-goal-label { font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: var(--wa-muted); margin: 0 0 2px; line-height: 1.2; }\n    .wa-goal-box { border: 1px solid var(--wa-border); border-radius: 3px; background: #fbfcfd; width: 96px; height: 60px; overflow: hidden; }\n    .wa-goal-box svg { display: block; width: 96px; height: 60px; }\n    .wa-plan { border: 1px solid var(--wa-hair); border-radius: 3px; background: #fbfcfd; width: 100%; max-width: 480px; margin: 0 auto; }\n    .wa-stage:not(.is-narrow) .wa-plan { max-width: 304px; }\n    \/* Breite Plankarte: Ziel-Miniatur oben rechts neben dem Plan, spart die Kopfh\u00f6he *\/\n    .wa-c-plan.is-side { position: relative; }\n    .wa-c-plan.is-side .wa-goal { position: absolute; top: 14px; right: 15px; }\n    .wa-stage:not(.is-narrow) .wa-c-plan.is-side .wa-plan { max-width: 320px; }\n    .wa-plan svg { display: block; width: 100%; height: auto; }\n\n    \/* Karte Pr\u00fcfkette *\/\n    .wa-box .wa-chain-head { font-size: 0.84rem; font-weight: 800; color: var(--wa-ink); line-height: 1.4; margin: 0 0 10px; }\n    .wa-chain-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; }\n    .wa-chain-card.is-narrow .wa-chain-cols { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }\n    .wa-box .wa-col-title { font-size: 0.8rem; font-weight: 800; color: var(--wa-ink); margin: 0 0 4px; line-height: 1.3; }\n    .wa-steps { border-top: 1px solid var(--wa-hair); }\n    .wa-box .wa-step { position: relative; padding: 4px 6px 4px 21px; border-bottom: 1px solid var(--wa-hair); border-radius: 3px; font-size: 0.75rem; line-height: 1.4; }\n    .wa-step .wa-q, .wa-step .wa-a { display: block; }\n    .wa-chain-card.is-narrow .wa-step { display: flex; flex-wrap: wrap; column-gap: 10px; }\n    .wa-step .wa-q { color: var(--wa-text); }\n    .wa-step.is-no .wa-a { color: #475569; }\n    .wa-step.is-skip .wa-q { color: var(--wa-muted); }\n    .wa-step.is-skip .wa-a { color: var(--wa-muted); font-style: italic; }\n    .wa-box .wa-step.is-win { background: var(--wa-win); box-shadow: inset 0 0 0 1.5px var(--wa-primary); border-bottom-color: transparent; font-weight: 700; }\n    .wa-step.is-win .wa-q, .wa-step.is-win .wa-a { color: var(--wa-ink); }\n    .wa-step.is-win::before { content: \"\"; position: absolute; left: 8px; top: 9px; width: 8px; height: 8px; border-radius: 1px; background: var(--wa-primary); }\n    .wa-box .wa-end { margin-top: 6px; font-size: 0.78rem; font-weight: 800; color: var(--wa-ink); line-height: 1.4; }\n\n    \/* R\u00fcckmeldung *\/\n    .wa-box .wa-feedback {\n        grid-area: feedback;\n        min-width: 0;\n        background: #fff;\n        border: 1px solid var(--wa-border);\n        border-left: 3px solid var(--wa-primary);\n        border-radius: 0 4px 4px 0;\n        padding: 9px 14px;\n        font-size: 0.88rem;\n        line-height: 1.55;\n        color: var(--wa-ink);\n    }\n    .wa-box .wa-feedback strong { font-weight: 800; color: var(--wa-ink); }\n    .wa-box .wa-feedback.is-solved {\n        background: #f0fdf4;\n        border: 1px solid #bbf7d0;\n        border-left: 3px solid var(--wa-good);\n        color: var(--wa-text);\n    }\n    .wa-box .wa-feedback.is-solved strong { color: var(--wa-good-deep); }\n\n    \/* Fu\u00dfzeile *\/\n    .wa-box a.wa-link, .wa-box a.wa-link:visited { color: #2c4a5e !important; background: transparent !important; text-decoration: underline !important; font-weight: 700; }\n    .wa-box a.wa-link:hover, .wa-box a.wa-link:focus { color: #1e3548 !important; background: #edf4f8 !important; text-decoration: underline !important; }\n    .wa-foot { margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--wa-hair); font-size: 0.74rem; line-height: 1.55; color: var(--wa-muted); }\n    .wa-box .wa-foot p { margin: 0 0 6px; }\n    .wa-box .wa-foot p:last-child { margin-bottom: 0; }\n    .wa-foot strong { color: var(--wa-text); }\n\n    @media (max-width: 700px) {\n        .wa-header { padding: 12px 14px 11px; }\n        .wa-header-top { gap: 10px; }\n        .wa-header-icon { width: 28px; height: 28px; }\n        .wa-body { padding: 10px 8px 12px; }\n        .wa-privacy { font-size: 0.76rem; padding: 5px 10px; }\n        .wa-box .wa-task { padding: 9px 12px; }\n        .wa-card { padding: 10px 10px 11px; }\n        .wa-stage { row-gap: 10px; }\n        .wa-grow { padding: 6px 8px 7px; }\n        .wa-box .wa-box-desc { font-size: 0.8rem; }\n        .wa-box .wa-task { font-size: 0.82rem; }\n        .wa-box .wa-feedback { font-size: 0.84rem; }\n        .wa-foot { font-size: 0.72rem; line-height: 1.5; }\n        .wa-plan { max-width: 292px; }\n        .wa-pblock { margin-top: 6px; padding-top: 7px; }\n        .wa-box .wa-card-sub { margin-bottom: 6px; }\n        .wa-box .wa-note { margin-top: 4px; }\n        .wa-box .wa-civil { margin-top: 3px; }\n        .wa-box .wa-chain-head { margin-bottom: 8px; }\n        .wa-box .wa-step { padding-top: 3px; padding-bottom: 3px; }\n        .wa-box .wa-end { margin-top: 4px; }\n        .wa-box .wa-foot p { margin-bottom: 4px; }\n    }\n    @media (prefers-reduced-motion: reduce) {\n        \/* !important n\u00f6tig: die Barrierefreiheits-Regel muss jede Spezifit\u00e4t der Box schlagen. *\/\n        .wa-box * { transition: none !important; animation: none !important; }\n    }\n<\/style>\n\n<div class=\"wa-box\" data-wa-root lang=\"de\">\n    <div class=\"wa-header\">\n        <div class=\"wa-header-top\">\n            <svg class=\"wa-header-icon\" viewBox=\"0 0 36 36\" fill=\"none\" aria-hidden=\"true\">\n                <circle cx=\"18\" cy=\"18\" r=\"4.2\" stroke=\"rgba(255,255,255,0.92)\" stroke-width=\"1.8\"\/>\n                <circle cx=\"18\" cy=\"18\" r=\"1.2\" fill=\"rgba(255,255,255,0.92)\"\/>\n                <path d=\"M13.8 18 H8 V7 H4\" stroke=\"rgba(255,255,255,0.6)\" stroke-width=\"1.4\"\/>\n                <path d=\"M22.2 18 H28 V9 H32\" stroke=\"rgba(255,255,255,0.6)\" stroke-width=\"1.4\"\/>\n                <path d=\"M22.2 19.5 H26 V29 H32\" stroke=\"rgba(255,255,255,0.6)\" stroke-width=\"1.4\"\/>\n                <rect x=\"1.5\" y=\"4.5\" width=\"4\" height=\"5\" fill=\"rgba(255,255,255,0.85)\"\/>\n                <rect x=\"30.5\" y=\"6.5\" width=\"4\" height=\"5\" fill=\"rgba(255,255,255,0.85)\"\/>\n                <rect x=\"30.5\" y=\"26.5\" width=\"4\" height=\"5\" fill=\"rgba(255,255,255,0.85)\"\/>\n            <\/svg>\n            <div>\n                <h2 class=\"wa-box-title\">Wer bestimmt das Aussehen?<\/h2>\n                <div class=\"wa-box-desc\">Warum \u00fcbernimmt mein Punkt den Stil seiner Gruppe nicht? W\u00e4hl einen Fall und bring Punkt 1015 in Ordnung. Die Pr\u00fcfkette zeigt bei jedem Klick, wer entscheidet.<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"wa-body\">\n        <div class=\"wa-privacy\">L\u00e4uft komplett im Browser. Keine Daten verlassen deinen Rechner.<\/div>\n\n        <div class=\"wa-cases\">\n            <div class=\"wa-section-label\" id=\"waCaseLabel\">Fall w\u00e4hlen<\/div>\n            <div class=\"wa-cases-row\">\n                <div class=\"wa-seg\" role=\"group\" aria-labelledby=\"waCaseLabel\">\n                    <button type=\"button\" data-wa-fall=\"1\" aria-pressed=\"false\"><span class=\"wa-num\">1<\/span> Gruppenstil wirkt nicht<span class=\"wa-done\" aria-hidden=\"true\"> \u2713<\/span><span class=\"wa-srdone\"> (gel\u00f6st)<\/span><\/button>\n                    <button type=\"button\" data-wa-fall=\"2\" aria-pressed=\"false\"><span class=\"wa-num\">2<\/span> Punkt unsichtbar<span class=\"wa-done\" aria-hidden=\"true\"> \u2713<\/span><span class=\"wa-srdone\"> (gel\u00f6st)<\/span><\/button>\n                    <button type=\"button\" data-wa-fall=\"3\" aria-pressed=\"false\"><span class=\"wa-num\">3<\/span> Beschriftung fehlt<span class=\"wa-done\" aria-hidden=\"true\"> \u2713<\/span><span class=\"wa-srdone\"> (gel\u00f6st)<\/span><\/button>\n                    <button type=\"button\" data-wa-fall=\"4\" aria-pressed=\"false\"><span class=\"wa-num\">4<\/span> Alle Punkte gleich<span class=\"wa-done\" aria-hidden=\"true\"> \u2713<\/span><span class=\"wa-srdone\"> (gel\u00f6st)<\/span><\/button>\n                <\/div>\n                <button type=\"button\" class=\"wa-side wa-reset\" data-wa-reset>Fall zur\u00fccksetzen<\/button>\n            <\/div>\n        <\/div>\n\n        <div class=\"wa-task\" id=\"waTask\">\n            <p><strong id=\"waTaskQ\"><\/strong><\/p>\n            <p id=\"waTaskA\"><\/p>\n        <\/div>\n\n        <div class=\"wa-stage\" id=\"waStage\">\n\n            <!-- Karte Steuerung -->\n            <div class=\"wa-card wa-c-steuer\" id=\"waSteuer\">\n                <h3 class=\"wa-card-title\" id=\"waGroupsTitle\">Punktgruppen<\/h3>\n                <p class=\"wa-card-sub\">In der Anzeigereihenfolge, oben z\u00e4hlt zuerst. In Civil 3D: Rechtsklick auf Punktgruppen, Eigenschaften.<\/p>\n\n                <div class=\"wa-glist\" id=\"waGroups\" role=\"list\" aria-labelledby=\"waGroupsTitle\">\n                    <div class=\"wa-grow\" role=\"listitem\" data-wa-row=\"sch\" data-wa-top=\"nein\">\n                        <div class=\"wa-ghead\"><span class=\"wa-gpos\"><\/span><span class=\"wa-gname\">Sch\u00e4chte<\/span><\/div>\n                        <button type=\"button\" class=\"wa-side wa-gtop\" data-wa-act=\"top\" data-wa-gid=\"sch\" aria-label=\"Sch\u00e4chte ganz nach oben\">Ganz nach oben<\/button>\n                        <p class=\"wa-gstat\"><span class=\"wa-sq\" aria-hidden=\"true\"><\/span><span class=\"wa-gstat-t\"><\/span><\/p>\n                        <p class=\"wa-genth\">enth\u00e4lt: 1012, 1015 (Filter MH*)<\/p>\n                        <p class=\"wa-gvor\">Vorgabe: Symbol Schacht, Beschriftung Punktnummer + H\u00f6he<\/p>\n                        <div class=\"wa-togs\">\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"sch\" data-wa-prop=\"symbol\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Symbol in Sch\u00e4chte\">\u00dcberschreibung Symbol<\/button>\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"sch\" data-wa-prop=\"label\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Beschriftung in Sch\u00e4chte\">\u00dcberschreibung Beschriftung<\/button>\n                        <\/div>\n                    <\/div>\n                    <div class=\"wa-grow\" role=\"listitem\" data-wa-row=\"kei\" data-wa-top=\"nein\">\n                        <div class=\"wa-ghead\"><span class=\"wa-gpos\"><\/span><span class=\"wa-gname\">Keine Anzeige<\/span><\/div>\n                        <button type=\"button\" class=\"wa-side wa-gtop\" data-wa-act=\"top\" data-wa-gid=\"kei\" aria-label=\"Keine Anzeige ganz nach oben\">Ganz nach oben<\/button>\n                        <p class=\"wa-gstat\"><span class=\"wa-sq\" aria-hidden=\"true\"><\/span><span class=\"wa-gstat-t\"><\/span><\/p>\n                        <p class=\"wa-genth\">enth\u00e4lt: 1012, 1015 (einbezogen)<\/p>\n                        <p class=\"wa-gvor\">Vorgabe: Symbol &lt;keiner&gt;, Beschriftung &lt;keiner&gt;<\/p>\n                        <div class=\"wa-togs\">\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"kei\" data-wa-prop=\"symbol\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Symbol in Keine Anzeige\">\u00dcberschreibung Symbol<\/button>\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"kei\" data-wa-prop=\"label\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Beschriftung in Keine Anzeige\">\u00dcberschreibung Beschriftung<\/button>\n                        <\/div>\n                    <\/div>\n                    <div class=\"wa-grow\" role=\"listitem\" data-wa-row=\"all\" data-wa-top=\"nein\">\n                        <div class=\"wa-ghead\"><span class=\"wa-gpos\"><\/span><span class=\"wa-gname\">_Alle Punkte<\/span><\/div>\n                        <button type=\"button\" class=\"wa-side wa-gtop\" data-wa-act=\"top\" data-wa-gid=\"all\" aria-label=\"_Alle Punkte ganz nach oben\">Ganz nach oben<\/button>\n                        <p class=\"wa-gstat\"><span class=\"wa-sq\" aria-hidden=\"true\"><\/span><span class=\"wa-gstat-t\"><\/span><\/p>\n                        <p class=\"wa-genth\">enth\u00e4lt: alle Punkte<\/p>\n                        <p class=\"wa-gvor\">Vorgabe: Symbol Standard, Beschriftung &lt;keiner&gt;<\/p>\n                        <div class=\"wa-togs\">\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"all\" data-wa-prop=\"symbol\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Symbol in _Alle Punkte\">\u00dcberschreibung Symbol<\/button>\n                            <button type=\"button\" class=\"wa-tog wa-tog-sm\" data-wa-act=\"ovr\" data-wa-gid=\"all\" data-wa-prop=\"label\" aria-pressed=\"false\" aria-label=\"\u00dcberschreibung Beschriftung in _Alle Punkte\">\u00dcberschreibung Beschriftung<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"wa-pblock\">\n                    <div class=\"wa-phead\">\n                        <h4 class=\"wa-card-title\">Punkt 1015 selbst<\/h4>\n                        <p class=\"wa-pline\">Kurzbeschreibung MHST 7<\/p>\n                    <\/div>\n                    <span class=\"wa-label\" id=\"waOwnLabel\">Eigener Punktstil<\/span>\n                    <div class=\"wa-seg wa-seg-own\" role=\"group\" aria-labelledby=\"waOwnLabel\">\n                        <button type=\"button\" data-wa-own=\"an\" aria-pressed=\"true\">Sohlpunkt (vom Schl\u00fcssel MHST*)<\/button>\n                        <button type=\"button\" data-wa-own=\"aus\" aria-pressed=\"false\">keine eigene Zuweisung<\/button>\n                    <\/div>\n                    <p class=\"wa-note\">Den Sohlpunkt hat der Beschreibungsschl\u00fcssel beim Import am Punkt eingetragen. Einen eigenen Beschriftungsstil hat 1015 in diesem Beispiel nicht.<\/p>\n                    <p class=\"wa-civil\">In Civil 3D: Punkteditor, Spalte Punktstil; ohne eigene Zuweisung je nach Version leer oder &lt;Vorgabe&gt;.<\/p>\n                <\/div>\n            <\/div>\n\n            <!-- Karte Plan -->\n            <div class=\"wa-card wa-c-plan\" id=\"waPlanCard\">\n                <div class=\"wa-plan-head\">\n                    <div>\n                        <h3 class=\"wa-card-title\">So zeichnet Civil 3D die Punkte<\/h3>\n                        <p class=\"wa-card-sub\">Schwarz zeichnet Civil 3D, grau ist nur Orientierung.<\/p>\n                    <\/div>\n                    <div class=\"wa-goal\" aria-hidden=\"true\">\n                        <div class=\"wa-goal-label\">Ziel<\/div>\n                        <div class=\"wa-goal-box\"><svg id=\"waGoal\" viewBox=\"0 0 96 60\" focusable=\"false\"><\/svg><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"wa-plan\">\n                    <svg id=\"waPlanSvg\" viewBox=\"0 0 320 200\" role=\"img\" aria-labelledby=\"waPlanTitle\">\n                        <title id=\"waPlanTitle\">Plan mit vier Punkten.<\/title>\n                        <g aria-hidden=\"true\">\n                            <rect x=\"0\" y=\"0\" width=\"320\" height=\"200\" fill=\"#fbfcfd\"\/>\n                            <path d=\"M20 0 V200 M40 0 V200 M60 0 V200 M80 0 V200 M100 0 V200 M120 0 V200 M140 0 V200 M160 0 V200 M180 0 V200 M200 0 V200 M220 0 V200 M240 0 V200 M260 0 V200 M280 0 V200 M300 0 V200 M0 20 H320 M0 40 H320 M0 60 H320 M0 80 H320 M0 100 H320 M0 120 H320 M0 140 H320 M0 160 H320 M0 180 H320\" stroke=\"#eef2f6\" stroke-width=\"1\"\/>\n                        <\/g>\n                        <g id=\"waPlanOrient\" aria-hidden=\"true\"><\/g>\n                        <g id=\"waPlanPts\"><\/g>\n                    <\/svg>\n                <\/div>\n            <\/div>\n\n            <!-- Karte Pr\u00fcfkette -->\n            <div class=\"wa-card wa-chain-card wa-c-kette\" id=\"waChainCard\">\n                <div class=\"wa-section-label\">Pr\u00fcfkette f\u00fcr Punkt 1015<\/div>\n                <p class=\"wa-chain-head\" id=\"waChainHead\"><\/p>\n                <div class=\"wa-chain-cols\">\n                    <div class=\"wa-chain-col\" data-wa-chain=\"symbol\" data-wa-win=\"3\">\n                        <h3 class=\"wa-col-title\">Symbol (Punktstil)<\/h3>\n                        <ol class=\"wa-steps\">\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                        <\/ol>\n                        <p class=\"wa-end\"><\/p>\n                    <\/div>\n                    <div class=\"wa-chain-col\" data-wa-chain=\"label\" data-wa-win=\"3\">\n                        <h3 class=\"wa-col-title\">Beschriftung (Punktbeschriftungsstil)<\/h3>\n                        <ol class=\"wa-steps\">\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                            <li class=\"wa-step\"><span class=\"wa-q\"><\/span><span class=\"wa-a\"><\/span><\/li>\n                        <\/ol>\n                        <p class=\"wa-end\"><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- R\u00fcckmeldung -->\n            <div class=\"wa-feedback\" id=\"waFeedback\" aria-live=\"polite\" aria-atomic=\"true\" data-wa-msg=\"m8\"><\/div>\n        <\/div>\n\n        <div class=\"wa-foot\">\n            <p><strong>In Civil 3D:<\/strong> Den eigenen Punktstil tr\u00e4gt der Beschreibungsschl\u00fcssel beim Import oder beim Anwenden der Schl\u00fcssel am Punkt ein. \u00dcberschreibungen schaltest du je Gruppe auf der Registerkarte \u00dcberschreibungen, getrennt f\u00fcr Punktstil und Punktbeschriftungsstil; welcher Stil dort steht, pr\u00fcfst du am besten gleich mit. &lt;keiner&gt; wird je nach Version anders benannt. <strong>Im Beispiel:<\/strong> Der \u00dcberschreibungswert ist die Vorgabe der Gruppe, und _Alle Punkte hat keine Beschriftung. In deiner Vorlage kann beides anders sein.<\/p>\n            <p>Hintergrund im Tutorial <a class=\"wa-link\" href=\"https:\/\/cad-kompass.de\/?p=2795#darstellung\">Punktgruppen, Beschreibungsschl\u00fcssel und Darstellung<\/a>, die Fehlerbilder in der Fehlerbehebung: <a class=\"wa-link\" href=\"https:\/\/cad-kompass.de\/?p=2799#fehler-6\">Fall 6<\/a>, <a class=\"wa-link\" href=\"https:\/\/cad-kompass.de\/?p=2799#fehler-8\">Fall 8<\/a> und <a class=\"wa-link\" href=\"https:\/\/cad-kompass.de\/?p=2799#fehler-10\">Fall 10<\/a>.<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n(function () {\n    \"use strict\";\n    var ROOT = document.querySelector(\"[data-wa-root]\");\n    if (!ROOT) { return; }\n\n    \/\/ Spitze Klammern nur zur Laufzeit erzeugen (WP-Embed-Sicherheit).\n    var LT = String.fromCharCode(60);\n    var GT = String.fromCharCode(62);\n    var NONE = LT + \"keiner\" + GT;       \/\/ Stilwert, der nichts zeichnet\n    var LBL = \"Punktnummer + H\u00f6he\";      \/\/ Vorgabe-Beschriftung von Sch\u00e4chte\n    var INK = \"#1e293b\";\n    var FAINT = \"#94a3b8\";               \/\/ Eckwinkel um 1015 im Plan (hartkodiert, Safari kennt keine CSS-Variablen im SVG)\n    var ORIENT = \"#64748b\";              \/\/ Punktnummern zur Orientierung im Plan (kontrastreicher als die Eckwinkel)\n    var FONT = \"Helvetica, Arial, sans-serif\";\n    var SVGNS = \"http:\/\/www.w3.org\/2000\/svg\";\n\n    \/\/ ============ Daten (fest) ============\n    \/\/ Reihenfolge der Punkte = aufsteigende Nummer, so erscheinen sie auch in den Listen der Meldungen.\n    var POINTS = [\n        { nr: \"1012\", own: \"Schachtdeckel\", h: \"308,62\", x: 64, y: 56 },\n        { nr: \"1015\", own: \"Sohlpunkt\", h: \"309,95\", x: 150, y: 104 },\n        { nr: \"1020\", own: \"Baumsymbol\", h: \"310,15\", x: 258, y: 50 },\n        { nr: \"1031\", own: \"kleines Kreuz\", h: \"309,48\", x: 246, y: 158 }\n    ];\n    var GROUPS = {\n        sch: { name: \"Sch\u00e4chte\", members: [\"1012\", \"1015\"], vorgabe: { symbol: \"Schacht\", label: LBL } },\n        kei: { name: \"Keine Anzeige\", members: [\"1012\", \"1015\"], vorgabe: { symbol: NONE, label: NONE } },\n        all: { name: \"_Alle Punkte\", members: [\"1012\", \"1015\", \"1020\", \"1031\"], vorgabe: { symbol: \"Standard\", label: NONE } }\n    };\n    var FALLS = {\n        1: {\n            q: \"Die Gruppe Sch\u00e4chte gibt das Symbol Schacht vor. Warum zeigt Punkt 1015 trotzdem seinen Sohlpunkt?\",\n            a: \"Deine Aufgabe: Zeig Punkt 1015 mit dem Schachtsymbol, ohne seine Beschriftung zu ver\u00e4ndern.\"\n        },\n        2: {\n            q: \"Punkt 1015 ist verschwunden, obwohl er im Plan liegt. Wer blendet ihn aus?\",\n            a: \"Deine Aufgabe: Mach Symbol und Beschriftung von Punkt 1015 wieder sichtbar.\"\n        },\n        3: {\n            q: \"Das Symbol stimmt, aber Nummer und H\u00f6he fehlen. Woher kommt die leere Beschriftung?\",\n            a: \"Deine Aufgabe: Zeig neben Punkt 1015 wieder Nummer und H\u00f6he, ohne das Symbol zu ver\u00e4ndern.\"\n        },\n        4: {\n            q: \"Warum zeigen alle vier Punkte pl\u00f6tzlich dasselbe Kreuz, obwohl der Schl\u00fcssel ihnen verschiedene Symbole gegeben hat?\",\n            a: \"Deine Aufgabe: Gib allen vier Punkten wieder ihr eigenes Symbol.\"\n        }\n    };\n\n    function startState(n) {\n        var s = {\n            fall: n,\n            order: [\"sch\", \"kei\", \"all\"],\n            ovr: {\n                sch: { symbol: false, label: false },\n                kei: { symbol: true, label: true },\n                all: { symbol: false, label: false }\n            },\n            own: true\n        };\n        if (n === 2) { s.order = [\"kei\", \"sch\", \"all\"]; }\n        if (n === 3) { s.order = [\"all\", \"sch\", \"kei\"]; }\n        if (n === 4) { s.order = [\"all\", \"sch\", \"kei\"]; s.ovr.all.symbol = true; }\n        return s;\n    }\n    function copyState(s) {\n        return {\n            fall: s.fall,\n            order: s.order.slice(),\n            ovr: {\n                sch: { symbol: s.ovr.sch.symbol, label: s.ovr.sch.label },\n                kei: { symbol: s.ovr.kei.symbol, label: s.ovr.kei.label },\n                all: { symbol: s.ovr.all.symbol, label: s.ovr.all.label }\n            },\n            own: s.own\n        };\n    }\n    var state = startState(1);\n    var done = { 1: false, 2: false, 3: false, 4: false };\n\n    \/\/ ============ Hilfen ============\n    function $(id) { return ROOT.querySelector(\"#\" + id); }\n    function h(tag, cls, txt) {\n        var n = document.createElement(tag);\n        if (cls) { n.className = cls; }\n        if (typeof txt === \"string\") { n.textContent = txt; }\n        return n;\n    }\n    function sv(tag, attrs, parent) {\n        var n = document.createElementNS(SVGNS, tag);\n        Object.keys(attrs).forEach(function (k) { n.setAttribute(k, attrs[k]); });\n        if (parent) { parent.appendChild(n); }\n        return n;\n    }\n    function svText(parent, x, y, str, attrs) {\n        var base = { x: x, y: y, \"font-family\": FONT, \"font-size\": 13, fill: INK };\n        Object.keys(attrs || {}).forEach(function (k) { base[k] = attrs[k]; });\n        var t = sv(\"text\", base, parent);\n        t.textContent = str;\n        return t;\n    }\n    function clear(n) { while (n.firstChild) { n.removeChild(n.firstChild); } }\n    function setPressed(btn, on) {\n        btn.setAttribute(\"aria-pressed\", on ? \"true\" : \"false\");\n        btn.classList.toggle(\"is-active\", on);\n    }\n    function joinList(items) {\n        if (items.length === 1) { return items[0]; }\n        return items.slice(0, -1).join(\", \") + \" und \" + items[items.length - 1];\n    }\n    function B(t) { return { b: t }; }\n\n    \/\/ ============ Modell ============\n    \/\/ Stufe 1: \u00dcberschreibung der obersten Gruppe, Stufe 2: eigener Stil am Punkt, Stufe 3: Vorgabe der obersten Gruppe.\n    function ownStyle(st, pt) {\n        if (pt.nr === \"1015\") { return st.own ? pt.own : null; }\n        return pt.own;\n    }\n    function topOf(st, nr) {\n        var i;\n        for (i = 0; i < st.order.length; i += 1) {\n            if (GROUPS[st.order[i]].members.indexOf(nr) >= 0) { return st.order[i]; }\n        }\n        return st.order[0];\n    }\n    function resolvePoint(st, pt) {\n        var g = topOf(st, pt.nr);\n        var gv = GROUPS[g].vorgabe;\n        var sym;\n        var lab;\n        if (st.ovr[g].symbol) {\n            sym = { val: gv.symbol, stage: 1 };\n        } else {\n            var o = ownStyle(st, pt);\n            sym = o === null ? { val: gv.symbol, stage: 3 } : { val: o, stage: 2 };\n        }\n        lab = st.ovr[g].label ? { val: gv.label, stage: 1 } : { val: gv.label, stage: 3 };\n        return { g: g, sym: sym, lab: lab };\n    }\n    function resolveAll(st) {\n        var out = {};\n        POINTS.forEach(function (pt) { out[pt.nr] = resolvePoint(st, pt); });\n        return out;\n    }\n    function lookKey(r) { return r.sym.val + \"|\" + r.lab.val; }\n    function sigKey(r) { return [r.g, r.sym.val, r.sym.stage, r.lab.val, r.lab.stage].join(\"|\"); }\n    function isKeyStyle(ra, pt) { return ra[pt.nr].sym.val === pt.own; }\n\n    \/\/ ============ Gel\u00f6st-Pr\u00fcfung ============\n    function solvedKey(fall, ra) {\n        var r = ra[\"1015\"];\n        if (fall === 1) {\n            if (r.sym.val === \"Schacht\") {\n                if (r.lab.val === LBL) { return r.sym.stage === 1 ? \"geloest-1a\" : \"geloest-1b\"; }\n            }\n            return null;\n        }\n        if (fall === 2) {\n            if (r.sym.val !== NONE) {\n                if (r.lab.val !== NONE) { return \"geloest-2\"; }\n            }\n            return null;\n        }\n        if (fall === 3) {\n            if (r.lab.val === LBL) {\n                if (r.sym.val === \"Sohlpunkt\") { return r.lab.stage === 1 ? \"geloest-3b\" : \"geloest-3a\"; }\n            }\n            return null;\n        }\n        if (fall === 4) {\n            return POINTS.every(function (pt) { return isKeyStyle(ra, pt); }) ? \"geloest-4\" : null;\n        }\n        return null;\n    }\n\n    \/\/ ============ Texte der R\u00fcckmeldung ============\n    var SOLVED = {\n        \"geloest-1a\": [B(\"Gel\u00f6st.\"), \" Die \u00dcberschreibung von Sch\u00e4chte steht in der Pr\u00fcfkette vor dem eigenen Stil. Sie gilt f\u00fcr jeden Punkt, f\u00fcr den Sch\u00e4chte die oberste Gruppe ist, darum zeigt auch 1012 jetzt das Schachtsymbol. \", B(\"Merksatz:\"), \" Der Vorgabestil einer Gruppe ist nur ein R\u00fcckfallwert. Gegen einen eigenen Stil setzt sich die Gruppe nur mit \u00dcberschreibung durch.\"],\n        \"geloest-1b\": [B(\"Gel\u00f6st.\"), \" Ohne eigenen Stil f\u00e4llt 1015 auf die Vorgabe von Sch\u00e4chte zur\u00fcck. Das gilt nur f\u00fcr diesen Punkt. Wendest du die Beschreibungsschl\u00fcssel erneut an, kann der Schl\u00fcssel den Sohlpunkt wieder eintragen. \", B(\"Merksatz:\"), \" Der Vorgabestil einer Gruppe ist nur ein R\u00fcckfallwert f\u00fcr Punkte ohne eigenen Stil.\"],\n        \"geloest-2\": [B(\"Gel\u00f6st.\"), \" Sch\u00e4chte steht jetzt \u00fcber Keine Anzeige und ist die oberste Gruppe von 1015. Die Gruppe Keine Anzeige hat auf ihn keinen Einfluss mehr, auch mit \u00dcberschreibung. \", B(\"Merksatz:\"), \" Es z\u00e4hlt nur die oberste Gruppe, in der ein Punkt steht. Eine Gruppe wie Keine Anzeige geh\u00f6rt darum nur f\u00fcr Sonderpl\u00e4ne nach oben.\"],\n        \"geloest-3a\": [B(\"Gel\u00f6st.\"), \" Sch\u00e4chte steht wieder \u00fcber _Alle Punkte und ist damit die oberste Gruppe von 1015. Ihre Vorgabe liefert Nummer und H\u00f6he, weil 1015 keinen eigenen Beschriftungsstil hat. Punkten, die nur in _Alle Punkte stehen, hilft das nicht; f\u00fcr sie m\u00fcsstest du die Vorgabe von _Alle Punkte \u00e4ndern. \", B(\"Merksatz:\"), \" Sollen Fachgruppen die Darstellung bestimmen, m\u00fcssen sie \u00fcber _Alle Punkte stehen.\"],\n        \"geloest-3b\": [B(\"Gel\u00f6st.\"), \" Sch\u00e4chte steht wieder \u00fcber _Alle Punkte und ist damit die oberste Gruppe von 1015. Ihre \u00dcberschreibung liefert Nummer und H\u00f6he. Punkten, die nur in _Alle Punkte stehen, hilft das nicht; f\u00fcr sie m\u00fcsstest du die Vorgabe von _Alle Punkte \u00e4ndern. \", B(\"Merksatz:\"), \" Sollen Fachgruppen die Darstellung bestimmen, m\u00fcssen sie \u00fcber _Alle Punkte stehen.\"],\n        \"geloest-4\": [B(\"Gel\u00f6st.\"), \" Ohne die \u00dcberschreibung fragt die Pr\u00fcfkette wieder nach dem eigenen Stil, und den hat jeder der vier Punkte vom Schl\u00fcssel. \", B(\"Merksatz:\"), \" Eine \u00dcberschreibung in _Alle Punkte trifft jeden Punkt, f\u00fcr den keine andere Gruppe dar\u00fcber steht. Eine vergessene \u00dcberschreibung ist ein h\u00e4ufiger Grund f\u00fcr lauter gleiche Punkte.\"]\n    };\n    var M8 = [\"\u00c4ndere eine Einstellung an den Gruppen oder am Punkt. Die Pr\u00fcfkette zeigt sofort, welche Stufe f\u00fcr 1015 entscheidet.\"];\n\n    \/\/ forHim: true in Meldung m3 (dort steht 1015 schon im Satz davor, darum \"f\u00fcr ihn\")\n    function reasonFor(info, ra, forHim) {\n        var r = ra[\"1015\"];\n        if (info.type === \"ovr\") {\n            if (info.gid !== r.g) {\n                return \"die Gruppe \" + GROUPS[info.gid].name + (forHim ? \" f\u00fcr ihn\" : \" f\u00fcr 1015\") + \" nicht die oberste ist. \u00dcberschreibungen tieferer Gruppen wirken nicht\";\n            }\n        }\n        if (info.type === \"own\") {\n            if (info.changed) {\n                if (r.sym.stage === 1) {\n                    return \"die \u00dcberschreibung von \" + GROUPS[r.g].name + \" in der Pr\u00fcfkette vor dem eigenen Stil steht\";\n                }\n            }\n        }\n        return \"f\u00fcr 1015 weiter dieselbe Stufe entscheidet\";\n    }\n    function msg(key, text) { return { key: key, parts: [text], solved: false }; }\n\n    \/\/ Unerf\u00fclltes Kriterium\n    function unmetMessage(fall, ra, st) {\n        var r = ra[\"1015\"];\n        if (fall === 1) {\n            if (r.sym.val !== \"Schacht\") { return \"Noch nicht gel\u00f6st: Punkt 1015 zeigt noch kein Schachtsymbol.\"; }\n            return \"Noch nicht gel\u00f6st: Die Beschriftung von 1015 hat sich ver\u00e4ndert. Sie soll Nummer und H\u00f6he bleiben.\";\n        }\n        if (fall === 2) {\n            if (r.sym.val === NONE) { return \"Noch nicht gel\u00f6st: Das Symbol von 1015 ist noch unsichtbar.\"; }\n            return \"Noch nicht gel\u00f6st: Die Beschriftung von 1015 ist noch unsichtbar.\";\n        }\n        if (fall === 3) {\n            if (r.lab.val !== LBL) { return \"Noch nicht gel\u00f6st: Nummer und H\u00f6he fehlen noch.\"; }\n            return \"Noch nicht gel\u00f6st: Das Symbol von 1015 hat sich ver\u00e4ndert. Es soll der Sohlpunkt bleiben.\";\n        }\n        var miss = POINTS.filter(function (pt) { return !isKeyStyle(ra, pt); }).map(function (pt) { return pt.nr; });\n        var txt = \"Noch nicht gel\u00f6st: \" + joinList(miss) + (miss.length === 1 ? \" zeigt noch nicht sein eigenes Symbol.\" : \" zeigen noch nicht ihr eigenes Symbol.\");\n        if (miss.indexOf(\"1015\") >= 0) {\n            if (!st.own) { txt += \" Punkt 1015 hat gerade keine eigene Zuweisung.\"; }\n        }\n        return txt;\n    }\n\n    \/\/ Punkte, deren Look (Symbol und Beschriftung) sich durch den Klick ge\u00e4ndert hat\n    function changedPoints(rb, ra) {\n        var out = [];\n        POINTS.forEach(function (pt) {\n            if (lookKey(rb[pt.nr]) !== lookKey(ra[pt.nr])) { out.push(pt.nr); }\n        });\n        return out;\n    }\n    \/\/ m2 und m3: die Signatur von 1015 ist unver\u00e4ndert, sonst null.\n    function noEffectMsg(rb, ra, info) {\n        if (sigKey(rb[\"1015\"]) !== sigKey(ra[\"1015\"])) { return null; }\n        var changed = changedPoints(rb, ra);\n        if (changed.length === 0) {\n            return msg(\"m2\", \"Dein letzter Klick hat an der Darstellung nichts ge\u00e4ndert, weil \" + reasonFor(info, ra, false) + \".\");\n        }\n        var tail = \".\";\n        if (info.type === \"ovr\") {\n            var allTop = changed.every(function (nr) { return ra[nr].g === info.gid; });\n            if (allTop) { tail = \": F\u00fcr sie ist \" + GROUPS[info.gid].name + \" die oberste Gruppe.\"; }\n        }\n        return msg(\"m3\", \"F\u00fcr Punkt 1015 hat dein letzter Klick an der Darstellung nichts ge\u00e4ndert, weil \" + reasonFor(info, ra, true) + \". F\u00fcr \" + joinList(changed) + \" schon\" + tail);\n    }\n    \/\/ m4: 1015 sieht gleich aus, nur die Quelle hat gewechselt, und kein anderer Punkt hat seinen Look ge\u00e4ndert.\n    \/\/ Wird erst nach noEffectMsg gefragt, die Signatur von 1015 ist hier also schon anders.\n    function sourceMsg(rb, ra) {\n        if (lookKey(rb[\"1015\"]) === lookKey(ra[\"1015\"])) {\n            if (changedPoints(rb, ra).length === 0) {\n                return msg(\"m4\", \"Im Plan sieht Punkt 1015 gleich aus, nur die Quelle hat gewechselt. Die Pr\u00fcfkette zeigt, welche Stufe jetzt entscheidet.\");\n            }\n        }\n        return null;\n    }\n    \/\/ Fall war schon vor dem Klick gel\u00f6st und bleibt es: \"Weiter gel\u00f6st.\" plus die Aktionsmeldung m2, m3 oder m4.\n    function weiterMsg(rb, ra, info) {\n        var m = noEffectMsg(rb, ra, info);\n        if (m === null) { m = sourceMsg(rb, ra); }\n        if (m === null) {\n            return { key: \"weiter\", parts: [B(\"Weiter gel\u00f6st.\"), \" Die Pr\u00fcfkette zeigt, welche Stufe jetzt entscheidet.\"], solved: true };\n        }\n        return { key: \"weiter-\" + m.key, parts: [B(\"Weiter gel\u00f6st.\"), \" \" + m.parts[0]], solved: true };\n    }\n\n    \/\/ Meldungspriorit\u00e4t: gel\u00f6st (oder weiter gel\u00f6st), m2, m3, m5, m4, m6, m7.\n    function evaluate(before, after, info) {\n        var rb = resolveAll(before);\n        var ra = resolveAll(after);\n        var r = ra[\"1015\"];\n        var key = solvedKey(after.fall, ra);\n        if (key !== null) {\n            if (solvedKey(before.fall, rb) !== null) { return weiterMsg(rb, ra, info); }\n            return { key: key, parts: SOLVED[key], solved: true };\n        }\n\n        var m = noEffectMsg(rb, ra, info);\n        if (m !== null) { return m; }\n\n        var gName = GROUPS[r.g].name;\n        if (after.fall === 2) {\n            if (r.sym.stage === 2) {\n                if (r.lab.val === NONE) {\n                    if (r.lab.stage === 1) {\n                        return msg(\"m5a\", \"Halb geschafft: Das Symbol ist zur\u00fcck, weil 1015 einen eigenen Punktstil hat. Die Beschriftung blendet die \u00dcberschreibung von \" + gName + \" weiter aus.\");\n                    }\n                    return msg(\"m5b\", \"Halb geschafft: Das Symbol ist zur\u00fcck, weil 1015 einen eigenen Punktstil hat. Einen eigenen Beschriftungsstil hat er nicht, darum gilt die Vorgabe von \" + gName + \", und die zeichnet nichts.\");\n                }\n            }\n        }\n        m = sourceMsg(rb, ra);\n        if (m !== null) { return m; }\n        if (after.fall === 4) {\n            if (isKeyStyle(ra, POINTS[0])) {\n                if (isKeyStyle(ra, POINTS[1])) {\n                    if (!isKeyStyle(ra, POINTS[2])) {\n                        if (!isKeyStyle(ra, POINTS[3])) {\n                            return msg(\"m6\", \"Halb geschafft: F\u00fcr 1012 und 1015 ist jetzt \" + gName + \" die oberste Gruppe. 1020 und 1031 stehen nur in _Alle Punkte, f\u00fcr sie gilt deren \u00dcberschreibung weiter.\");\n                        }\n                    }\n                }\n            }\n        }\n        return msg(\"m7\", unmetMessage(after.fall, ra, after));\n    }\n\n    \/\/ ============ Symbole im Plan ============\n    function sw(sc) { return Math.max(1, 0.95 * sc + 0.1); }\n    function ring(g, x, y, r, sc) { sv(\"circle\", { cx: x, cy: y, r: r * sc, fill: \"none\", stroke: INK, \"stroke-width\": sw(sc) }, g); }\n    function seg(g, x1, y1, x2, y2, sc) { sv(\"line\", { x1: x1, y1: y1, x2: x2, y2: y2, stroke: INK, \"stroke-width\": sw(sc), \"stroke-linecap\": \"round\" }, g); }\n    var DRAW = {\n        \"Sohlpunkt\": function (g, x, y, sc) { ring(g, x, y, 6, sc); sv(\"circle\", { cx: x, cy: y, r: 1.5 * sc, fill: INK }, g); },\n        \"Schachtdeckel\": function (g, x, y, sc) { ring(g, x, y, 7, sc); ring(g, x, y, 4, sc); },\n        \"Schacht\": function (g, x, y, sc) {\n            ring(g, x, y, 7, sc);\n            ring(g, x, y, 4, sc);\n            seg(g, x - 7 * sc, y, x + 7 * sc, y, sc);\n            seg(g, x, y - 7 * sc, x, y + 7 * sc, sc);\n        },\n        \"Baumsymbol\": function (g, x, y, sc) {\n            var k;\n            ring(g, x, y, 4.5, sc);\n            for (k = 0; k < 6; k += 1) {\n                var w = k * Math.PI \/ 3;\n                seg(g, x + Math.cos(w) * 4.5 * sc, y + Math.sin(w) * 4.5 * sc, x + Math.cos(w) * 8 * sc, y + Math.sin(w) * 8 * sc, sc);\n            }\n        },\n        \"kleines Kreuz\": function (g, x, y, sc) { var a = 3.5 * sc; seg(g, x - a, y, x + a, y, sc); seg(g, x, y - a, x, y + a, sc); },\n        \"Standard\": function (g, x, y, sc) { var a = 7 * sc; seg(g, x - a, y, x + a, y, sc); seg(g, x, y - a, x, y + a, sc); }\n    };\n    var PLAN_SC = 1.6;\n\n    \/\/ ============ DOM-Referenzen ============\n    var ROWS = {};\n    var FALLBTN = {};\n    var CHAIN = {};\n    var FB = $(\"waFeedback\");\n\n    function bindRefs() {\n        Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-row]\"), function (el) {\n            var id = el.getAttribute(\"data-wa-row\");\n            ROWS[id] = {\n                el: el,\n                pos: el.querySelector(\".wa-gpos\"),\n                st: el.querySelector(\".wa-gstat-t\"),\n                top: el.querySelector(\"[data-wa-act='top']\"),\n                oS: el.querySelector(\"[data-wa-prop='symbol']\"),\n                oL: el.querySelector(\"[data-wa-prop='label']\")\n            };\n        });\n        Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-fall]\"), function (b) {\n            FALLBTN[b.getAttribute(\"data-wa-fall\")] = b;\n        });\n        [\"symbol\", \"label\"].forEach(function (prop) {\n            var col = ROOT.querySelector(\"[data-wa-chain='\" + prop + \"']\");\n            var steps = Array.prototype.map.call(col.querySelectorAll(\".wa-step\"), function (li) {\n                return { li: li, q: li.querySelector(\".wa-q\"), a: li.querySelector(\".wa-a\") };\n            });\n            CHAIN[prop] = { col: col, steps: steps, end: col.querySelector(\".wa-end\") };\n        });\n    }\n\n    \/\/ ============ Rendern ============\n    function wert(v) { return v === NONE ? NONE + \", zeichnet nichts\" : v; }\n\n    function renderFall() {\n        [1, 2, 3, 4].forEach(function (n) {\n            var b = FALLBTN[String(n)];\n            setPressed(b, state.fall === n);\n            b.classList.toggle(\"is-done\", done[n]);\n        });\n        $(\"waTaskQ\").textContent = FALLS[state.fall].q;\n        $(\"waTaskA\").textContent = FALLS[state.fall].a;\n    }\n    function renderRows(ra) {\n        var list = $(\"waGroups\");\n        var r = ra[\"1015\"];\n        var i;\n        for (i = 0; i < state.order.length; i += 1) {\n            var want = ROWS[state.order[i]].el;\n            if (list.children[i] !== want) { list.insertBefore(want, list.children[i] || null); }\n        }\n        state.order.forEach(function (id, idx) {\n            var R = ROWS[id];\n            var top = id === r.g;\n            R.el.setAttribute(\"data-wa-top\", top ? \"ja\" : \"nein\");\n            R.pos.textContent = String(idx + 1);\n            R.st.textContent = top ? \"f\u00fcr 1015 ma\u00dfgeblich\" : \"steht tiefer, f\u00fcr 1015 ohne Wirkung\";\n            setPressed(R.oS, state.ovr[id].symbol);\n            setPressed(R.oL, state.ovr[id].label);\n            R.top.disabled = idx === 0;\n        });\n        Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-own]\"), function (b) {\n            setPressed(b, (b.getAttribute(\"data-wa-own\") === \"an\") === state.own);\n        });\n    }\n    function renderPlan(ra) {\n        var gp = $(\"waPlanPts\");\n        var go = $(\"waPlanOrient\");\n        clear(gp);\n        clear(go);\n        POINTS.forEach(function (pt) {\n            var r = ra[pt.nr];\n            var symName = r.sym.val === NONE ? \"keiner\" : r.sym.val;\n            var labName = r.lab.val === NONE ? \"keiner\" : \"nrh\";\n            \/\/ Orientierung in Grau: Nummer unter jedem Punkt, um 1015 vier Eckwinkel\n            svText(go, pt.x, pt.y + 26, pt.nr, { \"font-size\": 10, \"text-anchor\": \"middle\", fill: ORIENT });\n            if (pt.nr === \"1015\") {\n                [[-1, -1], [1, -1], [-1, 1], [1, 1]].forEach(function (s) {\n                    var cx = pt.x + s[0] * 20;\n                    var cy = pt.y + s[1] * 20;\n                    sv(\"path\", { d: \"M\" + (cx - s[0] * 6) + \" \" + cy + \" H\" + cx + \" V\" + (cy - s[1] * 6), fill: \"none\", stroke: FAINT, \"stroke-width\": 1 }, go);\n                });\n            }\n            \/\/ Was Civil 3D zeichnet\n            var g = sv(\"g\", { \"data-wa-pt\": pt.nr, \"data-wa-sym\": symName, \"data-wa-lab\": labName }, gp);\n            if (r.sym.val !== NONE) { DRAW[r.sym.val](g, pt.x, pt.y, PLAN_SC); }\n            if (r.lab.val === LBL) {\n                svText(g, pt.x + 20, pt.y - 2, pt.nr, { \"font-weight\": 700 });\n                svText(g, pt.x + 20, pt.y + 12, pt.h, {});\n            }\n        });\n        var r15 = ra[\"1015\"];\n        $(\"waPlanTitle\").textContent = \"Plan mit vier Punkten. Punkt 1015: Symbol \" + r15.sym.val + \", Beschriftung \" + r15.lab.val + \".\";\n    }\n    function renderGoal() {\n        var s = $(\"waGoal\");\n        clear(s);\n        var n = state.fall;\n        if (n === 4) {\n            POINTS.forEach(function (pt, i) { DRAW[pt.own](s, 13 + i * 23.3, 22, 0.8); });\n            svText(s, 48, 50, \"alle verschieden\", { \"font-size\": 9.5, \"text-anchor\": \"middle\" });\n            return;\n        }\n        DRAW[n === 1 ? \"Schacht\" : \"Sohlpunkt\"](s, 21, 30, 1.2);\n        svText(s, 40, 28, \"1015\", { \"font-size\": 10, \"font-weight\": 700 });\n        svText(s, 40, 40, \"309,95\", { \"font-size\": 10 });\n    }\n    function fillCol(prop, res, gname, ovrOn, vorgabe, ownName) {\n        var C = CHAIN[prop];\n        var s = res.stage;\n        var rows = [\n            { q: \"1 \u00dcberschreibung von \" + gname + \" an?\", a: ovrOn ? \"ja: \" + wert(vorgabe) : \"nein, weiter\", k: s === 1 ? \"win\" : \"no\" },\n            { q: \"2 Eigener Stil am Punkt?\", a: \"wird nicht mehr gepr\u00fcft\", k: \"skip\" },\n            { q: \"3 Vorgabe von \" + gname, a: s === 3 ? wert(vorgabe) : \"wird nicht mehr gepr\u00fcft\", k: s === 3 ? \"win\" : \"skip\" }\n        ];\n        if (s === 2) { rows[1] = { q: rows[1].q, a: \"ja: \" + ownName, k: \"win\" }; }\n        if (s === 3) { rows[1] = { q: rows[1].q, a: \"nein, weiter\", k: \"no\" }; }\n        rows.forEach(function (row, i) {\n            var S = C.steps[i];\n            S.q.textContent = row.q;\n            S.a.textContent = row.a;\n            S.li.className = \"wa-step is-\" + row.k;\n        });\n        C.col.setAttribute(\"data-wa-win\", String(s));\n        C.end.textContent = \"Ergebnis: \" + (res.val === NONE ? \"nichts sichtbar\" : res.val);\n    }\n    function renderChain(ra) {\n        var r = ra[\"1015\"];\n        var G = GROUPS[r.g];\n        $(\"waChainHead\").textContent = \"Ma\u00dfgeblich f\u00fcr Punkt 1015: \" + G.name + \", die oberste Gruppe, in der er steht.\";\n        fillCol(\"symbol\", r.sym, G.name, state.ovr[r.g].symbol, G.vorgabe.symbol, POINTS[1].own);\n        fillCol(\"label\", r.lab, G.name, state.ovr[r.g].label, G.vorgabe.label, null);\n    }\n    function renderMsg(m) {\n        FB.setAttribute(\"data-wa-msg\", m.key);\n        FB.classList.toggle(\"is-solved\", m.solved);\n        clear(FB);\n        m.parts.forEach(function (p) {\n            if (typeof p === \"string\") { FB.appendChild(document.createTextNode(p)); }\n            else { FB.appendChild(h(\"strong\", \"\", p.b)); }\n        });\n    }\n    function render() {\n        var ra = resolveAll(state);\n        renderFall();\n        renderRows(ra);\n        renderPlan(ra);\n        renderChain(ra);\n    }\n\n    \/\/ ============ Aktionen ============\n    function loadFall(n) {\n        state = startState(n);\n        render();\n        renderGoal();\n        renderMsg({ key: \"m8\", parts: M8, solved: false });\n    }\n    function act(info, mutate) {\n        var before = copyState(state);\n        mutate();\n        if (info.type === \"own\") { info.changed = before.own !== state.own; }\n        var m = evaluate(before, state, info);\n        if (m.solved) { done[state.fall] = true; }\n        render();\n        renderMsg(m);\n    }\n    function moveTop(id) {\n        state.order = [id].concat(state.order.filter(function (x) { return x !== id; }));\n    }\n\n    \/\/ ============ Ereignisse ============\n    Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-fall]\"), function (b) {\n        b.addEventListener(\"click\", function () { loadFall(parseInt(b.getAttribute(\"data-wa-fall\"), 10)); });\n    });\n    ROOT.querySelector(\"[data-wa-reset]\").addEventListener(\"click\", function () { loadFall(state.fall); });\n    Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-act]\"), function (b) {\n        b.addEventListener(\"click\", function () {\n            if (b.disabled) { return; }\n            var a = b.getAttribute(\"data-wa-act\");\n            var gid = b.getAttribute(\"data-wa-gid\");\n            if (a === \"ovr\") {\n                var prop = b.getAttribute(\"data-wa-prop\");\n                act({ type: \"ovr\", gid: gid, prop: prop }, function () { state.ovr[gid][prop] = !state.ovr[gid][prop]; });\n            }\n            if (a === \"top\") {\n                act({ type: \"top\", gid: gid }, function () { moveTop(gid); });\n                \/\/ Der Knopf ist jetzt gesperrt: Fokus auf die \u00dcberschreibung Symbol derselben Gruppe.\n                ROWS[gid].oS.focus();\n            }\n        });\n    });\n    Array.prototype.forEach.call(ROOT.querySelectorAll(\"[data-wa-own]\"), function (b) {\n        b.addEventListener(\"click\", function () {\n            var want = b.getAttribute(\"data-wa-own\") === \"an\";\n            act({ type: \"own\" }, function () { state.own = want; });\n        });\n    });\n\n    \/\/ ============ Layout-Klassen ============\n    function layoutPass() {\n        var stage = $(\"waStage\");\n        var nar = ROOT.getBoundingClientRect().width < 860;\n        if (stage.classList.contains(\"is-narrow\") !== nar) { stage.classList.toggle(\"is-narrow\", nar); }\n        var card = $(\"waChainCard\");\n        var cn = card.getBoundingClientRect().width < 520;\n        if (card.classList.contains(\"is-narrow\") !== cn) { card.classList.toggle(\"is-narrow\", cn); }\n        var pc = $(\"waPlanCard\");\n        var side = pc.getBoundingClientRect().width >= 560;\n        if (pc.classList.contains(\"is-side\") !== side) { pc.classList.toggle(\"is-side\", side); }\n        var sc = $(\"waSteuer\");\n        var tight = sc.getBoundingClientRect().width < 500;\n        if (sc.classList.contains(\"is-tight\") !== tight) { sc.classList.toggle(\"is-tight\", tight); }\n    }\n\n    \/\/ ============ Start ============\n    function fallFromHash() {\n        var hs = String(window.location.hash);\n        var n = 0;\n        [1, 2, 3, 4].forEach(function (k) { if (hs === \"#wa-fall-\" + k) { n = k; } });\n        return n;\n    }\n    bindRefs();\n    layoutPass();\n    loadFall(fallFromHash() || 1);\n    if (window.ResizeObserver) {\n        var ro = new window.ResizeObserver(function () { layoutPass(); });\n        ro.observe(ROOT);\n        ro.observe($(\"waChainCard\"));\n        ro.observe($(\"waSteuer\"));\n        ro.observe($(\"waPlanCard\"));\n    }\n    window.addEventListener(\"resize\", layoutPass);\n    window.addEventListener(\"load\", layoutPass);\n    window.addEventListener(\"hashchange\", function () {\n        var n = fallFromHash();\n        if (n) { loadFall(n); }\n    });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Wer bestimmt das Aussehen? Warum \u00fcbernimmt mein Punkt den Stil seiner Gruppe nicht? W\u00e4hl einen Fall und bring Punkt 1015 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","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":""},"categories":[56],"tags":[],"class_list":["post-2802","post","type-post","status-publish","format-standard","hentry","category-punkte"],"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":"Wer bestimmt das Aussehen? Warum \u00fcbernimmt mein Punkt den Stil seiner Gruppe nicht? W\u00e4hl einen Fall und bring Punkt 1015 [&hellip;]","_links":{"self":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"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=2802"}],"version-history":[{"count":3,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2802\/revisions"}],"predecessor-version":[{"id":2814,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2802\/revisions\/2814"}],"wp:attachment":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}