diff --git a/04_Tablet-Quiz/app/index.html b/04_Tablet-Quiz/app/index.html
index c015865..cc49586 100644
--- a/04_Tablet-Quiz/app/index.html
+++ b/04_Tablet-Quiz/app/index.html
@@ -144,6 +144,13 @@
details.det>summary::before{content:"▸ ";color:var(--muted)}
details.det[open]>summary::before{content:"▾ "}
details.det>div,details.det>p,details.det>ul{margin-top:10px}
+ /* Schrittweise Aktivitaet: Aufloesung */
+ .aufBox{background:#f1faf4;border:1px solid #cde6d6;border-left:3px solid var(--ok);border-radius:10px;padding:14px 16px;margin:14px 0 4px}
+ .aufBox .aufH{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
+ .aufBox ul{margin:6px 0 0;padding-left:20px}
+ .aufBox ul li{margin:3px 0}
+ .roleChips{display:flex;flex-wrap:wrap;gap:6px}
+ .roleChip{background:#eef0f3;border-radius:999px;padding:3px 11px;font-size:13px}
.actions { display:flex; gap:10px; align-items:center; margin-top:24px; flex-wrap:wrap; }
.actions .spacer { flex:1; }
@@ -196,6 +203,7 @@
.classifyTop{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:26px;align-items:start;margin:18px 0 6px}
.classifyCard{display:block;width:100%;border-radius:12px;box-shadow:0 3px 16px rgba(0,0,0,.16)}
.classifyMain{min-width:0}
+ .classifyMain .phaseRow{grid-template-columns:repeat(2,1fr);margin-top:12px}
@media(max-width:680px){.classifyTop{grid-template-columns:1fr}.classifyCard{max-width:300px;margin:0 auto}.classifyMain{margin-top:6px}}
.choice{text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:15px;font-weight:600}
.choice:hover{border-color:var(--ink)}
@@ -863,6 +871,7 @@ function defaultState(){
classifyDone:false, classifyWrong:null,
entryDone:false, entryWrong:null,
index:0, stage:"discuss", quizIndex:0,
+ actStep:0, actReveal:false,
picks:{}, done:{}, unclear:{},
loopback:null, revisit:{}, endReason:null, endGate:null };
}
@@ -961,7 +970,7 @@ function renderDeck(){
function renderClassify(){
const correct = S.change;
const card = acard(S.service,S.change);
- const thumb = `
`;
+ const cardBig = `
`;
if(!S.classifyDone){
const choices = CHANGE_TYPES.map((t,i)=>
``).join("");
@@ -972,7 +981,7 @@ function renderClassify(){
$("#panel").innerHTML = `
+ ${cardBig}
Überlegt gemeinsam und wählt die passende Change-Art. Die Legende hilft beim Einordnen.
@@ -991,10 +1000,14 @@ function renderClassify(){ } else { $("#panel").innerHTML = `${CHANGE_LEGEND[correct]}
${CHANGE_LEGEND[correct]}
`;
if(!S.entryDone){
const zones = order.map(ph=>
`Klickt auf die Lebenszyklus-Phase, in der dieser Change einsteigt.
- ${hint} -Klickt auf die Lebenszyklus-Phase, in der dieser Change einsteigt.
+ ${hint} +${rec.id} — ${STATIONEN[recIndex].name}
-${rec.grund}
${rec.id} — ${STATIONEN[recIndex].name}
+${rec.grund}
`;
+ const stepBody = st.typ==="gate"
+ ? (S.stage==="gateDone" ? renderGateDone(st) : renderGate(st))
+ : renderActivity(st);
let body = `
${loopBanner}
- Handeln am Brett — besprecht und legt ab:
-Artefakt: ${st.artefakt}
Diskutiert gemeinsam: Was fällt alles unter „${st.name}"? Was stellt ihr euch darunter vor? Nennt Beispiele.
`, + auf:`${st.beschreibung}
Welche Rollen sind an dieser Aktivität beteiligt? Stellt ihre Figuren auf die Mulden des Station-Pucks.
`, + auf:`Klärt die RACI: Wer ist R, A, C, I? Sortiert die Figuren ins Aktiv-Feld (R·A·C·I).
`, + auf:`Welche Artefaktkarte entsteht hier und gehört in die Service-Akte?
`, + auf:`${st.artefakt}
` } + ]; } +function renderActivity(st){ + const steps = activitySteps(st); + const i = Math.min(S.actStep||0, steps.length-1); + const step = steps[i]; + const isLast = i === steps.length-1; + let html = `Auflösung — gleicht euer Brett ab:
- ${raciTable(st)} -Artefakt: ${st.artefakt}
-${st.beschreibung}