<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>checkdich</title>
	<atom:link href="https://checkdich.at/feed/" rel="self" type="application/rss+xml" />
	<link>https://checkdich.at</link>
	<description></description>
	<lastBuildDate>Fri, 01 May 2026 21:32:11 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://checkdich.at/wp-content/uploads/2026/04/favicon-150x150.png</url>
	<title>checkdich</title>
	<link>https://checkdich.at</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Habe ich psychopathische Züge?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/habe-ich-psychopathische-zuege-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:29:49 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1936</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1936">.elementor-1936 .elementor-element.elementor-element-f930bd9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1936" class="elementor elementor-1936" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-f930bd9 e-flex e-con-boxed e-con e-parent" data-id="f930bd9" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-460086e elementor-widget elementor-widget-html" data-id="460086e" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Habe ich psychopathische Züge?",
  intro: "Manche Verhaltensmuster wirken nach außen kühl, berechnend oder wenig empathisch. Hier bekommst du eine Einschätzung, ob und wie stark solche Tendenzen bei dir auftreten.",
  testType: "risk",
questions: [
  {
    text: "Wenn dich jemand nach einem Streit später darauf anspricht, dass du ihn verletzt hast, bleibst du innerlich eher kühl und denkst dir, dass die Person übertreibt.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du in einem Gespräch etwas willst (z. B. Zustimmung, Hilfe oder einen Vorteil), lässt du bewusst Infos weg oder stellst Dinge so dar, dass sie für dich günstiger wirken.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn es klare Regeln gibt (z. B. im Job, im Straßenverkehr oder in Abmachungen), gehst du darüber hinweg, sobald du glaubst, dass dich niemand dabei erwischt.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du in einer Runde merkst, dass es ruhig oder angespannt wird, bringst du gezielt provozierende Aussagen oder spitze Kommentare ein, um Reaktionen bei anderen auszulösen.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Nach einem Streit denkst du eher darüber nach, ob dir daraus Nachteile entstehen könnten, als darüber, wie es der anderen Person jetzt geht.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du zu jemandem besonders freundlich oder interessiert bist, hängt das oft damit zusammen, dass du dir davon konkret etwas erhoffst (z. B. Unterstützung, Vorteile, Zugang).",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn dich jemand kritisiert (z. B. in der Arbeit oder Beziehung), lenkst du das Gespräch schnell so, dass eher die andere Person im Fokus steht.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn jemand dir von einem Problem erzählt, schaltest du innerlich ab, sobald klar ist, dass du daraus nichts für dich ziehen kannst.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
 {
  text: "Wenn im Team oder in einer Gruppe entschieden wird (z. B. Aufgabenverteilung, Termine), setzt du dich eher für die Lösung ein, die dir persönlich am meisten bringt, auch wenn andere dadurch mehr Aufwand haben.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
  {
    text: "Wenn du bei einem Fehler ertappt wirst, erklärst du die Situation eher geschickt um oder wechselst das Thema, statt direkt dazu zu stehen.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du in Diskussionen oder Gruppen merkst, dass du die Stimmung oder Entscheidungen beeinflussen kannst, nutzt du das gezielt, um andere in eine bestimmte Richtung zu lenken.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn ein Kontakt dir keinen klaren Nutzen mehr bringt (z. B. Freundschaft, Bekanntschaft), reduzierst du den Kontakt deutlich oder beendest ihn ohne großes Nachdenken.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  }
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Wenig Hinweise auf psychopathische Züge",
      subtitle: "In deinem Antwortmuster zeigen sich kaum Anzeichen für auffällige Kälte, Manipulation oder ausgeprägte Rücksichtslosigkeit.",
      text1: "Dein Ergebnis spricht eher dafür, dass du im Alltag nicht über Distanz, instrumentelles Verhalten oder fehlende Anteilnahme funktionierst. Einzelne harte Reaktionen können vorkommen, ohne dass daraus gleich ein stabiles Muster wird.",
      text2: "Wichtig ist trotzdem der Unterschied zwischen situativem Stress und wiederkehrendem Stil. Gerade unter Druck können Menschen kühler, impulsiver oder egoistischer wirken, ohne dass dahinter ein ausgeprägtes problematisches Muster steckt. Entscheidend ist, ob solche Verhaltensweisen selten bleiben oder sich quer durch Beziehungen und Situationen ziehen.",
      advice: [
        "Achte darauf, wie du in Konflikten mit Schuld, Verantwortung und Grenzen umgehst.",
        "Nimm Rückmeldungen aus Beziehungen ernst, auch wenn du dich selbst eher unproblematisch erlebst.",
        "Beobachte, ob Kälte oder Härte bei dir nur unter Stress auftauchen oder zu einem festen Stil werden."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
mid: {
  badge: "Stage 1",
  title: "Erste Hinweise auf  auffällige Tendenzen",
  subtitle: "Deine Antworten zeigen im unteren Bereich erste Anzeichen dafür, dass in manchen Situationen eher kühle, distanzierte oder nutzenorientierte Reaktionen auftreten.",
  text1: "Dieses Ergebnis liegt noch im unteren Bereich und bedeutet nicht, dass bei dir ein stark ausgeprägtes problematisches Muster vorliegt. Es zeigt eher, dass in einzelnen Situationen Reaktionen vorkommen können, bei denen Mitgefühl, Rücksicht oder Offenheit etwas schneller in den Hintergrund geraten.",
  text2: "Wichtig ist hier vor allem, ob solche Reaktionen selten bleiben oder ob sie sich in verschiedenen Bereichen deines Alltags wiederholen. Hier geht es eher um erste Hinweise als um eine klare oder stark ausgeprägte Tendenz.",
  advice: [
    "Beobachte, in welchen Situationen du eher kühl, abwehrend oder stark nutzenorientiert reagierst.",
    "Achte darauf, ob solche Reaktionen bei dir Ausnahmen bleiben oder sich in Beziehungen und Konflikten wiederholen.",
    "Nimm Rückmeldungen von anderen ernst, ohne aus einzelnen Situationen sofort ein festes Muster abzuleiten."
  ],
  links: [
    {
      slug: "bin-ich-toxisch-test",
      title: "Bin ich toxisch?",
      url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
    },
    {
      slug: "bin-ich-ein-overthinker-test",
      title: "Neige ich zum Overthinking? (Selbsttest)",
      url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
    }
  ]
},
    high: {
      badge: "Stage 2",
      title: "Deutlich erkennbare problematische Tendenzen",
      subtitle: "In deinem Ergebnis zeigen sich mehrere Muster, die auf Kälte, manipulative Strategien oder geringe Hemmung gegenüber Grenzüberschreitungen hinweisen können.",
      text1: "Wenn du in vielen Situationen eher auf Vorteil, Kontrolle oder Wirkung setzt als auf Mitgefühl und Verantwortung, ist das mehr als nur ein schlechter Tag oder ein einzelner Charakterzug. Dann kann daraus ein Stil werden, der andere verunsichert, benutzt oder verletzt.",
      text2: "Besonders relevant wird das, wenn dir Schuldgefühle wenig bedeuten, du dich schnell aus Verantwortung herausdrehst oder Menschen vor allem nach Nutzen bewertest. Solche Muster sollten ernst genommen werden, weil sie Beziehungen, Arbeit und Konflikte langfristig in eine destruktive Richtung schieben können.",
      advice: [
        "Nimm ernst, wenn mehrere Menschen dir Kälte, Berechnung oder mangelnde Rücksicht spiegeln.",
        "Schau dir an, in welchen Situationen du besonders stark auf Kontrolle, Überlegenheit oder Manipulation gehst.",
        "Arbeite bewusst an Verantwortungsübernahme statt an Rechtfertigung oder Ablenkung.",
        "Wenn du merkst, dass andere regelmäßig unter deinem Verhalten leiden, kann ein professioneller Blick von außen sinnvoll sein."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Starke Hinweise auf ausgeprägte psychopathische Züge",
      subtitle: "Deine Antworten deuten auf ein deutlich belastendes Muster hin, bei dem Rücksicht, Schuldgefühl und emotionale Verbundenheit öfter in den Hintergrund treten.",
      text1: "Ein solches Ergebnis ist kein Beweis für eine klinische Diagnose. Es ist aber ein klares Signal, dass sich in deinem Verhalten mehrere riskante Muster bündeln können: instrumenteller Umgang mit Menschen, geringe Hemmung bei Grenzüberschreitungen, geringe Anteilnahme und strategische Selbstausrichtung.",
      text2: "Wenn sich diese Muster wirklich durch verschiedene Lebensbereiche ziehen, ist das nicht mehr nur eine Frage von Härte oder Direktheit. Dann geht es um ein Verhaltensprofil, das für andere sehr belastend werden kann und auch dich längerfristig in Konflikte, Beziehungsabbrüche oder soziale Folgen bringen kann. So ein Ergebnis sollte nicht bagatellisiert werden.",
      advice: [
        "Nimm das Ergebnis nicht als Etikett, sondern als Warnsignal für wiederkehrende problematische Muster.",
        "Prüfe ehrlich, wo Menschen in deinem Umfeld eher Mittel zum Zweck als echte Bezugspersonen werden.",
        "Hol dir eine fundierte fachliche Außenperspektive, wenn Rücksichtslosigkeit, Manipulation oder fehlendes Schuldgefühl bei dir ein durchgehendes Muster sind.",
        "Achte besonders darauf, ob hohe Einzelwerte bei dir aus konkreten Bereichen kommen, in denen andere regelmäßig Schaden nehmen."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Habe ich ein gesundes Selbstwertgefühl?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/habe-ich-ein-gesundes-selbstwertgefuehl-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:27:55 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1931</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1931">.elementor-1931 .elementor-element.elementor-element-f49c660{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1931" class="elementor elementor-1931" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-f49c660 e-flex e-con-boxed e-con e-parent" data-id="f49c660" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b34150c elementor-widget elementor-widget-html" data-id="b34150c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Habe ich ein gesundes Selbstwertgefühl?",
  intro: "Wie stabil ist dein Selbstwert im echten Alltag – nicht nur in guten Momenten?",
  testType: "standard",
  questions: [
{
  text: "Wenn dir bei einer konkreten Aufgabe ein Fehler passiert (z. B. du machst etwas falsch oder vergisst etwas), ziehst du daraus schnell den Schluss, dass mit dir grundsätzlich etwas nicht stimmt.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn dich jemand in einem Gespräch direkt kritisiert, beschäftigst du dich danach weniger mit dem Inhalt als damit, ob du insgesamt nicht gut genug bist.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du in einer Gruppe bist, hältst du dich mit deiner Meinung zurück, weil du denkst, dass dein Beitrag weniger wert ist als der der anderen.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du durch Social Media scrollst oder Gespräche über Erfolge anderer mitbekommst, bleibt bei dir schnell das Gefühl hängen, dass du selbst nicht mithalten kannst.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du eine konkrete Entscheidung treffen musst, fragst du mehrere Personen nach ihrer Meinung, weil dir deine eigene Einschätzung nicht ausreicht.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn jemand dir gegenüber kurz angebunden wirkt, beginnst du zu überlegen, ob du etwas falsch gemacht hast.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du eine Aufgabe hast, bei der andere dein Ergebnis sehen oder bewerten könnten, hältst du dich zurück, aus Angst, dich zu blamieren.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du für etwas Lob bekommst, redest du es innerlich schnell klein oder erklärst es weg.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du eine Nachricht schreibst oder etwas beiträgst und keine Reaktion bekommst, beginnst du zu überlegen, ob es an dir liegt.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn es in einer engen Beziehung zu Spannungen kommt, passt du dich eher an oder gibst nach, auch wenn es eigentlich gegen dich geht.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Nach einer Situation, in der du dich unwohl gefühlt hast (z. B. Versprecher), gehst du im Kopf immer wieder durch, wie du gewirkt hast.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn sich eine konkrete Chance ergibt (z. B. Job, Auftritt, neue Aufgabe), zögerst du so lange, bis du sie eher vorbeiziehen lässt.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
}
],
  results: {
    low: {
      badge: "Stufe 1",
      title: "Dein Selbstwert wirkt ziemlich stabil",
      subtitle: "Dein Ergebnis spricht dafür, dass dein Blick auf dich selbst im Alltag meist recht tragfähig bleibt.",
      text1: "Du scheinst dich nicht sofort über Fehler, Vergleiche oder äußere Reaktionen zu definieren. Das heißt nicht, dass dich Kritik oder Unsicherheit kaltlassen, aber sie ziehen dein gesamtes Selbstbild offenbar nicht so leicht nach unten.",
      text2: "Ein gesundes Selbstwertgefühl zeigt sich oft nicht darin, dass man sich ständig stark fühlt, sondern darin, dass man auch in unangenehmen Momenten innerlich nicht völlig den Boden verliert. Genau das scheint bei dir eher der Fall zu sein.",
      advice: [
        "Nimm bewusst wahr, was dir gut gelingt, ohne es sofort zu relativieren.",
        "Achte darauf, dass du deinen Wert nicht unnötig an Leistung oder Zustimmung koppelst.",
        "Halte an Grenzen fest, auch wenn du damit nicht überall gut ankommst."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stufe 2",
      title: "Dein Selbstwert ist grundsätzlich da, aber nicht immer stabil",
      subtitle: "Dein Ergebnis spricht dafür, dass dein Selbstwert in bestimmten Situationen spürbar ins Wanken geraten kann.",
      text1: "Wahrscheinlich gibt es bei dir Bereiche, in denen du dich durchaus solide fühlst, und andere, in denen Kritik, Vergleiche oder fehlende Bestätigung schnell stärker auf dich wirken. Das ist kein ungewöhnliches Muster, aber es kann im Alltag anstrengend werden, wenn dein innerer Maßstab zu stark von außen abhängt.",
      text2: "Oft zeigt sich das nicht als offener Selbsthass, sondern eher als Selbstzweifel, ständiges Relativieren, Rückversicherung oder innere Härte nach kleinen Fehlern. Dann ist Selbstwert nicht wirklich weg, aber er ist zu leicht verschiebbar.",
      advice: [
        "Beobachte, in welchen Situationen dein Selbstbild besonders schnell kippt.",
        "Trenne konkrete Fehler klarer von deinem Wert als Person.",
        "Prüfe, wie stark du auf Bestätigung angewiesen bist, bevor du dir selbst glaubst."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    },
    high: {
      badge: "Stufe 3",
      title: "Dein Selbstwert scheint deutlich anfällig zu sein",
      subtitle: "Dein Ergebnis spricht dafür, dass dein Gefühl für den eigenen Wert im Alltag öfter unter Druck gerät.",
      text1: "Vieles deutet darauf hin, dass Kritik, Unsicherheit, Ablehnung oder Vergleiche bei dir nicht nur punktuell wehtun, sondern schnell dein gesamtes Selbstbild färben. Dann geht es innerlich nicht mehr nur um eine Situation, sondern rasch um die Frage, ob du grundsätzlich genügst.",
      text2: "Ein solcher Selbstwert wirkt oft nach außen unauffällig, weil er sich hinter Rückzug, Anpassung, Perfektionismus oder starkem Grübeln verstecken kann. Gerade deshalb lohnt es sich, genauer hinzusehen, wo du dich selbst regelmäßig abwertest oder klein machst.",
      advice: [
        "Achte auf typische Auslöser wie Kritik, Distanz oder Vergleiche und benenne sie klar.",
        "Übe, Erfolge und Grenzen stehen zu lassen, ohne sie sofort kleinzureden.",
        "Prüfe, ob du in Beziehungen oder Arbeit zu viel tust, um dich innerlich sicherer zu fühlen.",
        "Wenn dich das Thema stark belastet, kann ein Gespräch mit einer professionellen Person sinnvoll sein."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stufe 4",
      title: "Dein Selbstwert wirkt deutlich belastet",
      subtitle: "Dein Ergebnis spricht dafür, dass dein Blick auf dich selbst im Alltag häufig von Abwertung, Unsicherheit oder äußerer Bestätigung abhängt.",
      text1: "Wenn viele Aussagen stark auf dich zutreffen, ist die Wahrscheinlichkeit hoch, dass dein Selbstwert nicht nur punktuell wackelt, sondern in vielen Situationen zu wenig innere Stabilität bietet. Dann können schon normale Reibungen, Kritik oder Distanz schnell wie ein Beweis gegen dich wirken.",
      text2: "Das kann auf Dauer zu Rückzug, Überanpassung, starkem Grübeln oder dauernder innerer Anspannung führen. Dieses Ergebnis ist keine Diagnose, aber ein klarer Hinweis darauf, dass das Thema gerade ernst zu nehmen ist und mehr Aufmerksamkeit verdient.",
      advice: [
        "Nimm wiederkehrende Selbstabwertung ernst, statt sie als normale Härte gegen dich abzutun.",
        "Schreibe typische Gedanken nach Kritik oder Fehlern einmal konkret auf und prüfe sie bewusst gegen Fakten.",
        "Suche Situationen, in denen du Grenzen setzt oder dich zeigst, ohne dich danach sofort innerlich zu zerlegen.",
        "Wenn dein Selbstwert dich stark belastet, kann professionelle Unterstützung sehr sinnvoll sein."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Habe ich ein Burnout?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/habe-ich-ein-burnout-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:26:02 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1926</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1926">.elementor-1926 .elementor-element.elementor-element-1fbf700{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1926" class="elementor elementor-1926" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-1fbf700 e-flex e-con-boxed e-con e-parent" data-id="1fbf700" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-606799b elementor-widget elementor-widget-html" data-id="606799b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Habe ich ein Burnout?",
  intro: "Fühlst du dich einfach nur gestresst – oder ist es schon mehr als das? Dieser Test hilft dir, ehrlich hinzuschauen, wie sehr dich dein Alltag gerade wirklich auslaugt.",
  testType: "risk",
  questions: [
{
text: "Wenn du morgens auf dein Handy schaust und anstehende Aufgaben siehst, entsteht in dir direkt ein Druckgefühl oder Widerstand gegen den Tag.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du nach der Arbeit nach Hause kommst und dich hinsetzt, fühlst du dich innerlich leer, statt einfach nur müde zu sein.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du eine konkrete Aufgabe starten willst (z. B. E-Mail beantworten, Bericht schreiben), bleibst du länger hängen und kommst nicht ins Tun.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Während du an einer Aufgabe sitzt, merkst du, dass du den Faden verlierst und wieder neu ansetzen musst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn kurzfristig etwas Zusätzliches reinkommt (z. B. Anfrage, Termin, Änderung), reagierst du innerlich mit spürbarem Stress oder Druck.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du eigentlich Feierabend hast und z. B. auf der Couch sitzt, kreisen deine Gedanken weiter um Aufgaben oder offene Punkte.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dich jemand im Alltag anspricht (z. B. Kollege, Partner), reagierst du schneller genervt oder gereizt als du es von dir kennst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du etwas machst, das dir früher wichtig oder angenehm war (z. B. Treffen, Hobby), fühlst du dich innerlich distanziert oder kaum beteiligt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du morgens aufwachst, fühlst du dich körperlich oder mental nicht erholt, obwohl du ausreichend geschlafen hast.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du an die nächsten Tage denkst oder Termine vor dir siehst, entsteht in dir ein Gefühl von Druck oder Überforderung.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du unter Belastung stehst, bemerkst du körperliche Reaktionen wie Verspannung, Kopfdruck oder innere Unruhe.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du abends oder in ruhigen Momenten auf deine aktuelle Situation blickst, entsteht der Gedanke, dass du das so nicht mehr lange durchhältst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
}
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Aktuell zeigen sich eher keine Burnout-Anzeichen",
      subtitle: "Deine Antworten sprechen im Moment eher nicht für ein starkes Muster aus Überlastung und Erschöpfung.",
      text1: "Ein niedriger Wert bedeutet nicht, dass bei dir nie Stress oder müde Phasen vorkommen. Er deutet aber eher darauf hin, dass Belastung bei dir aktuell noch nicht klar in ein dauerhaftes Erschöpfungsmuster kippt.",
      text2: "Trotzdem lohnt es sich, frühe Warnsignale ernst zu nehmen. Gerade bei Burnout entsteht Überforderung oft schleichend: erst mehr Anspannung, dann weniger Erholung, dann sinkende Belastbarkeit. Je früher du gegensteuerst, desto besser.",
      advice: [
        "Beobachte, ob du nach Arbeit und Verpflichtungen noch zuverlässig runterkommst.",
        "Achte darauf, dass freie Zeit nicht nur organisatorisch frei ist, sondern sich auch innerlich wie Pause anfühlt.",
        "Wenn einzelne Bereiche kippen, nimm sie ernst, auch wenn der Gesamtwert noch niedrig ist."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Es zeigen sich erste Anzeichen von Überlastung",
      subtitle: "Deine Antworten deuten darauf hin, dass sich Erschöpfung und innere Anspannung bereits bemerkbar machen.",
      text1: "Dieser Bereich spricht dafür, dass Belastung bei dir nicht mehr nur punktuell auftaucht, sondern in mehreren Situationen wiederkehrt. Das muss noch kein Burnout sein, ist aber ein ernstzunehmendes Signal dafür, dass deine Regeneration nicht mehr zuverlässig mitkommt.",
      text2: "Typisch in dieser Phase ist, dass man noch funktioniert, aber schon deutlich mehr Kraft dafür braucht. Genau das wird oft unterschätzt. Viele merken erst spät, wie stark sich Konzentration, Reizbarkeit, Schlaf, Motivation und körperliche Anspannung schon verändert haben.",
      advice: [
        "Schau ehrlich hin, welche Bereiche dir gerade am meisten Energie ziehen und welche davon veränderbar sind.",
        "Plane bewusste Entlastung nicht erst dann ein, wenn nichts mehr geht.",
        "Sprich früh mit vertrauten Personen oder im beruflichen Kontext über Überlastung, statt alles allein weiterzutragen."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deine Antworten sprechen für eine deutliche Erschöpfungstendenz",
      subtitle: "Mehrere deiner Antworten passen zu einem Muster, das bei anhaltender Belastung in Richtung Burnout gehen kann.",
      text1: "In diesem Bereich zeigen sich nicht nur einzelne Stressmomente, sondern mehrere wiederkehrende Warnzeichen: innere Leere, gereizte Reaktionen, fehlende Erholung, mentale Überforderung oder das Gefühl, nur noch zu funktionieren. Das sollte man nicht kleinreden.",
      text2: "Ein hoher Wert bedeutet nicht automatisch, dass ein Burnout sicher vorliegt. Aber er spricht dafür, dass deine Belastungsgrenze möglicherweise schon länger überschritten wird. Gerade wenn Arbeit, Verantwortung, private Themen und innere Anspannung zusammenkommen, kann sich das weiter zuspitzen, wenn nichts verändert wird.",
      advice: [
        "Nimm das Ergebnis als ernstes Signal und nicht als Phase, die du einfach weiter wegdrücken musst.",
        "Prüfe konkret, wo sofort Entlastung möglich ist: Umfang, Erreichbarkeit, Verantwortung, Perfektionsdruck oder zusätzliche Verpflichtungen.",
        "Wenn du dich seit längerer Zeit erschöpft fühlst, hole dir professionelle Unterstützung, bevor der Einbruch stärker wird."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Deine Antworten passen zu einer stark erhöhten Burnout-Belastung",
      subtitle: "Das Ergebnis deutet auf ein ernstes Muster aus Erschöpfung, Überforderung und mangelnder Erholung hin.",
      text1: "Wenn du in diesem Bereich gelandet bist, betrifft die Belastung wahrscheinlich nicht nur einzelne Tage, sondern mehrere Lebensbereiche. Das kann sich so anfühlen, als wärst du innerlich dauerhaft angespannt, gleichzeitig leer und kaum noch richtig regenerationsfähig.",
      text2: "Das ist ein Punkt, an dem Durchhalten keine gute Strategie mehr ist. Wenn du merkst, dass Schlaf, Erholung, Konzentration, Stimmung oder körperliche Signale schon klar mitbetroffen sind, ist es sinnvoll, nicht nur auf mehr Disziplin zu setzen, sondern gezielt Unterstützung und Entlastung zu organisieren.",
      advice: [
        "Nimm ernst, dass dein System gerade wahrscheinlich deutlich überlastet ist.",
        "Sprich zeitnah mit einer ärztlichen, psychologischen oder psychotherapeutischen Fachperson, besonders wenn die Erschöpfung länger anhält oder zunimmt.",
        "Wenn du das Gefühl hast, kaum noch zu funktionieren, reduziere Belastung so konkret wie möglich und warte nicht auf den kompletten Zusammenbruch.",
        "Bei starker Verzweiflung, innerem Kollaps oder dem Gefühl, nicht mehr sicher zu sein, hol dir sofort direkte Hilfe."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich toxisch?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-toxisch-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:18:26 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1917</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1917">.elementor-1917 .elementor-element.elementor-element-3c459e2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1917" class="elementor elementor-1917" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-3c459e2 e-flex e-con-boxed e-con e-parent" data-id="3c459e2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-81d7719 elementor-widget elementor-widget-html" data-id="81d7719" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich toxisch?",
  intro: "Toxisches Verhalten zeigt sich selten offensichtlich, sondern in kleinen Mustern im Alltag. Dieser Test schaut genau hin, wie du mit Kritik, Nähe und Konflikten umgehst – und ob dabei für andere Druck entsteht.",
  testType: "risk",
  questions: [
{
  text: "In Streitgesprächen bringst du gezielt frühere Fehler der anderen Person ein, obwohl es gerade um ein anderes Thema geht.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn dich jemand verletzt, reagierst du so, dass die andere Person sich sofort erklären oder rechtfertigen muss.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Nach einem Konflikt meldest du dich bewusst weniger oder verzögert, obwohl ein klärendes Gespräch möglich wäre.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn etwas nicht nach deinem Plan läuft, wirst du im Ton schnell schärfer oder herablassend.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "In Diskussionen betonst du deine Sicht so stark, dass die Perspektive der anderen Person kaum Raum bekommt.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn du dich übergangen fühlst, reagierst du mit spürbarer Distanz statt das direkt anzusprechen.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Auf Kritik reagierst du zuerst mit Rechtfertigungen oder Gegenargumenten, statt sie ernst zu nehmen oder in Ruhe zu prüfen.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "In Konflikten gehst du stärker auf das Verhalten der anderen Person ein, während dein eigener Anteil weniger im Fokus steht.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Du verpackst Kritik in Ironie oder Bemerkungen, statt sie klar und direkt zu äußern.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn jemand dir Grenzen setzt, reagierst du mit Rückzug, Druck oder veränderter Stimmung.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Wenn dich jemand auf ein Problem anspricht, bringst du schnell eigene Vorwürfe oder Themen ein, statt beim ursprünglichen Punkt zu bleiben.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
},
{
  text: "Nach Konflikten bleiben Gespräche oft offen oder ungeklärt, ohne dass du aktiv zur Klärung zurückkehrst.",
  answers: [
    { text: "So gut wie nie", value: 0 },
    { text: "Selten", value: 1 },
    { text: "Manchmal", value: 2 },
    { text: "Oft", value: 3 },
    { text: "Sehr oft", value: 4 }
  ]
}
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Keine klar toxische Tendenz",
      subtitle: "Dein Ergebnis spricht gegen ein stark belastendes Verhaltensmuster.",
      text1: "Im Moment zeigen sich bei dir kaum Hinweise darauf, dass du andere regelmäßig emotional unter Druck setzt, kleinmachst oder Konflikte unnötig eskalierst. Das heißt nicht, dass du immer ideal reagierst, aber problematische Muster scheinen nicht dein Grundstil zu sein.",
      text2: "Trotzdem lohnt es sich, auf kleine Momente zu achten: auf Abwehr bei Kritik, auf gereizte Spitzen oder auf Situationen, in denen du dich schnell unfair behandelt fühlst. Toxisches Verhalten beginnt oft nicht mit großen Ausrastern, sondern mit Mustern, die sich langsam einschleifen.",
      advice: [
        "Beobachte, wie du auf Kritik reagierst, wenn du gestresst oder verletzt bist.",
        "Achte darauf, ob du Konflikte eher klärst oder unterschwellig verlängerst.",
        "Frag vertraute Menschen, wie sie dich in Streitmomenten erleben."
      ],
      links: [
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        },
        {
          slug: "bin-ich-emotional-intelligent-test",
          title: "Bin ich emotional intelligent?",
          url: "/persoenlichkeit-psyche/bin-ich-emotional-intelligent-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Einige kritische Muster sind erkennbar",
      subtitle: "Dein Verhalten wirkt in manchen Situationen belastender, als es dir vielleicht bewusst ist.",
      text1: "Dein Ergebnis deutet darauf hin, dass es einzelne Verhaltensweisen gibt, die Beziehungen unnötig anspannen können. Dazu gehören zum Beispiel Schuldverschiebung, Rückzug als Druckmittel, scharfe Reaktionen auf Kritik oder verdeckte Abwertung.",
      text2: "Das macht dich nicht automatisch zu einem schlechten Menschen. Es kann aber bedeuten, dass du in bestimmten Momenten eher schützt, kontrollierst oder zurückschlägst, statt offen und fair zu kommunizieren. Genau dort liegt der Punkt, an dem Selbstreflexion wichtig wird.",
      advice: [
        "Beobachte die Situationen, in denen du besonders schnell in Abwehr gehst.",
        "Prüfe nach Streit ehrlich, ob du Druck aufgebaut oder Verantwortung abgewehrt hast.",
        "Versuche Kritik nicht sofort zu bekämpfen, sondern zuerst zu verstehen."
      ],
      links: [
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-emotional-intelligent-test",
          title: "Bin ich emotional intelligent?",
          url: "/persoenlichkeit-psyche/bin-ich-emotional-intelligent-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deutliche toxische Tendenzen",
      subtitle: "Mehrere Antworten sprechen für Muster, die Beziehungen spürbar vergiften können.",
      text1: "Hier geht es nicht mehr nur um einzelne ungünstige Momente. Dein Ergebnis zeigt, dass sich bei dir problematische Reaktionsweisen schon recht klar häufen. Dazu zählen emotionale Kontrolle, Abwertung, schlechtes Aushalten von Grenzen, manipulative Dynamiken oder ein Umgang mit Konflikten, der andere verunsichert.",
      text2: "Solche Muster entstehen nicht immer aus Absicht. Manchmal hängen sie mit Kränkbarkeit, Unsicherheit, ungeklärter Wut oder alten Beziehungserfahrungen zusammen. Für andere bleibt trotzdem oft dieselbe Wirkung zurück: Anspannung, Schuldgefühl, Anpassungsdruck oder das Gefühl, ständig aufpassen zu müssen.",
      advice: [
        "Nimm Rückmeldungen aus deinem Umfeld ernst, auch wenn sie dich zuerst triggern.",
        "Achte bewusst auf Situationen, in denen du mit Rückzug, Druck oder Spitzen reagierst.",
        "Frag dich nach Konflikten nicht nur, was dir angetan wurde, sondern auch, was du beigetragen hast.",
        "Wenn sich diese Muster wiederholen, kann ein professionelles Gespräch sinnvoll sein."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "habe-ich-psychopathische-zuege-test",
          title: "Habe ich psychopathische Züge?",
          url: "/persoenlichkeit-psyche/habe-ich-psychopathische-zuege-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Starke toxische Tendenzen",
      subtitle: "Dein Ergebnis spricht für ein Muster, das andere emotional stark belasten kann.",
      text1: "Die Häufung deiner Antworten ist ein ernstes Signal. Mehrere deiner Reaktionen scheinen nicht nur konflikthaft, sondern für andere potenziell destabilierend zu sein. Wenn Menschen sich wegen deiner Reaktionen klein, schuldig, verunsichert oder dauerhaft angespannt fühlen, ist das kein Nebeneffekt mehr, sondern ein Muster mit Wirkung.",
      text2: "Wichtig ist: Dieses Ergebnis ist kein Urteil über deinen Wert als Mensch. Es ist aber ein deutlicher Hinweis darauf, dass du deinen Umgang mit Nähe, Kontrolle, Kritik und Verantwortung gründlich anschauen solltest. Je länger solche Dynamiken unreflektiert bleiben, desto größer wird der Schaden in Beziehungen.",
      advice: [
        "Nimm das Ergebnis nicht als Angriff, sondern als Anlass für ehrliche Selbstprüfung.",
        "Hör genau hin, wenn dir Menschen wiederholt ähnliche Rückmeldungen geben.",
        "Unterbrich Streit nicht mit Druck, Abwertung oder Schweigen als Strafe.",
        "Hol dir Unterstützung, wenn du merkst, dass du diese Muster alleine kaum stoppen kannst."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        },
        {
          slug: "habe-ich-psychopathische-zuege-test",
          title: "Habe ich psychopathische Züge?",
          url: "/persoenlichkeit-psyche/habe-ich-psychopathische-zuege-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich narzisstisch?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-narzisstisch-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:16:53 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1912</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1912">.elementor-1912 .elementor-element.elementor-element-236edba{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1912" class="elementor elementor-1912" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-236edba e-flex e-con-boxed e-con e-parent" data-id="236edba" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-fbe0911 elementor-widget elementor-widget-html" data-id="fbe0911" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich narzisstisch?",
  intro: "Wie reagierst du, wenn du kritisiert wirst? Bleibst du bei anderen, wenn sie dir etwas erzählen – oder bist du schnell wieder bei dir? Dieser Test zeigt dir anhand konkreter Situationen, ob sich bei dir eher gesunde Selbstsicherheit oder problematische Selbstfokussierung zeigt.",
  testType: "risk",
  questions: [
    {
      text: "In Gesprächen lenkst du den Fokus schnell wieder auf dich und deine Leistungen.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Wenn dich jemand kritisiert, spürst du sofort den Drang, dich stark zu rechtfertigen oder zurückzuschlagen.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "In Gruppen behandelst du die Sichtweisen anderer so, als wären sie weniger wichtig als deine.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Wenn dir jemand von einem Problem erzählt, springst du innerlich oder im Gespräch schnell wieder zu dir selbst.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Du erwartest in Beziehungen oder Gruppen, dass auf deine Wünsche besonders viel Rücksicht genommen wird.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Du zeigst Menschen deutlich mehr Nähe oder Interesse, wenn sie dir gerade nützlich sein können.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Bei Konflikten suchst du den Fehler zuerst klar bei den anderen, statt auch deinen Anteil zu prüfen.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Wenn dir jemand widerspricht oder dich enttäuscht, wertest du die Person innerlich stark ab.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Wenn andere Anerkennung bekommen, entsteht in dir schnell Spannung, Vergleich oder Ärger.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Du findest Regeln oder Grenzen vor allem dann wichtig, wenn sie für andere gelten und nicht für dich.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Dir ist es sehr wichtig, wie du auf andere wirkst, auch wenn du dich dafür anders zeigst, als du dich innerlich fühlst.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    },
    {
      text: "Nach Begegnungen mit anderen kreist dein Denken darum, ob du genug Eindruck hinterlassen hast.",
      answers: [
        { text: "So gut wie nie", value: 0 },
        { text: "Selten", value: 1 },
        { text: "Manchmal", value: 2 },
        { text: "Oft", value: 3 },
        { text: "Sehr oft", value: 4 }
      ]
    }
  ],
  results: {
    low: {
      badge: "Stage 0",
      title: "Keine auffällige Ausprägung ",
      subtitle: "Dein Ergebnis spricht aktuell nicht dafür, dass solche Muster dein Verhalten stark prägen.",
      text1: "Ein niedriger Wert bedeutet nicht, dass du frei von Ego, Stolz oder Kränkbarkeit bist. Das ist normal. Entscheidend ist eher, ob sich daraus wiederkehrende Muster ergeben, die andere abwerten, Grenzen verschieben oder Beziehungen belasten.",
      text2: "Aktuell wirkt es eher so, als könntest du dich grundsätzlich auch zurücknehmen, Kritik zumindest teilweise annehmen und andere nicht ständig über deinen eigenen Status stellen. Der Test ist kein Beweis, aber er spricht gegen eine deutlich narzisstische Alltagsdynamik.",
      advice: [
        "Beobachte, wie du mit Kritik umgehst, ohne dich sofort zu verteidigen.",
        "Achte darauf, ob du anderen wirklich zuhörst oder innerlich schon wieder bei dir selbst bist.",
        "Frag vertraute Menschen ehrlich, wie sie dich in Konflikten erleben."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Einzelne auffällige Tendenzen",
      subtitle: "Es zeigen sich einzelne Muster, die mit starker Selbstfokussierung oder Kränkbarkeit zusammenhängen können.",
      text1: "Dieses Ergebnis heißt nicht automatisch, dass du narzisstisch bist. Es zeigt eher, dass manche Themen bei dir eine größere Rolle spielen könnten: Anerkennung, Wirkung, Recht haben, empfindlich auf Kritik reagieren oder andere im Konflikt schnell abzuwerten.",
      text2: "Solche Muster können aus Unsicherheit, Selbstschutz oder ungünstigen Gewohnheiten entstehen. Relevant wird es dann, wenn sie regelmäßig Beziehungen erschweren, andere klein machen oder dich daran hindern, den eigenen Anteil an Problemen zu sehen.",
      advice: [
        "Prüf in Konflikten bewusst, wo dein eigener Anteil liegen könnte.",
        "Halte bei Kritik kurz inne, bevor du dich erklärst oder zurückschießt.",
        "Beobachte, ob Anerkennung deine Stimmung stärker steuert, als dir lieb ist."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deutliche problematische Muster",
      subtitle: "Dein Ergebnis zeigt mehrere Hinweise auf Verhaltensweisen, die für dein Umfeld belastend werden können.",
      text1: "Hier geht es weniger um ein hartes Etikett als um Wirkung. Wenn Selbstfokus, Anspruchsdenken, Abwertung, mangelnde Selbstkritik oder das starke Bedürfnis nach Bewunderung häufiger auftreten, können Beziehungen schnell unausgeglichen werden.",
      text2: "Besonders wichtig ist jetzt Ehrlichkeit dir selbst gegenüber. Nicht jede starke Selbstinszenierung ist Narzissmus. Aber wenn andere sich neben dir regelmäßig klein, übersehen oder emotional benutzt fühlen, ist das ein ernstes Warnsignal. Dann lohnt sich eine nüchterne Selbstprüfung oder auch ein professionelles Gespräch.",
      advice: [
        "Frag dich nach Konflikten nicht nur, wer dich verletzt hat, sondern auch, was du ausgelöst haben könntest.",
        "Achte bewusst darauf, ob du Menschen vor allem nach Nutzen, Status oder Bestätigung bewertest.",
        "Hol dir ehrliches Feedback von Personen, die dir widersprechen dürfen.",
        "Wenn diese Muster Beziehungen wiederholt belasten, kann ein Gespräch mit einer Fachperson sinnvoll sein."
      ],
      links: [
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Starke Hinweise auf narzisstische Muster",
      subtitle: "Dein Ergebnis zeigt mehrere deutliche Warnsignale, die in Beziehungen und im Alltag spürbare Folgen haben können.",
      text1: "Ein sehr hoher Wert bedeutet noch keine Diagnose. Aber er zeigt, dass sich problematische Muster bei dir deutlich häufen könnten: starke Kränkbarkeit, Überlegenheitsgefühl, Abwertung anderer, geringe Bereitschaft zur Selbstkritik oder ein ausgeprägtes Bedürfnis nach Bewunderung und Kontrolle über dein Bild nach außen.",
      text2: "Wenn das für dich typisch ist, betrifft das nicht nur dein Selbstbild, sondern oft auch dein Umfeld. Menschen können sich dann benutzt, unsicher, klein oder dauerhaft falsch fühlen. Je klarer du solche Muster erkennst, desto eher kannst du daran arbeiten. Gerade bei hohen Werten ist es sinnvoll, das Thema nicht nur allein im Kopf zu bewegen, sondern ernsthaft mit einer fachlich geeigneten Person anzuschauen.",
      advice: [
        "Nimm Rückmeldungen nicht nur als Angriff, sondern als mögliches Korrektiv wahr.",
        "Beobachte, in welchen Situationen du andere entwertest, um dich selbst zu stabilisieren.",
        "Arbeite gezielt daran, in Gesprächen bei der anderen Person zu bleiben statt den Fokus zurück auf dich zu ziehen.",
        "Wenn du merkst, dass Beziehungen daran leiden, such dir professionelle Unterstützung."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich hochsensibel?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-hochsensibel-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:11:59 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1902</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1902">.elementor-1902 .elementor-element.elementor-element-c4d6798{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1902" class="elementor elementor-1902" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-c4d6798 e-flex e-con-boxed e-con e-parent" data-id="c4d6798" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8a94dcf elementor-widget elementor-widget-html" data-id="8a94dcf" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich hochsensibel?",
  intro: "Manche Menschen nehmen mehr wahr – Geräusche, Stimmungen, kleine Veränderungen. Die Frage ist, wie stark dich das im Alltag beeinflusst oder auch belastet.",
  testType: "standard",
  questions: [
  {
    text: "Geräusche, Licht oder viele Eindrücke gleichzeitig bringen dich innerlich schnell an einen Punkt, an dem du Abstand brauchst.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Nach Tagen mit vielen Menschen oder viel Trubel merkst du, dass du deutlich länger brauchst, um wieder bei dir anzukommen.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Spannung oder schlechte Stimmung in einem Raum fällt dir sofort auf, auch wenn noch niemand etwas direkt sagt.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Kleine Bemerkungen, ein schärferer Ton oder ein kritischer Blick beschäftigen dich noch, nachdem die Situation eigentlich vorbei ist.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Unter Zeitdruck, in Konflikten oder bei vielen gleichzeitigen Anforderungen kippt dein inneres Stresslevel sehr schnell nach oben.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Filme, Musik, Gespräche oder Erlebnisse gehen dir emotional so nah, dass sie noch lange in dir nachwirken.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "In Gesprächen mit belasteten oder verletzten Menschen spürst du schnell, was in ihnen vorgeht und nimmst das stark mit.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Beim Essen, Musik hören oder in deiner Umgebung nimmst du feine Unterschiede im Geschmack, Klang oder in der Atmosphäre besonders stark wahr.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Nach intensiven Situationen analysierst du noch lange, was gesagt wurde, wie etwas gemeint war oder warum es dich so getroffen hat.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "In Gesprächen oder Begegnungen fallen dir kleine Veränderungen im Tonfall oder Verhalten schnell auf.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Nach Tagen mit vielen Eindrücken merkst du, dass dein Kopf noch lange „voll“ ist und du bewusst Rückzug brauchst, um innerlich wieder klar zu werden.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn sich Pläne oder Abläufe kurzfristig ändern, merkst du, dass dich das innerlich deutlich durcheinanderbringt.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  }
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Geringe emotionale und sensorische Empfindlichkeit",
      subtitle: "Deine Antworten sprechen nicht dafür, dass hohe Sensibilität deinen Alltag stark prägt.",
      text1: "Du wirkst in vielen Situationen vergleichsweise robust gegenüber Reizen, Stimmungen und kleinen Spannungen. Das heißt nicht, dass dir Dinge egal sind, sondern eher, dass sie dich meist nicht so tief oder so lange belasten.",
      text2: "Eine niedrige Ausprägung ist weder besser noch schlechter. Sie kann bedeuten, dass du Belastung gut abpufferst, dich schneller regulierst oder Reize weniger intensiv verarbeitest. Gleichzeitig lohnt sich auch hier der Blick darauf, wie gut du eigene Gefühle wahrnimmst und Grenzen setzt.",
      advice: [
        "Beobachte, in welchen Situationen du trotzdem fein reagierst, auch wenn das nicht ständig vorkommt.",
        "Achte darauf, Belastung nicht nur deshalb zu übergehen, weil du insgesamt eher stabil wirkst.",
        "Prüfe, wie gut du Gefühle bei dir selbst und bei anderen wahrnimmst."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-emotional-intelligent-test",
          title: "Bin ich emotional intelligent?",
          url: "/persoenlichkeit-psyche/bin-ich-emotional-intelligent-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Leichte Tendenz zu erhöhter Sensibilität",
      subtitle: "Du reagierst in bestimmten Bereichen feiner als viele andere, aber nicht durchgehend in jeder Situation.",
      text1: "Deine Antworten zeigen, dass du Reize, Spannungen und emotionale Schwingungen durchaus stärker wahrnimmst. Das scheint bei dir aber eher bereichsweise aufzutreten, etwa in stressigen Phasen, bei bestimmten Menschen oder in besonders dichten Situationen.",
      text2: "Das kann eine Stärke sein, weil du viel mitbekommst und oft früh spürst, wenn etwas kippt. Gleichzeitig kann genau diese Feinwahrnehmung anstrengend werden, wenn du wenig Rückzug hast oder alles innerlich zu lange weiterläuft.",
      advice: [
        "Achte darauf, welche Situationen dich besonders voll machen und welche eher nicht.",
        "Plane nach intensiven Tagen bewusst kurze Ruhephasen ein, statt erst bei Überforderung auszusteigen.",
        "Unterscheide zwischen echtem Gespür und Gedankenspiralen, die sich nach Situationen verselbstständigen."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-emotional-intelligent-test",
          title: "Bin ich emotional intelligent?",
          url: "/persoenlichkeit-psyche/bin-ich-emotional-intelligent-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deutliche Hinweise auf hohe Sensibilität",
      subtitle: "Deine Antworten sprechen dafür, dass du Reize, Stimmungen und innere Belastung spürbar intensiver verarbeitest.",
      text1: "Vieles deutet darauf hin, dass hohe Sensibilität bei dir kein Randthema ist, sondern im Alltag wirklich eine Rolle spielt. Du nimmst fein wahr, reagierst stark auf Überreizung und scheinst emotionale Eindrücke nicht einfach nur zu registrieren, sondern tiefer weiterzuverarbeiten.",
      text2: "Das kann mit großer Empathie, Aufmerksamkeit und Tiefe verbunden sein. Es kann aber auch dazu führen, dass du schneller erschöpft bist, Konflikte länger mitträgst oder dich von Reizen schwerer abgrenzen kannst. Dann geht es weniger darum, dich zu ändern, sondern darum, deine Reizgrenzen ernst zu nehmen.",
      advice: [
        "Nimm ernst, wie schnell du innerlich voll wirst, statt dich mit robusteren Menschen zu vergleichen.",
        "Reduziere Reizdichte dort, wo es möglich ist, etwa bei Lärm, Daueranspannung oder zu vielen sozialen Eindrücken hintereinander.",
        "Prüfe, ob Selbstzweifel oder Grübeln deine Sensibilität zusätzlich verstärken.",
        "Sorge bewusst für Erholung, bevor dein System schon deutlich überlastet ist."
      ],
      links: [
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "habe-ich-ein-gesundes-selbstwertgefuehl-test",
          title: "Habe ich ein gesundes Selbstwertgefühl?",
          url: "/persoenlichkeit-psyche/habe-ich-ein-gesundes-selbstwertgefuehl-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Sehr starke Hinweise auf hohe Sensibilität",
      subtitle: "Deine Antworten sprechen dafür, dass dein Erleben von Reizen und Stimmungen sehr intensiv ist und dich im Alltag spürbar belastet.",
      text1: "Bei dir scheint Sensibilität nicht nur eine feine Eigenschaft zu sein, sondern etwas, das deinen Alltag deutlich mitsteuert. Reize, Spannungen, zwischenmenschliche Signale und innere Nachwirkung treffen dich offenbar schnell und oft mit voller Stärke.",
      text2: "Das kann mit großer Tiefe und starkem Einfühlungsvermögen verbunden sein. Wenn du dabei aber regelmäßig in Überforderung, Daueranspannung oder starke Erschöpfung rutschst, lohnt sich ein ehrlicher Blick darauf, wie gut du dich schützt. Hohe Sensibilität ist keine Störung, kann aber im Zusammenspiel mit Stress, Grübeln oder Erschöpfung sehr belastend werden.",
      advice: [
        "Behandle Rückzug, Pausen und Reizreduktion nicht als Luxus, sondern als echte Notwendigkeit.",
        "Achte darauf, ob deine Belastung nur aus Sensibilität entsteht oder ob Überforderung, Grübeln oder Erschöpfung dazukommen.",
        "Setze früher Grenzen, bevor dein inneres System schon im roten Bereich ist.",
        "Wenn dich das im Alltag stark einschränkt, kann ein professioneller Blick helfen, Sensibilität von anderen Belastungen besser zu unterscheiden."
      ],
      links: [
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        },
        {
          slug: "habe-ich-ein-burnout-test",
          title: "Habe ich ein Burnout?",
          url: "/persoenlichkeit-psyche/habe-ich-ein-burnout-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich emotional intelligent?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-emotional-intelligent-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:04:30 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1891</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1891">.elementor-1891 .elementor-element.elementor-element-58f4e86{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1891" class="elementor elementor-1891" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-58f4e86 e-flex e-con-boxed e-con e-parent" data-id="58f4e86" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7a0d777 elementor-widget elementor-widget-html" data-id="7a0d777" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich emotional intelligent?",
  intro: "Emotionale Intelligenz zeigt sich im Alltag: Wie du reagierst, wie gut du andere verstehst und wie bewusst du mit deinen Gefühlen umgehst. Dieser Test gibt dir einen ehrlichen Überblick, wo du dabei stehst.",
  testType: "standard",
questions: [
{
text: "Während jemand länger braucht, um etwas zu erklären, bemerkst du, dass du innerlich ungeduldig wirst, noch bevor du reagierst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nachdem dich jemand kritisiert hat, zum Beispiel wegen deiner Arbeit oder deines Verhaltens, kannst du später genau benennen, was dich daran getroffen hat.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dir jemand von einem persönlichen Problem erzählt, merkst du, ob die Person gerade Verständnis sucht oder konkrete Hilfe erwartet.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dich jemand im Gespräch unterbricht oder nicht ausreden lässt, bleibst du ruhig genug, um nicht impulsiv zu reagieren.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dir jemand etwas Schwieriges erzählt, bleibst du beim Zuhören, ohne sofort eine eigene ähnliche Erfahrung einzubringen.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nach einem Streit fällt dir im Nachhinein konkret ein, welche deiner Aussagen die Situation verschärft haben.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dich jemand mit einem Kommentar provoziert, merkst du direkt, wie sich dein Körper anspannt oder dein Puls steigt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "In einem Konflikt sagst du klar, was du brauchst, ohne der anderen Person Vorwürfe zu machen.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "In einer Gruppenrunde fällt dir auf, wenn eine Person mehrfach unterbrochen wird oder nicht zu Wort kommt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du nach einem anstrengenden Arbeitstag nach Hause kommst, merkst du, dass du auf Kleinigkeiten schneller gereizt reagierst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du in einem Gespräch merkst, dass du jemanden verletzt hast, sprichst du es aktiv an, statt das Thema zu wechseln.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du dich in einem Gespräch angegriffen fühlst, schaffst du es, erst nachzudenken, bevor du darauf reagierst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
}
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Deine emotionale Wahrnehmung wirkt kaum gefestigt",
      subtitle: "Du scheinst emotionale Signale bei dir oder anderen eher zu übersehen, zu spät zu bemerken oder schwer einordnen zu können.",
      text1: "Ein niedriger Wert bedeutet nicht, dass dir Gefühle egal sind. Eher zeigt er, dass emotionale Vorgänge im Alltag schnell untergehen, erst spät greifbar werden oder sich erst dann zeigen, wenn schon Spannung entstanden ist.",
      text2: "Emotionale Intelligenz ist lern- und trainierbar. Viele Menschen lernen diesen Zugang erst später bewusster: durch Gespräche, Konflikte, Rückmeldungen oder dadurch, dass sie anfangen, ihre eigenen Reaktionen genauer zu beobachten. Entwicklung ist hier realistischer als Selbstetiketten wie \"kann ich nicht\" oder \"bin ich einfach nicht der Typ dafür\".",
      advice: [
        "Achte in belastenden Situationen zuerst auf deinen inneren Zustand, bevor du auf den Inhalt reagierst.",
        "Versuche Gefühle genauer zu benennen statt nur zwischen \"gut\" und \"schlecht\" zu unterscheiden.",
        "Frage in Gesprächen einmal mehr nach, bevor du etwas deutest oder bewertest."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Du hast Zugang zu Emotionen, aber noch nicht durchgehend",
      subtitle: "In manchen Situationen erkennst du Gefühle und Dynamiken gut, in anderen rutschst du schneller in Automatismen, Missverständnisse oder Abwehr.",
      text1: "Dieses Ergebnis spricht dafür, dass emotionale Intelligenz bei dir grundsätzlich vorhanden ist, aber nicht stabil in allen Bereichen greift. Vielleicht merkst du Gefühle zwar, kannst sie aber nicht immer gut ausdrücken. Oder du spürst dein Gegenüber, reagierst unter Druck aber trotzdem unpassend.",
      text2: "Das ist ein typisches Zwischenfeld. Genau hier liegt oft das größte Entwicklungspotenzial, weil schon etwas da ist, auf das du aufbauen kannst: mehr Selbstwahrnehmung, bewusstere Regulation und klarere Kommunikation. Entscheidend ist weniger Perfektion als die Fähigkeit, im richtigen Moment innerlich einen Schritt langsamer zu werden.",
      advice: [
        "Beobachte, in welchen Situationen du emotional klar bleibst und wo du schneller die Kontrolle verlierst.",
        "Nutze nach Konflikten kurze Rückblicke: Was hast du gefühlt, was gezeigt und was beim anderen ausgelöst?",
        "Übe, Bedürfnisse direkt auszusprechen, statt sie nur indirekt zu zeigen."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Du wirkst emotional ziemlich kompetent",
      subtitle: "Du nimmst bei dir und anderen offenbar vieles recht gut wahr und kannst damit meist reflektiert umgehen.",
      text1: "Ein höherer Wert spricht dafür, dass du Gefühle, Spannungen und Zwischentöne im Alltag gut registrierst. Wahrscheinlich erkennst du eher, was in dir vorgeht, und kannst auch bei anderen besser zwischen Stimmung, Bedürfnis und Reaktion unterscheiden.",
      text2: "Wichtig ist trotzdem: Hohe emotionale Intelligenz heißt nicht, immer ruhig, weich oder konfliktfrei zu sein. Sie zeigt sich eher darin, dass du auch in schwierigeren Momenten Zugang zu dir selbst behältst, Verantwortung für deinen Anteil übernehmen kannst und dein Gegenüber nicht nur über den sichtbaren Konflikt wahrnimmst.",
      advice: [
        "Nutze diese Stärke bewusst in Gesprächen, in denen Unsicherheit oder Spannung schnell eskalieren könnte.",
        "Achte darauf, nicht zu viel für andere mitzuspüren und die eigenen Grenzen klar zu halten.",
        "Prüfe in Konflikten weiter, ob Verstehen und klares Positionieren bei dir in Balance bleiben."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Deine emotionale Intelligenz wirkt sehr hoch",
      subtitle: "Du scheinst Gefühle, Dynamiken und Reaktionen sehr differenziert wahrzunehmen und in Beziehungen oder Konflikten meist bewusst damit umzugehen.",
      text1: "Ein sehr hoher Wert deutet auf eine ausgeprägte emotionale Kompetenz hin. Du bemerkst wahrscheinlich früh, was in dir passiert, kannst Stimmungen bei anderen gut lesen und bleibst auch in heikleren Situationen eher ansprechbar, statt sofort dichtzumachen oder zu explodieren.",
      text2: "Das ist eine starke Ressource. Gleichzeitig lohnt sich auch hier ein realistischer Blick: Menschen mit hoher emotionaler Intelligenz geraten manchmal in die Rolle, zu viel auszugleichen, Spannungen für andere mitzutragen oder sehr stark zwischen den Zeilen zu leben. Reife zeigt sich dann nicht nur im Verstehen, sondern auch darin, Grenzen klar zu setzen und nicht jede Beziehung emotional für andere mitzuregulieren.",
      advice: [
        "Achte darauf, Verständnis nicht mit Selbstüberforderung zu verwechseln.",
        "Nutze deine Wahrnehmung, um klarer statt nur angepasster zu kommunizieren.",
        "Halte auch in emotional komplexen Situationen deine eigenen Grenzen und Bedürfnisse sichtbar."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich ein Overthinker?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-ein-overthinker-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 21:02:23 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1886</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1886">.elementor-1886 .elementor-element.elementor-element-d695533{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1886" class="elementor elementor-1886" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-d695533 e-flex e-con-boxed e-con e-parent" data-id="d695533" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e3e5486 elementor-widget elementor-widget-html" data-id="e3e5486" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich ein Overthinker?",
  intro: "Gedanken drehen, Szenarien durchspielen, Dinge zerdenken – kennst du das? Finde heraus, ob dein Kopf dir noch hilft oder dich schon blockiert.",
  testType: "standard",
questions: [
  {
    text: "Nach Gesprächen gehst du im Kopf noch lange durch, was du gesagt hast und wie es angekommen sein könnte.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Bei Entscheidungen bleibst du an Details hängen, obwohl du die wichtigsten Informationen eigentlich schon hast.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Bevor du ein wichtiges Gespräch oder einen Termin hast, spielst du im Kopf durch, was alles schiefgehen könnte.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du eine Nachricht bekommst, suchst du zwischen den Zeilen schnell nach versteckten Bedeutungen oder Signalen.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Nachdem du dich entschieden hast, gehst du innerlich weiter andere Optionen durch und fragst dich, ob eine davon besser gewesen wäre.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Wenn du auf eine Antwort wartest oder etwas ungeklärt ist, gehst du gedanklich immer wieder zu dieser Situation zurück und überlegst, warum noch nichts gekommen ist.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Abends oder in ruhigen Momenten gehst du Gespräche oder Situationen im Kopf noch einmal durch und überlegst, was du anders hättest sagen oder tun können.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Bei kleinen Fehlern oder peinlichen Momenten bleibst du innerlich länger hängen, obwohl die Situation längst vorbei ist.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Bevor du eine Nachricht abschickst, liest du sie mehrfach durch und formulierst sie immer wieder um.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Du willst eine Aufgabe starten, bleibst aber erst bei Überlegungen hängen, wie du es am besten angehen solltest.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "In sozialen Situationen beobachtest du dich selbst stark und prüfst innerlich laufend, wie du wirkst.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  },
  {
    text: "Während du liest oder arbeitest, merkst du, dass deine Gedanken immer wieder zu offenen Themen zurückspringen und du den Faden verlierst.",
    answers: [
      { text: "So gut wie nie", value: 0 },
      { text: "Selten", value: 1 },
      { text: "Manchmal", value: 2 },
      { text: "Oft", value: 3 },
      { text: "Sehr oft", value: 4 }
    ]
  }
],
  results: {
    low: {
      badge: "Stage 0",
      title: "Du zerdenkst selten",
      subtitle: "Deine Gedanken beschäftigen sich zwar manchmal länger mit Entscheidungen oder Situationen, aber sie übernehmen nicht so schnell die Kontrolle.",
      text1: "Dein Ergebnis spricht dafür, dass du Dinge grundsätzlich reflektierst, ohne dich dabei ständig in Gedankenschleifen zu verlieren. Du denkst nach, aber dein Kopf bleibt meist noch ein Werkzeug und wird nicht zum Dauerprogramm.",
      text2: "Das heißt nicht, dass du nie grübelst. Eher wirkt es so, als könntest du in den meisten Situationen wieder einen Punkt finden, an dem du innerlich loslässt, weitergehst oder ins Handeln kommst. Genau das ist ein wichtiger Unterschied zwischen normalem Nachdenken und belastendem Overthinking.",
      advice: [
        "Achte darauf, welche Situationen dich trotzdem schneller ins Kreisen bringen.",
        "Nutze Entscheidungen bewusst mit einem klaren Endpunkt statt sie endlos offenzuhalten.",
        "Wenn du merkst, dass du dich festdenkst, geh möglichst schnell wieder in eine kleine konkrete Handlung."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Erste Hinweise auf Overthinking",
      subtitle: "Dein Kopf geht in bestimmten Situationen öfter in Schleifen, als dir guttut.",
      text1: "Dein Ergebnis zeigt, dass du Gedanken nicht einfach nur nutzt, sondern dich von ihnen teilweise mitziehen lässt. Vor allem bei Entscheidungen, offenen Situationen oder zwischenmenschlichen Themen kann es sein, dass du innerlich länger festhängst, als die Situation eigentlich verlangt.",
      text2: "Overthinking wirkt von außen oft wie gründliches Nachdenken, fühlt sich innen aber anders an: weniger klar, weniger lösungsorientiert und oft anstrengender. Wahrscheinlich kennst du Momente, in denen du vieles durchdenkst, aber am Ende nicht ruhiger, sondern unsicherer oder blockierter wirst.",
      advice: [
        "Beobachte, bei welchen Themen dein Grübeln besonders anspringt: Entscheidungen, Fehler, Beziehungen oder Zukunft.",
        "Setze dir für Abwägungen bewusst ein Zeitfenster und entscheide danach mit dem, was du hast.",
        "Halte offene Gedankenschleifen schriftlich fest, statt sie immer wieder im Kopf zu drehen."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deutliches Overthinking",
      subtitle: "Gedankliches Kreisen scheint bei dir nicht nur gelegentlich aufzutauchen, sondern in mehreren Bereichen Energie zu ziehen.",
      text1: "Dein Ergebnis spricht dafür, dass du vieles stark analysierst, innerlich mehrfach prüfst und nur schwer einen gedanklichen Abschluss findest. Das kann dazu führen, dass selbst kleine Dinge unnötig groß werden, weil dein Kopf sie immer wieder neu aufrollt.",
      text2: "Gerade bei Overthinking ist das Problem oft nicht zu wenig Einsicht, sondern zu viel innere Verarbeitung ohne echten Abschluss. Entscheidungen kosten dann übermäßig Kraft, soziale Situationen hallen nach und Ruhephasen fühlen sich nicht mehr wirklich ruhig an. Wenn das auf Dauer so läuft, wird Grübeln schnell zu einem Muster, das dich im Alltag ausbremst.",
      advice: [
        "Achte darauf, ob dein Nachdenken dir noch hilft oder ob es nur weitere Unsicherheit produziert.",
        "Trenne bewusste Reflexionszeit von Grübelzeit: nicht jeder Gedanke braucht erneut Aufmerksamkeit.",
        "Bring offene Themen schneller in Handlung, Gespräch oder Entscheidung, statt nur weiter darüber nachzudenken.",
        "Wenn dein Kopf kaum noch abschaltet, prüfe bewusst, welche Auslöser immer wieder dieselben Schleifen starten."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Sehr starkes Overthinking",
      subtitle: "Gedankenschleifen und innere Anspannung scheinen dich bereits stark zu belasten.",
      text1: "Dein Ergebnis deutet darauf hin, dass Overthinking bei dir nicht nur eine Eigenart ist, sondern ein Muster, das deinen Alltag spürbar beeinflussen kann. Wenn viele Gedanken gleichzeitig offenbleiben, Entscheidungen immer wieder neu geprüft werden und dein Kopf selbst in ruhigen Momenten nicht abschaltet, entsteht schnell ein dauerhafter innerer Druck.",
      text2: "Das Problem ist dabei meist nicht, dass du zu wenig nachdenkst, sondern dass dein Denken kaum noch zu einem Ende kommt. Dadurch können Erschöpfung, Selbstzweifel, Anspannung oder Rückzug zunehmen. Wenn du dich darin klar wiedererkennst und merkst, dass es dich stark belastet, lohnt es sich, das ernst zu nehmen und nicht als bloßes Persönlichkeitsdetail abzutun.",
      advice: [
        "Nimm ernst, wenn dein Grübeln Schlaf, Konzentration, Entscheidungen oder Beziehungen deutlich beeinträchtigt.",
        "Versuche nicht, innere Sicherheit nur durch noch mehr Denken herzustellen.",
        "Schaffe feste Stopppunkte für Entscheidungen und offene Themen, auch wenn sie sich innerlich noch nicht perfekt anfühlen.",
        "Wenn das Kreisen kaum nachlässt oder dich stark belastet, kann es sinnvoll sein, das mit einer professionellen Person zu besprechen."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-depressiv-test",
          title: "Bin ich depressiv?",
          url: "/persoenlichkeit-psyche/bin-ich-depressiv-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bin ich depressiv?</title>
		<link>https://checkdich.at/category-persoenlichkeit-und-psyche/bin-ich-depressiv-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 20:59:56 +0000</pubDate>
				<category><![CDATA[Persönlichkeit & Psyche]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1881</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1881">.elementor-1881 .elementor-element.elementor-element-c1e4fd5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1881" class="elementor elementor-1881" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-c1e4fd5 e-flex e-con-boxed e-con e-parent" data-id="c1e4fd5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0b7082b elementor-widget elementor-widget-html" data-id="0b7082b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Bin ich depressiv?",
  intro: "Schlechte Tage hat jeder. Entscheidend ist, was bleibt. Dieser Test hilft dir zu erkennen, ob sich bei dir bereits ein belastendes Muster entwickelt hat.",
  testType: "risk",
  questions: [
    {
text: "Dinge, die dir eigentlich wichtig sind, fühlen sich im Moment leer oder gleichgültig an.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Schon einfache Dinge wie Duschen, Einkaufen oder Antworten auf Nachrichten kosten dich deutlich mehr Überwindung als sonst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn sich Gelegenheiten für Kontakt ergeben, sagst du häufiger ab oder meldest dich nicht zurück, obwohl du weißt, dass es dir eigentlich guttun könnte.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Du bleibst morgens länger liegen, obwohl du eigentlich aufstehen müsstest, weil dir der innere Antrieb fehlt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nach Fehlern oder kleinen Problemen rutschst du schnell in harte Gedanken über dich selbst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn etwas schiefläuft, beschäftigt dich das oft noch Stunden oder den ganzen Tag, ohne dass du innerlich davon loskommst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "In ruhigen Momenten kreisen deine Gedanken schnell um das, was bei dir gerade nicht passt oder nicht gelingt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Bei Aufgaben merkst du, dass du dich schlechter fokussieren kannst und schneller abgelenkt bist.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Sachen, um die du dich sonst kümmerst, bleiben liegen, weil dir der innere Antrieb dafür fehlt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Auch in Momenten, die eigentlich leicht oder schön sein könnten, fühlst du dich innerlich eher abgeschnitten.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du an die nächste Zeit denkst, fällt es dir schwer, dir etwas Positives vorzustellen oder Vorfreude zu spüren.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nach Belastungen brauchst du ungewöhnlich lange, bis du innerlich wieder etwas Stabilität spürst.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
}

  ],
  results: {
    low: {
      badge: "Stage 0",
      title: "Keine deutlich depressiven Muster",
      subtitle: "Deine Antworten zeigen aktuell eher einzelne Belastungsmomente als ein klar verdichtetes depressives Muster.",
      text1: "Aktuell zeigen sich bei dir keine klar verdichteten Muster, die auf eine stärkere depressive Belastung hindeuten. Das heißt nicht, dass es dir automatisch gut geht, aber die typische Verdichtung aus Rückzug, Antriebslosigkeit, Schwere und Selbstabwertung zeigt sich hier nicht.",
      text2: "Wichtig ist trotzdem, auf Veränderungen zu achten. Gerade wenn sich Stimmung, Schlaf, Energie oder Rückzug langsam verschieben, merkt man das oft erst später deutlich.",
      advice: [
        "Achte darauf, ob einzelne belastende Themen vorübergehend sind oder sich über Wochen festsetzen.",
        "Nimm ernst, wenn Freude, Energie oder sozialer Kontakt spürbar weniger werden.",
        "Beobachte, ob eher Stress, Grübeln oder Erschöpfung hinter deinem Zustand stehen."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-hochsensibel-test",
          title: "Bin ich hochsensibel?",
          url: "/persoenlichkeit-psyche/bin-ich-hochsensibel-test"
        }
      ]
    },
    mid: {
      badge: "Stage 1",
      title: "Erste Anzeichen von innerer Schwere",
      subtitle: "Deine Antworten deuten darauf hin, dass sich belastende Muster bereits zeigen, aber noch nicht massiv verdichtet wirken.",
      text1: "Hier fällt auf, dass einzelne typische Bereiche bereits mitschwingen: weniger Leichtigkeit, mehr Rückzug, mehr innere Schwere oder ein schnelleres Abrutschen in negative Gedanken über dich selbst. Das muss nicht automatisch eine Depression bedeuten, ist aber auch nicht mehr nur ein zufälliger Ausreißer.",
      text2: "Gerade in dieser Zone ist wichtig, wie lange das schon so läuft. Wenn sich solche Muster über mehrere Wochen halten oder langsam stärker werden, sollte man das nicht kleinreden. Entscheidend ist weniger ein einzelner schlechter Tag als die Wiederholung im Alltag.",
      advice: [
        "Beobachte, ob sich Rückzug, Antriebslosigkeit oder Selbstabwertung in den nächsten Wochen verstärken.",
        "Unterscheide möglichst zwischen Stressreaktion, Erschöpfung und anhaltender Niedergeschlagenheit.",
        "Wenn du merkst, dass dein Alltag spürbar enger wird, hol dir früh Unterstützung statt erst im roten Bereich."
      ],
      links: [
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        }
      ]
    },
    high: {
      badge: "Stage 2",
      title: "Deutliche depressive Belastungstendenz",
      subtitle: "Deine Antworten zeigen ein Muster, das deutlich über normale Tiefphasen hinausgehen kann.",
      text1: "Mehrere deiner Antworten sprechen dafür, dass sich innere Schwere, Rückzug, Erschöpfung oder Selbstabwertung nicht nur punktuell zeigen. Das ist ein ernstzunehmendes Signal, weil solche Muster beginnen können, sich auf verschiedene Lebensbereiche auszuwirken – etwa auf Stimmung, Beziehungen oder deinen Alltag.",
      text2: "Wenn mehrere dieser Bereiche wiederkehrend auf dich zutreffen, ist es sinnvoll, das nicht mehr nur mit 'schlechte Phase' zu erklären. Vor allem dann nicht, wenn du merkst, dass du innerlich immer weniger Zugriff auf Energie, Freude oder Hoffnung hast.",
      advice: [
        "Nimm ernst, wenn dein Alltag spürbar schwerer geworden ist und nicht mehr nur einzelne Tage betrifft.",
        "Achte darauf, ob Schlaf, Antrieb, Rückzug und Selbstabwertung sich gegenseitig verstärken.",
        "Hol dir professionelle Unterstützung, wenn diese Muster schon eine Weile anhalten oder dein Funktionieren deutlich beeinträchtigen.",
        "Wenn du dich innerlich festgefahren fühlst, versuche nicht alles allein wegzudrücken."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-ein-overthinker-test",
          title: "Neige ich zum Overthinking? (Selbsttest)",
          url: "/persoenlichkeit-psyche/bin-ich-ein-overthinker-test"
        },
        {
          slug: "habe-ich-ein-burnout-test",
          title: "Habe ich ein Burnout?",
          url: "/persoenlichkeit-psyche/habe-ich-ein-burnout-test"
        }
      ]
    },
    veryHigh: {
      badge: "Stage 3",
      title: "Starke Hinweise auf depressive Belastung",
      subtitle: "Deine Antworten zeigen eine deutliche Verdichtung von Mustern, die ernst genommen werden sollten.",
      text1: "In deinem Ergebnis bündeln sich mehrere Warnsignale gleichzeitig. Das spricht dafür, dass Rückzug, Hoffnungslosigkeit, Antriebsmangel, innere Schwere oder Selbstabwertung bei dir aktuell viel Raum einnehmen könnten. Spätestens hier geht es nicht mehr nur um eine gewöhnliche schlechte Woche.",
      text2: "Dieser Test ersetzt keine Diagnose, aber das Ergebnis ist klar genug, um Unterstützung nicht weiter aufzuschieben. Wenn du zusätzlich merkst, dass du dich kaum noch verbunden fühlst, kaum noch etwas tragen kannst oder Gedanken in Richtung Selbstverletzung oder Nicht-mehr-da-sein auftauchen, ist das ein akuter Grund, sofort Hilfe von außen zu holen.",
      advice: [
        "Nimm das Ergebnis nicht als Etikett, sondern als ernstes Warnsignal für deinen aktuellen Zustand.",
        "Such dir zeitnah professionelle Unterstützung, besonders wenn diese Muster seit Wochen bestehen oder stärker werden.",
        "Wenn Gedanken auftauchen, dir etwas anzutun oder nicht mehr leben zu wollen, hol dir sofort direkte Hilfe im Umfeld, bei einer Krisenstelle oder im Notruf.",
        "Bleib mit diesem Zustand nicht allein, wenn du merkst, dass dein innerer Spielraum fast weg ist."
      ],
      links: [
        {
          slug: "bin-ich-narzisstisch-test",
          title: "Bin ich narzisstisch?",
          url: "/persoenlichkeit-psyche/bin-ich-narzisstisch-test"
        },
        {
          slug: "bin-ich-toxisch-test",
          title: "Bin ich toxisch?",
          url: "/persoenlichkeit-psyche/bin-ich-toxisch-test"
        },
        {
          slug: "habe-ich-ein-burnout-test",
          title: "Habe ich ein Burnout?",
          url: "/persoenlichkeit-psyche/habe-ich-ein-burnout-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ist mein Partner toxisch?</title>
		<link>https://checkdich.at/category-dein-partner-im-check/ist-mein-partner-toxisch-test/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 01 May 2026 20:58:18 +0000</pubDate>
				<category><![CDATA[Partner]]></category>
		<guid isPermaLink="false">https://checkdich.at/?p=1876</guid>

					<description><![CDATA[Ergebnis anzeigen Zurücksetzen &#8222;` Einordnung Worauf du jetzt achten kannst Passende nächste Tests &#8222;`]]></description>
			<style id="elementor-post-1876">.elementor-1876 .elementor-element.elementor-element-a3f50eb{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}</style>							<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1876" class="elementor elementor-1876" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3f50eb e-flex e-con-boxed e-con e-parent" data-id="a3f50eb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-387056e elementor-widget elementor-widget-html" data-id="387056e" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
					<style>
.dep-test-wrap{
  max-width: 860px;
  margin: 32px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid #e7ecf3;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: Arial, sans-serif;
  color: #1f2937;
}

.dep-test-header{
  margin-bottom: 24px;
}

.dep-test-title{
  margin: 0 0 10px 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 700;
  color: #111827;
}

.dep-test-intro{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #4b5563;
}

.dep-test-error{
  display: none;
  margin: 0 0 22px 0;
  padding: 14px 16px;
  border: 1px solid #f3c2c2;
  background: #fff4f4;
  color: #9f1d1d;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}

.dep-question{
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fbfcfe;
}

.dep-question-title{
  margin: 0 0 14px 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  color: #111827;
}

.dep-answer{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #dde5ef;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dep-answer:hover{
  border-color: #bfd0e6;
  background: #f8fbff;
}

.dep-answer input{
  margin: 0;
  flex: 0 0 auto;
}

.dep-answer-text{
  font-size: 15px;
  line-height: 1.45;
  color: #1f2937;
}

.dep-actions{
  margin-top: 24px;
}

.dep-btn{
  display: inline-block;
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 15px 18px;
  background: #2563eb;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.dep-btn:hover{
  background: #1d4ed8;
}

.dep-btn:focus{
  outline: 3px solid rgba(37, 99, 235, 0.2);
  outline-offset: 2px;
}

.dep-btn:active{
  transform: translateY(1px);
}

.dep-btn-secondary{
  margin-top: 12px;
  background: #e5e7eb;
  color: #1f2937;
  box-shadow: none;
}

.dep-btn-secondary:hover{
  background: #dbe1e8;
}

.dep-result{
  display: none;
  margin-top: 30px;
  padding-top: 10px;
}

.dep-result-hero{
  padding: 24px 20px;
  border-radius: 18px;
  margin-bottom: 18px;
  text-align: center;
  border: 1px solid transparent;
}

.dep-result-hero--low{
  background: #eef6ff;
  border-color: #cfe3ff;
}

.dep-result-hero--mild{
  background: #f4f8ff;
  border-color: #d9e7ff;
}

.dep-result-hero--mid{
  background: #fff7e8;
  border-color: #f4ddb0;
}

.dep-result-hero--high{
  background: #fff0f0;
  border-color: #f1c6c6;
}

.dep-result-title{
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
  font-weight: 800;
  color: #111827;
}

.dep-result-subtitle{
  margin: 12px auto 0 auto;
  max-width: 680px;
  font-size: 17px;
  line-height: 1.6;
  color: #374151;
}

.dep-card{
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #e7ecf3;
  border-radius: 16px;
  background: #fff;
}

.dep-card-heading{
  margin: 0 0 10px 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #475569;
}

.dep-card-text{
  font-size: 15px;
  line-height: 1.7;
  color: #1f2937;
}

.dep-card-text p{
  margin: 0 0 12px 0;
}

.dep-card-text p:last-child{
  margin-bottom: 0;
}

.dep-advice-list{
  margin: 0;
  padding-left: 18px;
}

.dep-advice-list li{
  margin: 0 0 8px 0;
  line-height: 1.6;
}

.dep-links-grid{
  display: grid;
  gap: 10px;
}

.dep-link-card{
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  text-decoration: none;
  background: #f8fbff;
  color: #0f172a;
  font-weight: 700;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dep-link-card:hover{
  border-color: #bfd0e6;
  background: #f1f7ff;
  transform: translateY(-1px);
}

.dep-score-meta{
  margin-top: 16px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.dep-result-note{
  display: none;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  text-align: center;
}

@media (max-width: 640px){
  .dep-test-wrap{
    padding: 18px;
    border-radius: 14px;
  }

  .dep-test-title{
    font-size: 25px;
  }

  .dep-result-title{
    font-size: 26px;
  }

  .dep-result-subtitle{
    font-size: 16px;
  }

  .dep-question{
    padding: 14px;
  }

  .dep-answer{
    padding: 11px 12px;
  }

  .dep-score-meta{
    font-size: 17px;
  }
}
</style>

<div class="dep-test-wrap" id="depTestWrap">
  <div class="dep-test-header">
    <h1 class="dep-test-title" id="depTestTitle"></h1>
    <p class="dep-test-intro" id="depTestIntro"></p>
  </div>

  <div class="dep-test-error" id="depTestError"></div>

  <div id="depTestQuestions"></div>

  <div class="dep-actions">
    <button class="dep-btn" id="depTestSubmit" type="button">Ergebnis anzeigen</button>
    <button class="dep-btn dep-btn-secondary" id="depTestReset" type="button">Zurücksetzen</button>
  </div>

  <div class="dep-result" id="depTestResult">
    <div class="dep-result-hero" id="depResultHero">
      <h3 class="dep-result-title" id="depResultTitle"></h3>
      <div class="dep-result-subtitle" id="depResultSubtitle"></div>
      <div class="dep-score-meta" id="depScoreMeta"></div>
      <div class="dep-result-note" id="depResultNote"></div>
    </div>

```
<div class="dep-card">
  <div class="dep-card-heading">Einordnung</div>
  <div class="dep-card-text" id="depResultTextCombined"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Worauf du jetzt achten kannst</div>
  <div class="dep-card-text" id="depHelpText"></div>
</div>

<div class="dep-card">
  <div class="dep-card-heading">Passende nächste Tests</div>
  <div class="dep-links-grid" id="depLinks"></div>
</div>
```

  </div>
</div>

<script>
const TEST_DATA = {
  title: "Ist mein Partner toxisch?",
  intro: "Gibt es in eurer Beziehung Momente, in denen du dich klein, verunsichert oder emotional ausgelaugt fühlst – ohne genau benennen zu können, warum? Finde heraus, ob hinter diesen Erfahrungen toxische Muster in der Dynamik mit deinem Partner stecken könnten..",
  testType: "risk",
questions: [
{
text: "Wenn ihr nach einem Streit wieder miteinander sprecht, vermeidet dein Partner das Thema oder tut so, als wäre nichts gewesen.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Dein Partner reagiert gereizt oder genervt, wenn du ihn um Unterstützung im Alltag bittest (z. B. bei Organisation, Terminen oder Problemen).",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn dein Partner schlechte Laune hat, bekommst du das deutlich zu spüren, auch wenn du nichts damit zu tun hast.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Dein Partner entscheidet in Alltagssituationen (z. B. Planung, Aktivitäten, Tagesablauf) oft einfach, ohne dich wirklich einzubeziehen.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Dein Partner reagiert abwertend oder genervt, wenn du emotional wirst oder über deine Gefühle sprechen möchtest.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du dich auf etwas freust (z. B. Treffen, Pläne), macht dein Partner die Situation durch Kommentare oder Verhalten spürbar schlechter.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Dein Partner verhält sich dir gegenüber in bestimmten Momenten (z. B. unter Stress oder Ärger) deutlich respektloser als gegenüber anderen.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nach gemeinsamen Unternehmungen (z. B. Treffen, Ausflüge oder Abende zusammen) gehst du mit einem unguten Gefühl nach Hause, ohne dass ihr darüber gesprochen habt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Wenn du ein Thema ansprichst, das dir wichtig ist, wirkt dein Partner schnell genervt oder abweisend, sodass das Gespräch kaum Raum bekommt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "In Konflikten wird dein Partner schnell laut, abwertend oder verletzend, statt ruhig im Gespräch zu bleiben.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "In Gesprächen oder beim Schreiben mit deinem Partner beendest du Themen schneller, sagst weniger oder gehst nicht weiter darauf ein, obwohl dich etwas beschäftigt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
},
{
text: "Nachdem ihr Zeit miteinander verbracht habt (z. B. Gespräch, Treffen oder Telefonat), fühlst du dich erschöpft oder ausgelaugt.",
answers: [
{ text: "So gut wie nie", value: 0 },
{ text: "Selten", value: 1 },
{ text: "Manchmal", value: 2 },
{ text: "Oft", value: 3 },
{ text: "Sehr oft", value: 4 }
]
}
],
  results: {
    low: {
      badge: "Geringe Hinweise",
      title: "Kaum toxische Muster erkennbar",
      subtitle: "Deine Antworten sprechen eher nicht für eine deutlich toxische Dynamik bei deinem Partner.",
      text1: "Im Moment zeigen sich kaum Hinweise darauf, dass dein Partner wiederkehrend abwertend, kontrollierend oder psychisch belastend auf dich einwirkt. Einzelne schwierige Situationen kommen in fast jeder Beziehung vor und bedeuten für sich allein noch keine toxische Struktur.",
      text2: "Wichtig ist trotzdem, wie du dich in der Beziehung insgesamt fühlst. Auch bei einem niedrigen Ergebnis kann es sinnvoll sein, auf Respekt, Verlässlichkeit und dein eigenes Sicherheitsgefühl zu achten. Entscheidend ist nicht nur, was dein Partner sagt, sondern was wiederholt zwischen euch passiert.",
      advice: [
        "Achte weiter darauf, ob Konflikte bei euch grundsätzlich respektvoll lösbar bleiben.",
        "Nimm dein eigenes Gefühl nach Gesprächen ernst, auch wenn das Gesamtergebnis unauffällig ist.",
        "Beobachte, ob Grenzen beidseitig akzeptiert werden oder sich erste Schieflagen entwickeln."
      ],
      links: [
        {
          slug: "ist-mein-partner-egoistisch-test",
          title: "Ist mein Partner egoistisch?",
          url: "/dein-partner-im-check/ist-mein-partner-egoistisch-test"
        },
        {
          slug: "ist-mein-partner-emotional-unreif-test",
          title: "Ist mein Partner emotional unreif?",
          url: "/dein-partner-im-check/ist-mein-partner-emotional-unreif-test"
        }
      ]
    },
    mid: {
      badge: "Erste Warnzeichen",
      title: "Erste problematische Muster",
      subtitle: "Deine Antworten zeigen erste Hinweise auf belastende Verhaltensweisen bei deinem Partner.",
      text1: "Das Ergebnis deutet darauf hin, dass bestimmte Situationen in eurer Beziehung nicht einfach nur anstrengend, sondern wiederkehrend irritierend oder kräftezehrend sein könnten. Vor allem dann, wenn du dich nach Gesprächen klein, verunsichert oder verantwortlich für alles fühlst, lohnt sich ein genauerer Blick.",
      text2: "Noch spricht das Ergebnis nicht zwingend für eine stark toxische Gesamtdynamik. Aber es zeigt, dass etwas bei euch nicht ganz stabil oder gesund wirkt. Gerade frühe Muster werden oft verharmlost, obwohl sie mit der Zeit stärker werden können, wenn sie nie klar benannt werden.",
      advice: [
        "Beobachte konkrete Situationen statt nur auf Entschuldigungen oder gute Phasen zu schauen.",
        "Notiere dir, nach welchen Gesprächen oder Konflikten du dich besonders verunsichert fühlst.",
        "Prüfe, ob du in der Beziehung deine Grenzen noch klar vertreten kannst."
      ],
      links: [
        {
          slug: "ist-mein-partner-emotional-unreif-test",
          title: "Ist mein Partner emotional unreif?",
          url: "/dein-partner-im-check/ist-mein-partner-emotional-unreif-test"
        },
        {
          slug: "ist-meine-beziehung-toxisch-test",
          title: "Ist meine Beziehung toxisch?",
          url: "/beziehungstests/ist-meine-beziehung-toxisch-test"
        }
      ]
    },
    high: {
      badge: "Deutliche Hinweise",
      title: "Mehrere toxische Muster erkennbar",
      subtitle: "Deine Antworten sprechen für eine spürbar belastende Dynamik mit mehreren Warnsignalen.",
      text1: "Hier geht es wahrscheinlich nicht mehr nur um einzelne schlechte Momente. Mehrere deiner Antworten deuten darauf hin, dass dein Partner wiederkehrend Grenzen verschiebt, Verantwortung verdreht, Druck aufbaut oder dich emotional verunsichert. Solche Muster können auf Dauer sehr zermürbend sein.",
      text2: "Ein toxisches Verhalten muss nicht ständig extrem sein, um schädlich zu wirken. Schon eine Mischung aus Abwertung, Kontrolle, Rückzug, Schuldumkehr und Unsicherheit kann dazu führen, dass du dich selbst immer weniger ernst nimmst. Genau das macht solche Dynamiken oft so schwer greifbar.",
      advice: [
        "Nimm wiederkehrende Muster ernst, auch wenn dazwischen gute Phasen liegen.",
        "Sprich mit einer außenstehenden Vertrauensperson über konkrete Situationen statt nur über dein Gesamtgefühl.",
        "Achte darauf, ob du dich zunehmend anpasst, kleiner machst oder innerlich unter Druck stehst.",
        "Prüfe, welche Grenzen du brauchst und was passiert, wenn du sie klar setzt."
      ],
      links: [
        {
          slug: "ist-mein-partner-manipulativ-test",
          title: "Ist mein Partner manipulativ?",
          url: "/dein-partner-im-check/ist-mein-partner-manipulativ-test"
        },
        {
          slug: "ist-meine-beziehung-toxisch-test",
          title: "Ist meine Beziehung toxisch?",
          url: "/beziehungstests/ist-meine-beziehung-toxisch-test"
        },
        {
          slug: "hat-mein-partner-bindungsangst-test",
          title: "Hat mein Partner Bindungsangst?",
          url: "/dein-partner-im-check/hat-mein-partner-bindungsangst-test"
        }
      ]
    },
    veryHigh: {
      badge: "Starke Warnsignale",
      title: "Es zeigen sich starke toxische Muster",
      subtitle: "Deine Antworten sprechen für eine ernsthaft belastende Dynamik, die du nicht kleinreden solltest.",
      text1: "Das Ergebnis deutet auf viele klare Warnsignale hin. Wenn dein Partner dich wiederholt verunsichert, klein macht, emotional unter Druck setzt oder Gespräche so verdreht, dass du dich selbst infrage stellst, kann das eine deutlich toxische Struktur sein. Solche Muster greifen oft schleichend das Selbstwertgefühl und das Sicherheitsgefühl an.",
      text2: "Wichtig ist: Du musst nicht warten, bis etwas völlig eskaliert, um deine Wahrnehmung ernst zu nehmen. Wenn du dich regelmäßig angespannt, unsicher, schuldig oder innerlich vorsichtig fühlst, ist das bereits ein relevantes Signal. Nicht jede toxische Dynamik ist laut oder offensichtlich. Manche wirken gerade deshalb so stark, weil sie dauerhaft und subtil sind.",
      advice: [
        "Vertraue deiner Wahrnehmung und spiele belastende Muster nicht als Einzelfälle herunter.",
        "Hole dir Rückmeldung von Menschen, die dir wohlwollend und klar begegnen.",
        "Überlege dir, welche Situationen für dich klare Grenzen überschreiten und was du dann konkret tust.",
        "Wenn du dich emotional stark unter Druck gesetzt oder dauerhaft entwertet fühlst, kann professionelle Unterstützung hilfreich sein."
      ],
      links: [
        {
          slug: "ist-mein-partner-narzisstisch-test",
          title: "Ist mein Partner narzisstisch?",
          url: "/dein-partner-im-check/ist-mein-partner-narzisstisch-test"
        },
        {
          slug: "ist-meine-beziehung-toxisch-test",
          title: "Ist meine Beziehung toxisch?",
          url: "/beziehungstests/ist-meine-beziehung-toxisch-test"
        },
        {
          slug: "hat-mein-partner-psychopathische-zuege-test",
          title: "Hat mein Partner psychopathische Züge?",
          url: "/dein-partner-im-check/hat-mein-partner-psychopathische-zuege-test"
        }
      ]
    }
  }
};

(function () {
  "use strict";

  if (typeof TEST_DATA === "undefined") {
    const errorBox = document.getElementById("depTestError");
    errorBox.style.display = "block";
    errorBox.textContent = "Fehler: TEST_DATA wurde nicht gefunden. Die Engine braucht gültige Testdaten.";
    return;
  }

  const REQUIRED_TOP_LEVEL_FIELDS = ["title", "intro", "questions", "results", "testType"];
  const REQUIRED_RESULT_KEYS = ["low", "mid", "high", "veryHigh"];
  const REQUIRED_RESULT_FIELDS = ["badge", "title", "subtitle", "text1", "text2", "advice", "links"];
  const ALLOWED_TEST_TYPES = ["risk", "standard", "fun"];

  const RED_FLAG_CONFIG = {
    risk: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: true,
      maxThreshold: 3
    },
    standard: {
      useHighThreshold: true,
      highThreshold: 3,
      useMaxOverride: false,
      maxThreshold: 3
    },
    fun: {
      useHighThreshold: false,
      highThreshold: Infinity,
      useMaxOverride: false,
      maxThreshold: Infinity
    }
  };

  const el = {
    wrap: document.getElementById("depTestWrap"),
    title: document.getElementById("depTestTitle"),
    intro: document.getElementById("depTestIntro"),
    error: document.getElementById("depTestError"),
    questions: document.getElementById("depTestQuestions"),
    submit: document.getElementById("depTestSubmit"),
    reset: document.getElementById("depTestReset"),
    result: document.getElementById("depTestResult"),
    resultHero: document.getElementById("depResultHero"),
    resultTitle: document.getElementById("depResultTitle"),
    resultSubtitle: document.getElementById("depResultSubtitle"),
    scoreMeta: document.getElementById("depScoreMeta"),
    resultNote: document.getElementById("depResultNote"),
    resultTextCombined: document.getElementById("depResultTextCombined"),
    helpText: document.getElementById("depHelpText"),
    links: document.getElementById("depLinks")
  };

  function showError(message) {
    el.error.style.display = "block";
    el.error.textContent = message;
  }

  function clearError() {
    el.error.style.display = "none";
    el.error.textContent = "";
  }

  function escapeHtml(str) {
    return String(str)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");
  }

  function isNonEmptyString(value) {
    return typeof value === "string" && value.trim() !== "";
  }

  function nl2p(text) {
    return String(text)
      .split(/\n{2,}/)
      .map(part => "<p>" + escapeHtml(part).replace(/\n/g, "<br>") + "</p>")
      .join("");
  }

  function endsWithSlug(url, slug) {
    const cleanUrl = String(url).replace(/\/+$/, "");
    const cleanSlug = String(slug).replace(/^\/+|\/+$/g, "");
    return cleanUrl.endsWith("/" + cleanSlug);
  }

  function validateTestData(data) {
    for (const key of REQUIRED_TOP_LEVEL_FIELDS) {
      if (!(key in data)) {
        return "Fehler: In TEST_DATA fehlt das Pflichtfeld '" + key + "'.";
      }
    }

    if (!isNonEmptyString(data.title)) {
      return "Fehler: TEST_DATA.title ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.intro)) {
      return "Fehler: TEST_DATA.intro ist leer oder ungültig.";
    }

    if (!isNonEmptyString(data.testType) || !ALLOWED_TEST_TYPES.includes(data.testType)) {
      return "Fehler: TEST_DATA.testType ist ungültig. Erlaubt sind: risk, standard, fun.";
    }

    if (!Array.isArray(data.questions) || data.questions.length !== 12) {
      return "Fehler: TEST_DATA.questions muss genau 12 Fragen enthalten.";
    }

    for (let i = 0; i < data.questions.length; i++) {
      const q = data.questions[i];

      if (!q || !isNonEmptyString(q.text)) {
        return "Fehler: Frage " + (i + 1) + " hat keinen gültigen Text.";
      }

      if (!Array.isArray(q.answers) || q.answers.length !== 5) {
        return "Fehler: Frage " + (i + 1) + " muss genau 5 Antworten haben.";
      }

      const values = q.answers.map(a => a.value);
      const expected = [0, 1, 2, 3, 4];

      if (JSON.stringify(values) !== JSON.stringify(expected)) {
        return "Fehler: Frage " + (i + 1) + " hat keine gültigen Antwortwerte von 0 bis 4.";
      }

      for (let j = 0; j < q.answers.length; j++) {
        if (!isNonEmptyString(q.answers[j].text)) {
          return "Fehler: Frage " + (i + 1) + ", Antwort " + (j + 1) + " hat keinen gültigen Text.";
        }
      }
    }

    if (typeof data.results !== "object" || data.results === null) {
      return "Fehler: TEST_DATA.results ist ungültig.";
    }

    for (const key of REQUIRED_RESULT_KEYS) {
      if (!(key in data.results)) {
        return "Fehler: In TEST_DATA.results fehlt der Bereich '" + key + "'. Erwartet werden: low, mid, high, veryHigh.";
      }

      const result = data.results[key];

      if (typeof result !== "object" || result === null) {
        return "Fehler: Der Ergebnisbereich '" + key + "' ist ungültig.";
      }

      for (const field of REQUIRED_RESULT_FIELDS) {
        if (!(field in result)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' fehlt das Feld '" + field + "'.";
        }
      }

      if (!isNonEmptyString(result.badge)) {
        return "Fehler: '" + key + ".badge' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.title)) {
        return "Fehler: '" + key + ".title' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.subtitle)) {
        return "Fehler: '" + key + ".subtitle' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text1)) {
        return "Fehler: '" + key + ".text1' ist leer oder ungültig.";
      }

      if (!isNonEmptyString(result.text2)) {
        return "Fehler: '" + key + ".text2' ist leer oder ungültig.";
      }

      if (!Array.isArray(result.advice) || result.advice.length < 2 || result.advice.length > 4) {
        return "Fehler: '" + key + ".advice' muss 2 bis 4 Punkte enthalten.";
      }

      for (let i = 0; i < result.advice.length; i++) {
        if (!isNonEmptyString(result.advice[i])) {
          return "Fehler: '" + key + ".advice[" + i + "]' ist leer oder ungültig.";
        }
      }

      if (!Array.isArray(result.links) || result.links.length < 2 || result.links.length > 3) {
        return "Fehler: '" + key + ".links' muss 2 bis 3 weiterführende Tests enthalten.";
      }

      const seenSlugs = new Set();

      for (const link of result.links) {
        if (!link || typeof link !== "object") {
          return "Fehler: Ein Link in '" + key + ".links' ist ungültig.";
        }
        if (!isNonEmptyString(link.slug)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Slug.";
        }
        if (!isNonEmptyString(link.title)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keinen gültigen Titel.";
        }
        if (!isNonEmptyString(link.url)) {
          return "Fehler: Ein Link in '" + key + ".links' hat keine gültige URL.";
        }
        if (seenSlugs.has(link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' gibt es doppelte Links mit dem Slug '" + link.slug + "'.";
        }
        if (!endsWithSlug(link.url, link.slug)) {
          return "Fehler: Im Ergebnisbereich '" + key + "' passt die URL nicht zum Slug '" + link.slug + "'.";
        }

        seenSlugs.add(link.slug);
      }
    }

    return null;
  }

  function renderQuestions(data, userAnswers) {
    let html = "";

    data.questions.forEach((question, qIndex) => {
      const answers = question.answers;

      html += `
        <div class="dep-question">
          <div class="dep-question-title">${qIndex + 1}. ${escapeHtml(question.text)}</div>
      `;

      answers.forEach((answer, aIndex) => {
        const inputId = `depQ${qIndex}A${aIndex}`;
        html += `
          <label class="dep-answer" for="${inputId}">
            <input
              type="radio"
              id="${inputId}"
              name="depQ${qIndex}"
              value="${answer.value}"
              ${userAnswers[qIndex] === answer.value ? "checked" : ""}
            >
            <span class="dep-answer-text">${escapeHtml(answer.text)}</span>
          </label>
        `;
      });

      html += `</div>`;
    });

    el.questions.innerHTML = html;
  }

  function bindAnswerEvents(userAnswers) {
    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');

    radioInputs.forEach(input => {
      input.addEventListener("change", function () {
        const qIndex = Number(this.name.replace("depQ", ""));
        userAnswers[qIndex] = Number(this.value);
        clearError();
      });
    });
  }

  function getStageByScore(score) {
    if (score <= 10) return 0;
    if (score <= 21) return 1;
    if (score <= 33) return 2;
    return 3;
  }

  function applyRedFlagAdjustment(stage, answers, testType) {
    const config = RED_FLAG_CONFIG[testType];
    const highCount = answers.filter(v => v >= 3).length;
    const maxCount = answers.filter(v => v === 4).length;

    let adjustedStage = stage;
    let redFlagTriggered = false;

    if (config.useHighThreshold && highCount >= config.highThreshold) {
      adjustedStage += 1;
      redFlagTriggered = true;
    }

    if (config.useMaxOverride && maxCount >= config.maxThreshold) {
      adjustedStage = 3;
      redFlagTriggered = true;
    }

    if (adjustedStage > 3) {
      adjustedStage = 3;
    }

    return {
      adjustedStage,
      highCount,
      maxCount,
      redFlagTriggered
    };
  }

  function getResultKeyByStage(stage) {
    if (stage === 0) return "low";
    if (stage === 1) return "mid";
    if (stage === 2) return "high";
    return "veryHigh";
  }

  function getHeroClassByStage(stage) {
    if (stage === 0) return "dep-result-hero dep-result-hero--low";
    if (stage === 1) return "dep-result-hero dep-result-hero--mild";
    if (stage === 2) return "dep-result-hero dep-result-hero--mid";
    return "dep-result-hero dep-result-hero--high";
  }

  function renderAdviceList(items) {
    const lis = items.map(item => "<li>" + escapeHtml(item) + "</li>").join("");
    return '<ul class="dep-advice-list">' + lis + "</ul>";
  }

  function renderLinks(links) {
    return links.map(link => {
      return `
        <a class="dep-link-card" href="${escapeHtml(link.url)}" data-slug="${escapeHtml(link.slug)}">
          ${escapeHtml(link.title)}
        </a>
      `;
    }).join("");
  }

  function resetTest(userAnswers) {
    for (let i = 0; i < userAnswers.length; i++) {
      userAnswers[i] = undefined;
    }

    const radioInputs = el.questions.querySelectorAll('input[type="radio"]');
    radioInputs.forEach(input => {
      input.checked = false;
    });

    clearError();
    el.result.style.display = "none";
    el.scoreMeta.textContent = "";
    el.resultNote.textContent = "";
    el.resultNote.style.display = "none";
    el.resultTitle.textContent = "";
    el.resultSubtitle.textContent = "";
    el.resultTextCombined.innerHTML = "";
    el.helpText.innerHTML = "";
    el.links.innerHTML = "";
    el.wrap.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function renderResult(data, score, baseStage, adjustedStage, redFlagTriggered) {
    const key = getResultKeyByStage(adjustedStage);
    const resultData = data.results[key];

    el.resultHero.className = getHeroClassByStage(adjustedStage);
    el.resultTitle.textContent = resultData.title;
    el.resultSubtitle.textContent = resultData.subtitle;
    el.resultTextCombined.innerHTML = nl2p(resultData.text1 + "\n\n" + resultData.text2);
    el.helpText.innerHTML = renderAdviceList(resultData.advice);
    el.links.innerHTML = renderLinks(resultData.links);
    el.scoreMeta.textContent = score + " von 48 Punkten";

    if (redFlagTriggered && adjustedStage > baseStage) {
      el.resultNote.textContent = "Hinweis: Einzelne hohe Antworten wirken sich stärker auf dein Ergebnis aus als der Gesamtwert.";
      el.resultNote.style.display = "block";
    } else {
      el.resultNote.textContent = "";
      el.resultNote.style.display = "none";
    }

    el.result.style.display = "block";
    el.result.scrollIntoView({ behavior: "smooth", block: "start" });
  }

  function init() {
    const validationError = validateTestData(TEST_DATA);

    if (validationError) {
      showError(validationError);
      return;
    }

    clearError();

    el.title.textContent = TEST_DATA.title;
    el.intro.textContent = TEST_DATA.intro;

    const userAnswers = new Array(TEST_DATA.questions.length).fill(undefined);

    renderQuestions(TEST_DATA, userAnswers);
    bindAnswerEvents(userAnswers);

    el.submit.addEventListener("click", function () {
      const unanswered = userAnswers
        .map((value, index) => value === undefined ? index + 1 : null)
        .filter(Boolean);

      if (unanswered.length > 0) {
        el.result.style.display = "none";
        showError("Bitte beantworte alle Fragen. Offen: " + unanswered.join(", "));
        el.error.scrollIntoView({ behavior: "smooth", block: "center" });
        return;
      }

      clearError();

      const score = userAnswers.reduce((sum, value) => sum + value, 0);
      const baseStage = getStageByScore(score);
      const redFlagData = applyRedFlagAdjustment(baseStage, userAnswers, TEST_DATA.testType);

      renderResult(
        TEST_DATA,
        score,
        baseStage,
        redFlagData.adjustedStage,
        redFlagData.redFlagTriggered
      );
    });

    el.reset.addEventListener("click", function () {
      resetTest(userAnswers);
    });
  }

  init();
})();
</script>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
