diff --git a/README.md b/README.md
index c3b958f..10e6cf9 100644
--- a/README.md
+++ b/README.md
@@ -296,6 +296,7 @@ localStorage.setItem('auth', JSON.stringify({
- Fehlersuche in asynchronen Promise-Ketten
- Code-Style-Verbesserungen (ES6+ Best Practices)
- Regex-Optimierungen für Text-Vergleich
+- Generierung visueller Assets: Logo, Icon sowie Challenge-Grafiken für Gewonnen/Verloren/Unentschieden wurden mit ChatGPT erstellt und anschließend im Projekt eingebunden
**Kritische Bewertung:**
- ✅ **Effektiv für**: Schnelle Fehlerbehebung, Best-Practice-Vorschläge
diff --git a/assets/css/custom.css b/assets/css/custom.css
index b95400b..b1ba5e6 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -109,6 +109,13 @@ p {
.btn:hover {
background-color: #2b4a7c;
}
+.btn:disabled,
+.btn.disabled {
+ background-color: #adb5bd;
+ color: #495057;
+ cursor: not-allowed;
+ opacity: 1;
+}
.btn-danger {
background-color: #a84848;
color: #fff;
@@ -370,6 +377,51 @@ p {
background: #fff4f4;
}
+.challenge-message-group {
+ border-left-color: #6f7fb7;
+}
+
+.challenge-thread {
+ display: grid;
+ gap: 8px;
+ margin-top: 12px;
+ border-top: 1px solid #e5e7eb;
+ padding-top: 10px;
+}
+
+.challenge-thread.d-none {
+ display: none;
+}
+
+.challenge-thread-toggle {
+ border: none;
+ background: transparent;
+ color: #4a6fa5;
+ display: inline-flex;
+ font-size: 0.9rem;
+ font-weight: 600;
+ margin-top: 10px;
+ padding: 0;
+}
+
+.challenge-thread-toggle:hover {
+ color: #2b4a7c;
+ text-decoration: underline;
+}
+
+.challenge-thread-item {
+ border-radius: 6px;
+ background: #f8fafc;
+ padding: 8px 10px;
+}
+
+.challenge-thread-item span {
+ display: block;
+ color: #64748b;
+ font-size: 0.82rem;
+ margin-bottom: 4px;
+}
+
.message-meta {
display: flex;
justify-content: space-between;
@@ -389,6 +441,12 @@ p {
margin: 0;
}
+.challenge-status-button:disabled {
+ background-color: #e5e7eb;
+ border: 1px solid #cbd5e1;
+ color: #64748b;
+}
+
.challenge-result-graphic,
.play-challenge-result {
margin-top: 12px;
@@ -405,6 +463,38 @@ p {
color: #ffffff;
}
+.challenge-outcome {
+ align-items: center;
+ background: #f8fafc;
+ display: flex;
+ gap: 12px;
+ padding: 14px;
+}
+
+.challenge-outcome img {
+ border-radius: 8px;
+ height: 72px;
+ object-fit: cover;
+ width: 72px;
+}
+
+.challenge-outcome strong {
+ color: #1b1b2f;
+ font-size: 1.5rem;
+}
+
+.challenge-outcome-win {
+ background: #e8f7ee;
+}
+
+.challenge-outcome-loss {
+ background: #fdecec;
+}
+
+.challenge-outcome-draw {
+ background: #eef3fb;
+}
+
.challenge-result-win,
.play-challenge-result-winner .play-challenge-result-title {
background: #198754;
diff --git a/docs/Bewertungsraster_Frontend.xlsx b/docs/Bewertungsraster_Frontend.xlsx
new file mode 100644
index 0000000..6ef6b13
Binary files /dev/null and b/docs/Bewertungsraster_Frontend.xlsx differ
diff --git a/image/sieg.png b/image/sieg.png
new file mode 100644
index 0000000..6c54aae
Binary files /dev/null and b/image/sieg.png differ
diff --git a/image/unentschieden.png b/image/unentschieden.png
new file mode 100644
index 0000000..6418403
Binary files /dev/null and b/image/unentschieden.png differ
diff --git a/image/verloren.png b/image/verloren.png
new file mode 100644
index 0000000..4f2b7f1
Binary files /dev/null and b/image/verloren.png differ
diff --git a/index.html b/index.html
index 886c75d..5dd4a8e 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
-
+