/* TEAM ▸ Bot Testing (11.10.2026). Bausteine aus d-bot.css (dbot-reiter,
   dbot-knopf, dbot-feld, dbot-trenner, dbot-zahl); hier nur, was dazukommt.
   Vorschau mit dem Nutzer abgestimmt: WebApp/Tests/previews/bot-testing/.
   Bewertung: Dringlich = Gefahr-Rot, Nötig = Warnung, Nice to have = neutral. */

.bugs-view { width: 100%; }

/* 11.10.: 40 % breiter (1180 → 1650 px), Nutzer: „mehr vom Bildschirm verwenden“. */
#botTestingMount {
  max-width: 1650px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4) var(--space-10);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.bugs-titel { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; }
.bugs-titel h2 { margin: 0; font-size: var(--fs-20); font-weight: var(--fw-semibold); color: var(--text-1); }
.bugs-titel p { margin: 0; color: var(--text-3); font-size: var(--fs-13); }

.bugs-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.bugs-zahl.is-offen { background: var(--gold-flaeche); color: var(--gold); }
.bugs-zahl.is-null { opacity: .5; }
.bugs-zahl.is-dringlich { background: color-mix(in srgb, var(--danger) 22%, transparent); color: var(--text-danger); }

/* Zahl am Menüpunkt „Bot Testing“ unter „TEAM ▾“ */
.bugs-menue-zahl {
  margin-left: auto;
  min-width: 22px;
  padding: 1px var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--gold-flaeche);
  color: var(--gold);
  font-size: var(--fs-11);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.bugs-menue-zahl.is-null { background: var(--surface-3); color: var(--text-3); }
.bugs-menue-zahl.is-dringlich { background: color-mix(in srgb, var(--danger) 22%, transparent); color: var(--text-danger); }

/* ---------- Formular ---------- */

.bugs-formular {
  border: 1px solid var(--gold-rand);
  border-radius: var(--radius-md);
  background: var(--surface-1);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.bugs-formular--bearbeiten { border-color: var(--border-3); }
.bugs-formular__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.bugs-formular__kopf h3 { margin: 0; font-size: var(--fs-14); font-weight: var(--fw-semibold); color: var(--text-1); }
.bugs-art { display: inline-flex; gap: var(--space-1); }
.bugs-zeichen { margin-left: auto; font-size: var(--fs-11); color: var(--text-3); font-variant-numeric: tabular-nums; }
.bugs-fehlt { margin: 0; font-size: var(--fs-12); color: var(--text-danger); }

.bugs-stufen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.bugs-stufe {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-2);
  border-radius: var(--radius-sm);
  background: var(--surface-0);
  color: var(--text-2);
  font: inherit;
  cursor: pointer;
}
.bugs-stufe:hover { border-color: var(--border-3); }
.bugs-stufe:focus-visible, .bugs-haken:focus-visible, .bugs-erledigt-kopf:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.bugs-stufe__name { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: var(--fw-semibold); font-size: var(--fs-13); color: var(--text-1); }
.bugs-stufe__text { font-size: var(--fs-12); color: var(--text-3); line-height: var(--lh-normal); }
.bugs-stufe.is-gewaehlt.is-dringlich { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, transparent); }
.bugs-stufe.is-gewaehlt.is-noetig { border-color: var(--warning); background: color-mix(in srgb, var(--warning) 10%, transparent); }
.bugs-stufe.is-gewaehlt.is-nice { border-color: var(--border-3); background: var(--surface-2); }

.bugs-punkt { width: 8px; height: 8px; border-radius: 50%; background: var(--text-3); flex: 0 0 auto; }
.is-dringlich > .bugs-punkt, .is-dringlich .bugs-stufe__name .bugs-punkt { background: var(--danger); }
.is-noetig > .bugs-punkt, .is-noetig .bugs-stufe__name .bugs-punkt { background: var(--warning); }

/* ---------- Liste ---------- */

.bugs-karte {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--space-3);
  align-items: start;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--border-2);
  border-radius: var(--radius-md);
  background: var(--surface-1);
}
.bugs-karte.is-dringlich:not(.is-erledigt) { border-left: 3px solid var(--danger); }
/* Nötig (Nutzer 11.10.): wie Dringlich ein Streifen vorn, leicht orange. */
.bugs-karte.is-noetig:not(.is-erledigt) { border-left: 3px solid color-mix(in srgb, var(--warning) 70%, transparent); }
.bugs-karte.is-frisch { border-color: var(--gold-rand); }
.bugs-karte.is-erledigt { background: transparent; }
.bugs-karte.is-erledigt .bugs-name { color: var(--text-3); text-decoration: line-through; }
.bugs-karte.is-erledigt .bugs-beschreibung { color: var(--text-3); }

.bugs-haken {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  padding: 0;
  border: 1.5px solid var(--border-3);
  border-radius: 6px;
  background: transparent;
  color: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.bugs-haken:hover:not([disabled]) { border-color: var(--check, var(--success)); }
.bugs-haken[disabled] { opacity: .45; cursor: progress; }
.bugs-haken.is-an { background: var(--check, var(--success)); border-color: var(--check, var(--success)); color: var(--surface-0); }
.bugs-haken svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

.bugs-text { min-width: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.bugs-zeile1 { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
/* Überschrift klar über dem Text (Nutzer 11.10.): größer, kräftig, volle Helligkeit;
   der Text darunter etwas zurückgenommen, aber gut lesbar. */
.bugs-name { font-weight: var(--fw-bold); font-size: var(--fs-16); line-height: var(--lh-tight); color: var(--text-1); overflow-wrap: anywhere; }
.bugs-beschreibung {
  --bugs-zeile: 1.55em;
  margin: 0; font-size: var(--fs-14); line-height: var(--bugs-zeile);
  color: color-mix(in srgb, var(--text-1) 80%, var(--surface-1));
  white-space: pre-wrap; overflow-wrap: anywhere;
}
.bugs-beschreibung.is-leer { color: var(--text-3); font-style: italic; }
/* Zugeklappt: Titel eine Zeile, Text genau drei Zeilen – alle Karten gleich hoch. */
.bugs-karte.is-zu .bugs-zeile1 { flex-wrap: nowrap; }
.bugs-karte.is-zu .bugs-name { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
.bugs-karte.is-zu .bugs-stufe-chip, .bugs-karte.is-zu .bugs-art-chip { flex: 0 0 auto; }
.bugs-karte.is-zu .bugs-beschreibung {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3;
  overflow: hidden; height: calc(3 * var(--bugs-zeile));
}
.bugs-fuss { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-1) var(--space-3); }
.bugs-karte.is-klappbar { cursor: pointer; }
/* Nur oben/rechts/unten: der farbige Streifen links (Dringlich/Nötig) bleibt. */
.bugs-karte.is-klappbar:hover { border-top-color: var(--border-3); border-right-color: var(--border-3); border-bottom-color: var(--border-3); }
.bugs-mehr { padding: 0; border: 0; background: none; color: var(--gold); font: inherit; font-size: var(--fs-12); cursor: pointer; }
.bugs-mehr:hover { text-decoration: underline; }
.bugs-mehr:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 2px; }
.bugs-link { color: var(--gold); text-decoration: none; border-bottom: 1px solid var(--gold-rand); }
.bugs-link:hover { border-bottom-color: var(--gold); }
.bugs-link:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 2px; }
.bugs-quellen { display: inline-flex; gap: var(--space-2); }
.bugs-meta { font-size: var(--fs-12); color: var(--text-3); }

.bugs-stufe-chip { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-12); font-weight: var(--fw-semibold); color: var(--text-2); }
.bugs-stufe-chip.is-dringlich { color: var(--text-danger); }
.bugs-stufe-chip.is-noetig { color: var(--text-warning); }
.bugs-art-chip {
  font-size: var(--fs-11);
  padding: 1px var(--space-2);
  border-radius: var(--radius-pill);
  border: 1px solid var(--border-3);
  color: var(--text-2);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}
.bugs-art-chip.is-bug { border-color: color-mix(in srgb, var(--danger) 45%, transparent); color: var(--text-danger); }

.bugs-aktionen { display: flex; gap: var(--space-1); }
.bugs-erledigt-kopf { width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.bugs-leer { margin: 0; padding: var(--space-6); text-align: center; color: var(--text-3); border: 1px dashed var(--border-2); border-radius: var(--radius-md); }

@media (max-width: 640px) {
  #botTestingMount { padding-inline: var(--space-4); }
  .bugs-karte { grid-template-columns: auto 1fr; }
  .bugs-aktionen { grid-column: 2; }
  .bugs-stufen { grid-template-columns: 1fr; }
}

/* ---------- Bilder (11.10.2026) ---------- */

/* Großansicht: in beiden Themen dunkel hinterlegt (das Bild soll wirken),
   deshalb eigene Werte statt der Thema-Flächen. */
:root {
  --bugs-gross-grund: rgba(0, 0, 0, .86);
  --bugs-gross-bildgrund: #fff;
  --bugs-gross-knopf: rgba(20, 20, 22, .8);
  --bugs-gross-knopf-rand: rgba(255, 255, 255, .25);
  --bugs-gross-text: #fff;
  --bugs-gross-zahl: rgba(255, 255, 255, .8);
}

.bugs-formular.is-ziel { border-color: var(--gold); background: var(--gold-hauch); }

.bugs-anhang { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-1); }
.bugs-anhang__bild { position: relative; width: 84px; height: 64px; border: 1px solid var(--border-2); border-radius: var(--radius-sm); overflow: hidden; background: var(--surface-0); }
.bugs-anhang__bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bugs-anhang__weg {
  position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; padding: 0;
  border: 0; border-radius: 50%; background: var(--overlay, rgba(0, 0, 0, .65)); color: var(--text-1);
  font-size: 14px; line-height: 20px; cursor: pointer;
}
.bugs-anhang__weg:hover { background: var(--danger); }
.bugs-anhang__plus {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 0;
  width: 84px; height: 64px; border: 1px dashed var(--border-3); border-radius: var(--radius-sm);
  background: transparent; color: var(--text-2); font: inherit; font-size: var(--fs-12); cursor: pointer;
}
.bugs-anhang__plus:hover:not([disabled]) { border-color: var(--gold); color: var(--gold); }
.bugs-anhang__plus[disabled] { opacity: .45; cursor: default; }
.bugs-anhang__plus-zeichen { font-size: var(--fs-20); line-height: 1; }
.bugs-anhang__hinweis { font-size: var(--fs-12); color: var(--text-3); }
.bugs-anhang__weg:focus-visible, .bugs-anhang__plus:focus-visible, .bugs-vorschau__bild:focus-visible, .bugs-gross button:focus-visible { outline: none; box-shadow: var(--focus-ring); }

.bugs-vorschau { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-1); }
.bugs-vorschau__bild { width: 96px; height: 72px; padding: 0; border: 1px solid var(--border-2); border-radius: var(--radius-sm); overflow: hidden; background: var(--surface-0); cursor: zoom-in; }
.bugs-vorschau__bild:hover { border-color: var(--border-3); }
.bugs-vorschau__bild img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Großansicht über allem; Bild so groß wie der Bildschirm erlaubt. */
.bugs-gross {
  position: fixed; inset: 0; z-index: 3000;
  display: flex; align-items: center; justify-content: center;
  padding: var(--space-8) var(--space-10);
  background: var(--bugs-gross-grund);
}
.bugs-gross__bild { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); background: var(--bugs-gross-bildgrund); }
.bugs-gross__zu, .bugs-gross__pfeil {
  position: absolute; border: 1px solid var(--bugs-gross-knopf-rand); border-radius: 50%;
  background: var(--bugs-gross-knopf); color: var(--bugs-gross-text); cursor: pointer; font-size: 22px; line-height: 1;
  width: 40px; height: 40px; display: grid; place-items: center;
}
.bugs-gross__zu { top: var(--space-4); right: var(--space-4); }
.bugs-gross__pfeil.is-links { left: var(--space-4); top: 50%; transform: translateY(-50%); }
.bugs-gross__pfeil.is-rechts { right: var(--space-4); top: 50%; transform: translateY(-50%); }
.bugs-gross__zahl { position: absolute; bottom: var(--space-4); left: 50%; transform: translateX(-50%); color: var(--bugs-gross-zahl); font-size: var(--fs-13); font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
  .bugs-gross { padding: var(--space-10) var(--space-2); }
  .bugs-gross__pfeil { top: auto; bottom: var(--space-3); transform: none; }
}

/* ---------- Suche und Filter (11.10.2026) ---------- */

.bugs-filter { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.bugs-filter .bugs-suche { flex: 1 1 280px; max-width: 520px; }
.bugs-filter__gruppe { display: inline-flex; gap: var(--space-1); padding: 2px; border: 1px solid var(--border-2); border-radius: var(--radius-pill); }
.bugs-filter__wahl { border-color: transparent; padding: 2px var(--space-3); font-size: var(--fs-12); }
.bugs-filter__info { margin: 0 0 var(--space-1); font-size: var(--fs-12); color: var(--text-3); }
.bugs-bot-chip { border-color: var(--gold-rand); color: var(--gold); text-transform: none; letter-spacing: 0; }
.bugs-filter__info .bugs-mehr { margin-left: var(--space-1); }
.bugs-zahl.is-treffer { background: var(--surface-3); color: var(--text-1); }

/* ---------- Prüfung auf Doppelte ---------- */

.bugs-pruefung { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); border-radius: var(--radius-md); }
.bugs-pruefung.is-laeuft { flex-direction: row; align-items: center; gap: var(--space-3); color: var(--text-2); font-size: var(--fs-13); background: var(--surface-0); }
.bugs-pruefung__kreis {
  width: 18px; height: 18px; flex: 0 0 auto; border-radius: 50%;
  border: 2px solid var(--border-3); border-top-color: var(--gold);
  animation: bugs-dreh .8s linear infinite;
}
@keyframes bugs-dreh { to { transform: rotate(360deg); } }
.bugs-pruefung.is-treffer { border: 1px solid color-mix(in srgb, var(--warning) 55%, transparent); background: color-mix(in srgb, var(--warning) 7%, transparent); animation: bugs-auf .25s ease-out 1; }
@keyframes bugs-auf { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.bugs-pruefung__titel { margin: 0; font-weight: var(--fw-bold); font-size: var(--fs-14); color: var(--text-warning); }
.bugs-pruefung__text { margin: 0; font-size: var(--fs-13); color: var(--text-2); }

.bugs-treffer { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-2) var(--space-3); border: 1px solid var(--border-2); border-radius: var(--radius-sm); background: var(--surface-1); cursor: pointer; }
.bugs-treffer .bugs-zeile1 { flex-wrap: nowrap; }
.bugs-treffer .bugs-name { flex: 1 1 auto; min-width: 0; font-size: var(--fs-14); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bugs-treffer__status { font-size: var(--fs-12); color: var(--text-3); white-space: nowrap; }
.bugs-treffer.is-erledigt .bugs-treffer__status { color: var(--text-success); }
.bugs-treffer__text {
  margin: 0; font-size: var(--fs-13); line-height: 1.5em; color: color-mix(in srgb, var(--text-1) 75%, var(--surface-1));
  white-space: pre-wrap; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.bugs-treffer.is-auf .bugs-treffer__text { display: block; }
.bugs-treffer.is-auf .bugs-name { white-space: normal; }

/* „✓ Gespeichert“: kurz aufleuchten. */
.dbot-meldung.bugs-ok { color: var(--text-success); font-weight: var(--fw-semibold); animation: bugs-ok 1.6s ease-out 1; }
@keyframes bugs-ok {
  0% { opacity: 0; transform: scale(.96); }
  15% { opacity: 1; transform: scale(1.04); }
  30% { transform: none; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .bugs-pruefung__kreis { animation-duration: 2s; }
  .bugs-pruefung.is-treffer, .dbot-meldung.bugs-ok { animation: none; }
}

/* ---------- Vorschlag-Bot (11.10.2026) ---------- */

.bugs-vorschlag-reiter { border-style: dashed; }
.bugs-vorschlag-reiter:not(.is-aktiv) { color: var(--gold); border-color: var(--gold-rand); }
.bugs-haken.is-vorschlag { border: 0; color: var(--gold); font-size: var(--fs-16); cursor: default; }
.bugs-aehnlich { margin: 0; font-size: var(--fs-12); color: var(--text-warning); }
.bugs-uebernehmen {
  display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3);
  border: 1px solid var(--gold-rand); border-radius: var(--radius-sm); background: var(--gold-hauch); cursor: default;
}
.bugs-uebernehmen .bugs-filter__gruppe { flex-wrap: wrap; border-radius: var(--radius-md); }
