/* Modul Gamification – Design „Spielbrett“
   Wird von index.html, modul.html, ranking.html und freischalten.php geladen.
   Präsentationsseiten laden dieses Stylesheet NICHT (nur nav.css). */

:root{
  --ink:#141210; --papier:#FFFFFF; --raster:#E7E2D7; --grau:#6E6A63; --hellgrau:#BDB8AE;
  --blau:#1B4FD8; --rot:#D62828; --gelb:#F2B01E; --gruen:#2E8B57;
  --acc:var(--blau);
  --schrift:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',sans-serif;
}
body[data-modul="vertiefung"]{ --acc:var(--rot); }

*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--papier); color:var(--ink); font-family:var(--schrift);
  background-image:radial-gradient(var(--raster) 1.4px,transparent 1.4px);
  background-size:26px 26px; -webkit-font-smoothing:antialiased;
}
button{font:inherit}
a{color:inherit}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}

.wrap{max-width:1140px;margin:0 auto;padding:40px 24px 90px}

/* Grundbausteine */
.knopf{background:var(--papier);border:2.5px solid var(--ink);border-radius:9px;padding:9px 16px;
  font-weight:700;font-size:.9rem;cursor:pointer;text-decoration:none;display:inline-block}
.knopf:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}
.knopf.voll{background:var(--ink);color:#fff}
.knopf.voll:hover{box-shadow:3px 3px 0 var(--acc)}
.marke{display:inline-flex;align-items:center;gap:10px;border:2.5px solid var(--ink);border-radius:999px;
  padding:7px 16px;font-weight:700;font-size:.88rem;background:var(--gelb)}

h1{font-size:2.5rem;font-weight:800;letter-spacing:-1.1px;line-height:1.06}
h2{font-size:1.3rem;font-weight:800;letter-spacing:-.4px}

/* Kopfbereich der Modulseite */
.kopf{margin-bottom:34px;max-width:680px}
.kopf p{margin-top:12px;color:var(--grau);font-size:1.05rem;line-height:1.5}
.stand{display:inline-flex;align-items:center;gap:12px;margin-top:18px;border:2.5px solid var(--ink);
  border-radius:999px;padding:8px 18px;font-weight:700;font-size:.9rem;background:var(--papier)}
.stand .felder{display:flex;gap:4px}
.stand .felder i{width:13px;height:13px;border:2px solid var(--ink);border-radius:3px;display:block}
.stand .felder i.v{background:var(--acc)}

/* „Ihr seid dran“ */
.dran{display:flex;align-items:center;gap:22px;border:3px solid var(--ink);border-radius:16px;
  padding:22px 26px;background:var(--gelb);box-shadow:6px 6px 0 var(--ink);margin-bottom:42px}
.dran .nr{font-size:2.6rem;font-weight:800;letter-spacing:-1.6px;line-height:1}
.dran span{display:block;font-weight:700;font-size:.85rem}
.dran strong{font-size:1.3rem;font-weight:800;letter-spacing:-.4px}
.dran .los{margin-left:auto;background:var(--ink);color:#fff;border:0;border-radius:10px;
  padding:14px 26px;font-weight:800;cursor:pointer;white-space:nowrap;text-decoration:none}

/* Spielplan */
.plan{position:relative;padding-left:64px}
.plan::before{content:'';position:absolute;left:25px;top:12px;bottom:40px;width:4px;
  background:repeating-linear-gradient(var(--ink) 0 10px,transparent 10px 20px)}
.station{position:relative;margin-bottom:30px}
.station .pos{position:absolute;left:-64px;top:4px;width:52px;height:52px;border:3px solid var(--ink);
  border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;
  font-weight:800;font-size:1.02rem;box-shadow:3px 3px 0 var(--ink)}
.station.zu .pos{background:var(--papier);color:var(--grau);box-shadow:none;border-style:dashed}
.station.fertig .pos{background:var(--gruen)}
.station h2{margin:11px 0 14px}
.station.zu h2{color:var(--grau)}
.station .leer{color:var(--grau);font-size:.95rem;border:2.5px dashed var(--hellgrau);
  border-radius:12px;padding:16px 18px}
.felderreihe{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px}
.feld{display:flex;align-items:center;gap:13px;text-align:left;background:var(--papier);
  border:2.5px solid var(--ink);border-radius:12px;padding:15px 17px;cursor:pointer;
  color:var(--ink);text-decoration:none}
.feld:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-2px,-2px)}
.feld .nr{width:38px;height:38px;flex-shrink:0;border:2.5px solid var(--ink);border-radius:50%;
  display:grid;place-items:center;font-weight:800;font-size:.85rem;background:var(--gelb)}
.feld .t{font-weight:650;font-size:.98rem;line-height:1.3}
.feld .t em{display:block;font-style:normal;font-weight:600;font-size:.78rem;color:var(--grau);margin-top:3px}
.feld.fertig{border-color:var(--grau);color:var(--grau)}
.feld.fertig .nr{background:var(--gruen);color:#fff;border-color:var(--grau)}
.feld.fertig:hover{box-shadow:3px 3px 0 var(--grau)}
.feld.zu{cursor:default;border-style:dashed;border-color:var(--hellgrau);color:#A8A39A;
  background:repeating-linear-gradient(45deg,#FAF8F4 0 7px,#F1EEE8 7px 14px)}
.feld.zu:hover{box-shadow:none;transform:none}
/* Lernschritt mit Skript: Kachel plus PDF-Knopf */
.feld-wrap{position:relative;display:block}
.feld-wrap .feld{padding-right:62px}
.skript{position:absolute;right:10px;top:50%;transform:translateY(-50%);
  border:2.5px solid var(--ink);border-radius:8px;background:var(--papier);
  padding:5px 9px;font-size:.72rem;font-weight:800;text-decoration:none;color:var(--ink);
  display:flex;align-items:center;gap:4px;line-height:1}
.skript:hover{background:var(--gelb);box-shadow:2px 2px 0 var(--ink)}
.skript svg{width:13px;height:13px}
.feld.zu .nr{background:transparent;border-color:var(--hellgrau);border-style:dashed;color:#A8A39A}

/* Tabellen (Rangliste, Freischaltseite) */
table{width:100%;border-collapse:separate;border-spacing:0;border:2.5px solid var(--ink);
  border-radius:14px;overflow:hidden;background:var(--papier)}
th,td{padding:12px 14px;text-align:left;font-size:.94rem;border-bottom:2px solid var(--raster)}
th{background:var(--ink);color:#fff;font-weight:700;font-size:.85rem}
tr:last-child td{border-bottom:0}
td.zahl,th.zahl{text-align:center;font-variant-numeric:tabular-nums}

@media(max-width:760px){
  h1{font-size:1.9rem}
  .wrap{padding:26px 16px 80px}
  .plan{padding-left:50px}
  .station .pos{left:-50px;width:40px;height:40px;font-size:.9rem}
  .dran{flex-wrap:wrap;gap:14px}
  .dran .los{margin-left:0;width:100%;text-align:center}
}
