/* ==========================================================================
   Eigene Rätsel: Karte, Bahnhof, Gewichte, Streichholz-Rechnung, Kuchen, Würfel, Tafelrunde, Zahlenpfad
   ========================================================================== */
.rt-maplabel { font-family: var(--rt-serif); font-style: italic; font-weight: 700; font-size: 14px; fill: #5b4220; pointer-events: none; }

/* 4: Schatzkarte */
.rt-spot-c { fill: #fff3c4; stroke: #b91c1c; stroke-width: 3; transition: transform 0.15s; transform-box: fill-box; transform-origin: center; }
.rt-spot-t { font-family: var(--rt-serif); font-weight: 800; font-size: 15px; fill: #7f1d1d; pointer-events: none; }
.rt-spot:hover .rt-spot-c { transform: scale(1.15); }
.rt-spot.ok .rt-spot-c { fill: #bbf7d0; stroke: #15803d; }
.rt-spot.bad .rt-spot-c { fill: #e5e7eb; stroke: #9ca3af; }
.rt-spot.bad .rt-spot-t { fill: #9ca3af; }

/* 5: Rangierbahnhof */
.rt-yardbg { fill: #e9dcb7; stroke: #c9a766; stroke-width: 2; }
.rt-rail { fill: none; stroke: #5b4a3a; stroke-width: 6; stroke-dasharray: 2 0; }
.rt-buffer { fill: #7f1d1d; }
.rt-wagon-t { font-family: var(--rt-serif); font-weight: 800; font-size: 15px; fill: #fff; stroke: rgba(0, 0, 0, 0.45); stroke-width: 3px; paint-order: stroke; pointer-events: none; }

/* 10: Gewichte */
.rt-sack-t { font-family: var(--rt-serif); font-weight: 800; font-size: 26px; fill: #5b3a06; }
.rt-wt { cursor: grab; touch-action: none; }
.rt-wt rect { fill: #475569; stroke: #1e293b; stroke-width: 3; }
.rt-wt text { fill: #fff; font-weight: 800; font-size: 16px; pointer-events: none; }
.rt-wt.drag { cursor: grabbing; filter: drop-shadow(0 6px 5px rgba(0, 0, 0, 0.35)); }

/* 13: Streichholz-Rechnung */
.rt-matchbg { fill: #f6e9c6; stroke: #c9a766; stroke-width: 2; }
.rt-stick.fixed { opacity: 0.9; }

/* 18: Kuchen */
.rt-plate { fill: #f1f5f9; stroke: #cbd5e1; stroke-width: 3; }
.rt-cake { fill: #d9a35c; stroke: #92400e; stroke-width: 3; }
.rt-icing { fill: #fbcfe8; stroke: #f9a8d4; stroke-width: 2; }
.rt-cherry { fill: #dc2626; stroke: #7f1d1d; stroke-width: 2; }
.rt-cut { stroke: #3a2a14; stroke-width: 3; stroke-linecap: round; }
.rt-cut.ghost { stroke: #3a2a14; opacity: 0.4; stroke-dasharray: 6 5; }
.rt-guests { display: flex; gap: 0.3rem; justify-content: center; margin-top: 0.4rem; font-size: 1.6rem; }
.rt-guest { filter: grayscale(0.8) opacity(0.6); transition: transform 0.3s, filter 0.3s; }
.rt-guest.fed { filter: none; transform: scale(1.15); }

/* 19: Würfelweg */
.rt-dcell { fill: #fff8e4; stroke: #c9a766; stroke-width: 2; }
.rt-dcell.alt { fill: #efdfba; }
.rt-dcell.goal { fill: #d9f2d0; stroke: #15803d; }

/* 26: Tafelrunde */
.rt-table { fill: #b8855a; stroke: #6e4521; stroke-width: 5; }
.rt-seat { fill: #fffaf0; stroke: #c9a766; stroke-width: 3; transition: transform 0.15s; }
.rt-seat.ready { stroke: #b45309; stroke-dasharray: 6 4; }
.rt-seat.taken { fill: #fff3c4; }
.rt-seat-no { font-family: var(--rt-serif); font-size: 13px; font-weight: 700; fill: #86703f; pointer-events: none; }
.rt-seat-name { font-family: var(--rt-serif); font-size: 13px; font-weight: 800; fill: #3a2a14; paint-order: stroke; stroke: #fff8e4; stroke-width: 4px; pointer-events: none; }
.rt-cluelist { margin: 0.4rem 0 0.8rem 1.4rem; display: grid; gap: 0.25rem; font-size: 0.95rem; color: #3a2a14; }
.rt-cluelist li.bad { color: #be123c; font-weight: 700; }

/* 27: Zahlenpfad */
.rt-ncell { fill: #fffaf0; stroke: #c9a766; stroke-width: 3; }
.rt-ncell.on { fill: #fde68a; stroke: #b45309; }
.rt-ncell.can { stroke: #0e7490; stroke-dasharray: 6 4; }
.rt-ncell.goal { stroke: #15803d; }
.rt-ntext { font-family: var(--rt-serif); font-size: 30px; font-weight: 800; fill: #3a2a14; pointer-events: none; }
.rt-npath { fill: none; stroke: #b45309; stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; opacity: 0.55; pointer-events: none; }

/* 29: Schlüsselwort */
.rt-workshop { display: flex; align-items: center; justify-content: center; gap: 1.2rem; padding: 1rem; margin-bottom: 1rem; border-radius: 16px; background: linear-gradient(#e7d2a6, #cfb27a); border: 3px solid #8a5a2b; }
.rt-workshop-door { font-size: 4rem; }
.rt-signs { display: flex; flex-direction: column; gap: 0.5rem; }
.rt-sign { position: relative; padding: 0.4rem 1.6rem; border-radius: 8px; background: linear-gradient(#b98a52, #8d6a4a); border: 2px solid #5b3a1a; color: #fff8e4; font-family: var(--rt-serif); font-size: 1.3rem; text-align: center; }
.rt-sign-nail { position: absolute; top: 6px; left: 8px; width: 7px; height: 7px; border-radius: 50%; background: #fcd34d; }
/* 30: Rebus */
.rt-rebus.single { display: flex; align-items: center; justify-content: center; gap: 1.2rem; padding: 1.2rem; border-radius: 16px; background: #fffaf0; border: 2px solid #c9a766; margin-bottom: 1rem; }
.rt-rebus-pic.big { font-size: 4.5rem; }
.rt-rebus-op.big { font-size: 1.4rem; white-space: pre; }
/* 38: Linien */
.rt-canvasbg { fill: #fffaf0; stroke: #c9a766; stroke-width: 2; }
.rt-mline { stroke: #3a2a14; stroke-width: 5; stroke-linecap: round; }
.rt-ruler { stroke: #0e7490; stroke-width: 2; stroke-dasharray: 6 5; }
/* 39: Münzen */
.rt-pcoin { fill: #fcd34d; stroke: #92400e; stroke-width: 3; }
.rt-pcoin.sel { stroke: #0e7490; stroke-width: 5; }
.rt-pcoin-in { fill: none; stroke: #b45309; stroke-width: 2; pointer-events: none; }
.rt-pslot { fill: none; stroke: #b7975a; stroke-width: 2; stroke-dasharray: 4 4; }

/* 28: Edelstein */
.rt-dig { stroke-width: 3; fill: none; }
.rt-dig.ok { stroke: #15803d; } .rt-dig.bad { stroke: #be123c; }
/* 29: Schweinestall */
.rt-field-bg { fill: #cfe8a9; stroke: #6b8f3a; stroke-width: 3; }
.rt-fence { stroke: #7c4a1d; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 10 4; }
.rt-fence.ghost { opacity: 0.45; }
.rt-pig.shared { filter: drop-shadow(0 0 6px #dc2626) drop-shadow(0 0 3px #dc2626); }
/* 30: Fisch */
.rt-fl { stroke: #3a2a14; stroke-width: 6; stroke-linecap: round; }
.rt-fl.used { stroke: #15803d; }
.rt-fl.can { stroke: #0e7490; stroke-dasharray: 8 6; }
.rt-fnode { fill: #fff3c4; stroke: #b45309; stroke-width: 3; }
.rt-fnode.cur { fill: #fcd34d; stroke: #7f1d1d; }
/* 32: Karten */
.rt-cards5 { display: flex; gap: 0.6rem; justify-content: center; margin-bottom: 0.4rem; }
.rt-card5 { width: 64px; height: 92px; border-radius: 10px; font-family: var(--rt-serif); font-size: 2.2rem; font-weight: 800; color: #7f1d1d; cursor: pointer; background: linear-gradient(160deg, #fffdf2, #f1e3bd); border: 3px solid #c9a766; box-shadow: 0 4px 0 #b7975a; transition: transform 0.2s; }
.rt-card5.sel { transform: translateY(-10px); border-color: #b45309; background: #fff0c4; }
