/* =========================================================
   📖 Leseverständnis-Übung (isoliertes Pastell-Design)
   ========================================================= */

#app {
  font-family: "Inter", system-ui, sans-serif;
  color: var(--text, #1f2937);
  background: transparent;
  border-radius: 14px;
  padding: 1.8rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 1.2rem;

  /* ✨ Animation / Übergänge */
  position: relative;
  overflow: hidden;
  transition:
    min-height 0.35s ease,
    background 0.3s ease,
    box-shadow 0.3s ease;
}


/* === Dialoge === */
.leseverstehen-dialog {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  margin-bottom: 1rem;
  animation: fadeIn 0.3s ease both;
}

.leseverstehen-dialog.left {
  flex-direction: row;
  text-align: left;
}
.leseverstehen-dialog.right {
  flex-direction: row-reverse;
  text-align: right;
}

.leseverstehen-dialog img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid transparent;
}

.leseverstehen-dialog img[alt="clara"] { border-color: #ff80ab; }
.leseverstehen-dialog img[alt="mateo"] { border-color: #80d8ff; }

.leseverstehen-bubble {
  background: #fff;
  border-radius: 12px;
  padding: 0.8rem 1rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  max-width: 80%;
  line-height: 1.4;
}

/* === Tooltip === */
u[data-translate] {
  text-decoration-color: #ffd54f;
  cursor: pointer;
  position: relative;
}
.tooltip {
  position: absolute;
  background: #ffd54f;
  color: #000;
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  top: -1.6rem;
  left: 0;
  white-space: nowrap;
  display: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

/* === Fragebereich === */
.leseverstehen-question {
  background: #fffaf2;
  border-radius: 12px;
  padding: 1.2rem;
  margin-top: 1.5rem;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.leseverstehen-question p {
  font-weight: 600;
  margin-bottom: 0.8rem;
}

/* === Multiple Choice === */
.leseverstehen-answer {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.7rem 1rem;
  margin: 0.4rem 0;
  background: #ffffff;
  border: 2px solid transparent;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.leseverstehen-answer:hover {
  background: #f0f9ff;
  border-color: #bbdefb;
}
.leseverstehen-answer.selected {
  background: #fff3cd;
  border-color: #ffd54f;
  box-shadow: 0 0 0 2px rgba(255, 224, 130, 0.4);
}


/* === Übersetzungsfeld === */
textarea#translateInput {
  width: 100%;
  resize: none;
  padding: 0.7rem 1rem;
  font-size: 1rem;
  border: 1px solid #ddd;
  border-radius: 10px;
  background: #fff;
  color: #1f2937;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: border-color 0.2s, box-shadow 0.2s;
}
textarea#translateInput:focus {
  outline: none;
  border-color: #ffe082;
  box-shadow: 0 0 0 3px rgba(255,224,130,0.3);
}

/* === Buttons === */
/* === Buttons allgemein === */
.leseverstehen-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.6rem 1.1rem;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.1s ease;
  margin-top: 0.8rem;  /* ✅ etwas Luft nach oben */
}


.leseverstehen-btn.yellow {
  background: #ffe082;
  color: #000;
}
.leseverstehen-btn.yellow:hover {
  background: #ffd54f;
  transform: translateY(-1px);
}

.leseverstehen-btn.green {
  background: #b9f6ca;
  color: #064b10;
}
.leseverstehen-btn.green:hover {
  background: #a5f0bc;
}

/* === Feedback === */
.feedback-bar {
  margin-top: 1rem;
  padding: 0.8rem 1rem;
  border-radius: 10px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  animation: fadeInUp 0.25s ease both;
}
.feedback-bar.correct {
  background: #e5f8e4;
  color: #155724;
  border: 1px solid #b2e5b2;
}
.feedback-bar.wrong {
  background: #ffdede;
  color: #721c24;
  border: 1px solid #f3bcbc;
}

/* === Wörter (Satz ordnen) === */
.word-bank, .drop-area {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.6rem;
}
.drop-area {
  min-height: 44px;
  border: 2px dashed #ccc;
  border-radius: 8px;
  padding: 0.5rem;
}
.word {
  background: #f9fafb;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 0.4rem 0.8rem;
  cursor: grab;
  transition: background 0.2s, transform 0.1s;
}
.word.dragging {
  opacity: 0.6;
  background: #ffe082;
  cursor: grabbing;
}

/* === Animationen === */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* === Dark Mode === */
@media (prefers-color-scheme: dark) {
  .leseverstehen-bubble,
  .leseverstehen-question,
  .leseverstehen-answer,
  textarea#translateInput {
    background: #1e1e1e;
    color: #eaeaea;
    border-color: #333;
  }
  .word { background: #2a2a2a; color: #eaeaea; border-color: #444; }
  .drop-area { border-color: #555; }
  .leseverstehen-btn.yellow { background: #ffb74d; color: #000; }
  .leseverstehen-btn.green { background: #81c784; color: #fff; }
}



/* Für kleinere Displays */
@media (max-width: 640px) {
  #app {
    min-height: 360px;
    padding: 1.2rem;
  }
}

@keyframes fadeInContent {
  from {
    opacity: 0;
    transform: translateY(15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* === Allgemein für Dialoge (sanft einfliegen) === */
.leseverstehen-dialog {
  opacity: 0;
  animation: dialogFade 0.45s ease forwards;
}

@keyframes dialogFade {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================================
   🧩 Globaler Feedback-Bereich (unterhalb des Containers)
   ========================================================= */

#feedback-global {
  min-height: 70px;                 /* immer stabil, kein Springen */
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.8rem;       /* vorher: 1.5rem → jetzt kompakter */
  transition: opacity 0.3s ease;
}

/* Innerer Balken (Feedback) */
#feedback-global .feedback-bar {
  width: 100%;
  max-width: 720px;
  padding: 0.9rem 1.2rem;
  border-radius: 10px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  box-sizing: border-box;
  animation: fadeInUp 0.25s ease both;
  box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

/* ✅ Farben im Pastell-Stil */
#feedback-global .feedback-bar.correct {
  background: #e5f8e4;
  color: #155724;
  border: 1px solid #b2e5b2;
}

#feedback-global .feedback-bar.wrong {
  background: #ffdede;
  color: #721c24;
  border: 1px solid #f3bcbc;
}

/* === Button im Feedback-Bereich === */
#feedback-global .leseverstehen-btn.green {
  background: #b9f6ca;
  color: #064b10;
  border-radius: 8px;
  font-weight: 600;
  padding: 0.6rem 1.1rem;
  transition: background 0.2s ease, transform 0.1s ease;
}

#feedback-global .leseverstehen-btn.green:hover {
  background: #a5f0bc;
  transform: translateY(-1px);
}

/* === Dark Mode === */
@media (prefers-color-scheme: dark) {
  #feedback-global .feedback-bar.correct {
    background: #1e3925;
    color: #c8e6c9;
    border-color: #33691e;
  }

  #feedback-global .feedback-bar.wrong {
    background: #3b1a1a;
    color: #ffcdd2;
    border-color: #ef9a9a;
  }
}

/* =========================================================
   🌈 Globaler Feedback-Bereich (unterhalb des Containers)
   ========================================================= */

#feedback-global {
  min-height: 70px;                       /* fester Bereich, kein Springen */
  display: flex;
  align-items: center;
  justify-content: center;
    margin-top: 0.5rem;
  opacity: 0;                              /* unsichtbar bis Feedback kommt */
  transition: opacity 0.35s ease-in-out;
}

#feedback-global .feedback-bar {
  width: 100%;
  max-width: 720px;
  padding: 1rem 1.4rem;
  border-radius: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  box-sizing: border-box;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
  animation: fadeSlideUp 0.35s ease both;
}

/* ✅ Farben */
#feedback-global .feedback-bar.correct {
  background: #e5f8e4;
  color: #155724;
  border: 1px solid #b2e5b2;
  box-shadow: 0 6px 18px rgba(80, 160, 90, 0.12);
}

#feedback-global .feedback-bar.wrong {
  background: #ffeaea;
  color: #721c24;
  border: 1px solid #f3bcbc;
  box-shadow: 0 6px 18px rgba(220, 50, 50, 0.12);
}

/* ✅ Weiterlernen-Button */
#feedback-global .leseverstehen-btn.green {
  background: #b9f6ca;
  color: #064b10;
  border-radius: 8px;
  font-weight: 600;
  padding: 0.6rem 1.1rem;
  transition: background 0.2s ease, transform 0.1s ease;
}
#feedback-global .leseverstehen-btn.green:hover {
  background: #a5f0bc;
  transform: translateY(-1px);
}

/* ✨ Einblend-Animation */
@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* === Dark Mode === */
@media (prefers-color-scheme: dark) {
  #feedback-global .feedback-bar.correct {
    background: #1e3925;
    color: #c8e6c9;
    border-color: #33691e;
    box-shadow: 0 6px 18px rgba(70, 180, 80, 0.18);
  }

  #feedback-global .feedback-bar.wrong {
    background: #3b1a1a;
    color: #ffcdd2;
    border-color: #ef9a9a;
    box-shadow: 0 6px 18px rgba(200, 60, 60, 0.18);
  }
}

/* =========================================================
   🧭 Dezentes Fortschritts-HUD (kompakter & eleganter)
   ========================================================= */
/* =========================================================
   🧭 Minimalistisches HUD – nur Progressbar sichtbar
   ========================================================= */
/* =========================================================
   🧭 Minimalistisches HUD – nur Progressbar sichtbar
   ========================================================= */

/* =========================================================
   🧭 Kompaktes HUD – nur Fortschrittsbalken sichtbar
   ========================================================= */

#hud {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0.5rem 0;         /* etwas Luft oben/unten */
  margin-bottom: 1rem;
  min-height: 24px;          /* sorgt dafür, dass es immer da ist */
}

#progress-text {
  display: none !important;  /* Text ausblenden */
}

.progress-bar {
  width: 100%;
  max-width: 120px;
  height: 6px;
  background: #f3f4f6;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}

#progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #ffeb3b, #ffd54f);
  border-radius: 4px;
  width: 0%;
  transition: width 0.4s ease-in-out;
}

.fade-in {
  animation: fadeInContent 0.4s ease both;
}

.fade-out {
  animation: fadeOutContent 0.3s ease both;
}

@keyframes fadeInContent {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeOutContent {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-10px); }
}

/* ============================================
   Einheitliches Design für alle Eingabefelder
   ============================================ */

textarea#translateInput,
input#fillInput {
  width: 100%;
  min-height: 48px;
  resize: none;
  padding: 0.7rem 1rem;
  font-size: 1rem;
  border: 1px solid #ddd;
  border-radius: 10px;
  background: #fff;
  color: #1f2937;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: "Inter", system-ui, sans-serif;
}

/* Fokus-Stil */
textarea#translateInput:focus,
input#fillInput:focus {
  outline: none;
  border-color: #ffe082;
  box-shadow: 0 0 0 3px rgba(255,224,130,0.3);
}

/* Einheitliche Platzhalterfarbe */
textarea#translateInput::placeholder,
input#fillInput::placeholder {
  color: #9ca3af;
  font-style: italic;
}

/* ===========================
   🎉 Abschluss-Popup
   =========================== */
.end-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
  z-index: 9999;
}

.end-popup-overlay.visible {
  opacity: 1;
  pointer-events: auto;
}

.end-popup {
  background: #fff;
  border-radius: 16px;
  padding: 2rem 2.5rem;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  max-width: 400px;
  width: 90%;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}

.end-popup-overlay.visible .end-popup {
  transform: translateY(0);
}

.end-popup h2 {
  margin-bottom: 1rem;
  color: #222;
  font-size: 1.8rem;
}

.end-popup p {
  margin-bottom: 1.5rem;
  color: #444;
  line-height: 1.5;
  font-size: 1.1rem;
}

.end-popup button {
  font-size: 1rem;
  font-weight: 600;
  background: #ffca28;
  color: #000;
  border: none;
  padding: 0.7rem 1.5rem;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.2s ease;
}

.end-popup button:hover {
  background: #ffb300;
  transform: scale(1.05);
}


/* ===========================
   🌙 Dark Mode Anpassungen
   =========================== */
@media (prefers-color-scheme: dark) {

  /* Abschluss-Popup */
  .end-popup {
    background: #1e1e1e;
    color: #f3f3f3;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
  }

  .end-popup h2 {
    color: #fff59d;
  }

  .end-popup p {
    color: #ddd;
  }

  .end-popup a.leseverstehen-btn.yellow,
  .end-popup button {
    background: #ffb300;
    color: #000;
  }

  .end-popup a.leseverstehen-btn.yellow:hover,
  .end-popup button:hover {
    background: #ffa000;
    transform: scale(1.05);
  }

  /* Eingabefelder */
  textarea#translateInput,
  input#fillInput {
    background: #1e1e1e;
    color: #eee;
    border-color: #333;
  }

  textarea#translateInput:focus,
  input#fillInput:focus {
    border-color: #ffca28;
    box-shadow: 0 0 0 3px rgba(255, 202, 40, 0.3);
  }
}


  /* Lesbarkeit in gelber Auswahl verbessern */
  .leseverstehen-answer {
    background: #1f1f1f;
    color: #f0f0f0;
    border: 1px solid #3a3a3a;
  }

  .leseverstehen-answer:hover {
    background: #2a2a2a;
    border-color: #555;
  }

  /* 🔆 Auswahl im Dark Mode */
  .leseverstehen-answer.selected {
    background: #3a3a3a;        /* leicht aufgehellt */
    border-color: #ffca28;      /* Gelb-Rahmen bleibt */
    color: #fffde7;             /* heller Text, klar lesbar */
    box-shadow: 0 0 0 2px rgba(255, 202, 40, 0.25);
  }

  /* Für stärkeren Kontrast beim Hover auf ausgewählten Buttons */
  .leseverstehen-answer.selected:hover {
    background: #444;
  }

  /* Eingabefelder (Dark Mode clean) */
  input#fillInput,
  textarea#translateInput {
    background: #2b2b2b;     /* dunkles, neutrales Grau */
    color: #f5f5f5;          /* heller Text */
    border: 1px solid #444;  /* dezenter Rahmen */
    box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  }

  input#fillInput:focus,
  textarea#translateInput:focus {
    border-color: #ffca28;   /* dein Markengelb */
    box-shadow: 0 0 0 3px rgba(255, 202, 40, 0.25);
  }

  /* Platzhalter */
  input#fillInput::placeholder,
  textarea#translateInput::placeholder {
    color: #aaa;
    font-style: italic;
  }

  /* 🔧 Eingabefelder optimieren */
  input#fillInput,
  textarea#translateInput {
    background: #2b2b2b;       /* neutral-dunkler Hintergrund */
    color: #f5f5f5;            /* heller Text */
    border: 1px solid #444;    /* dezente Kontur */
    box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  }

  input#fillInput:focus,
  textarea#translateInput:focus {
    border-color: #ffca28;     /* dein Marken-Gelb */
    box-shadow: 0 0 0 3px rgba(255, 202, 40, 0.25);
  }

  input#fillInput::placeholder,
  textarea#translateInput::placeholder {
    color: #aaa;
    font-style: italic;
  }

  /* === Abschluss-Popup (Light & Dark Mode ready) === */
.end-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.3s ease;
  z-index: 9999;
}

.end-popup-overlay.visible {
  opacity: 1;
  pointer-events: all;
}

.end-popup {
  background: #ffffff;
  color: #222;
  padding: 2rem 2.5rem;
  border-radius: 1rem;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  max-width: 420px;
  width: 90%;
  position: relative;
  animation: popIn 0.35s ease;
}

.end-popup h2 {
  margin-top: 0.5rem;
  margin-bottom: 1rem;
  font-size: 1.5rem;
}

.end-popup p {
  line-height: 1.5;
  margin-bottom: 1.5rem;
}

.close-popup {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  background: transparent;
  border: none;
  font-size: 1.6rem;
  cursor: pointer;
  color: #888;
  transition: color 0.2s ease;
}

.close-popup:hover {
  color: #333;
}

/* === Dark Mode Anpassung === */
@media (prefers-color-scheme: dark) {
  .end-popup-overlay {
    background: rgba(0, 0, 0, 0.7);
  }

  .end-popup {
    background: #1e1e1e;
    color: #f0f0f0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
  }

  .close-popup {
    color: #bbb;
  }

  .close-popup:hover {
    color: #fff;
  }

  .end-popup a.leseverstehen-btn.yellow {
    background: #facc15; /* etwas gedeckteres Gelb im Darkmode */
    color: #222;
  }

  .end-popup a.leseverstehen-btn.yellow:hover {
    background: #ffdb4d;
  }
}

/* === Animation === */
@keyframes popIn {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* =========================================================
   🌗 Light vs. Dark Mode – Multiple-Choice Buttons
   ========================================================= */

/* ☀️ Light Mode (Standard) */
.leseverstehen-answer {
  background: #ffffff;
  color: #1f2937;
  border: 2px solid transparent;
  border-radius: 10px;
  font-weight: 600;
  padding: 0.75rem 1rem;
  margin: 0.4rem 0;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.leseverstehen-answer:hover {
  background: #f0f9ff;
  border-color: #bbdefb;
}
.leseverstehen-answer.selected {
  background: #fff3cd;
  color: #000;
  border-color: #ffd54f;
  box-shadow: 0 0 0 2px rgba(255, 224, 130, 0.4);
}

/* 🌙 Dark Mode */
@media (prefers-color-scheme: dark) {
  .leseverstehen-answer {
    background: #1e1e1e;
    color: #f5f5f5;
    border: 1px solid #3a3a3a;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  }

  .leseverstehen-answer:hover {
    background: #2a2a2a;
    border-color: #555;
  }

  .leseverstehen-answer.selected {
    background: #3a3a3a;
    color: #fffde7; /* leicht gelblich für Wärme */
    border-color: #ffca28;
    box-shadow: 0 0 0 2px rgba(255, 202, 40, 0.3);
  }

  /* Deutlichere Hover-Wirkung bei Auswahl */
  .leseverstehen-answer.selected:hover {
    background: #444;
  }

  /* Fragecontainer harmonischer im Dark Mode */
  .leseverstehen-question {
    background: #111;
    border: 1px solid #333;
    box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  }
}
