/* ==========================================================
   FleetFixer  - Learning Activities
   Drag & drop, flashcards, fill-in-the-blank, label diagrams
   ========================================================== */

/* ═══ SHARED ACTIVITY BLOCK ═══ */
.activity{background:var(--bg, #f0f4f8);border-radius:12px;padding:18px;margin-top:18px}
.activity-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--accent, #1f5fa8);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.activity-title i{font-size:11px}
.activity-done{font-size:12px;font-weight:700;color:var(--game-correct, #16a34a);margin-top:10px;display:none}
.activity-done.show{display:flex;align-items:center;gap:6px}
.activity-reset{font-size:11px;font-weight:600;color:var(--muted, #506070);cursor:pointer;background:none;border:none;padding:0;font-family:inherit;margin-left:auto}
.activity-reset:hover{text-decoration:underline}

/* ═══ DRAG & DROP MATCHING ═══ */
.match-pairs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.match-col{display:flex;flex-direction:column;gap:8px}
.match-col-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted, #506070);margin-bottom:4px}
.match-item{padding:10px 14px;border-radius:8px;border:2px solid var(--stroke, #bcc8d4);background:var(--panel, #fff);font-size:13px;font-weight:600;cursor:grab;user-select:none;transition:all .15s;touch-action:none}
.match-item:active{cursor:grabbing}
.match-item.dragging{opacity:.5;transform:scale(.95)}
.match-item.selected{border-color:var(--accent, #1f5fa8);background:color-mix(in srgb, var(--accent, #1f5fa8) 8%, var(--panel, #fff))}
.match-target{padding:10px 14px;border-radius:8px;border:2px dashed var(--stroke, #bcc8d4);background:var(--panel, #fff);font-size:13px;font-weight:600;min-height:42px;transition:all .15s;cursor:pointer}
.match-target.hover{border-color:var(--accent, #1f5fa8);background:color-mix(in srgb, var(--accent, #1f5fa8) 5%, var(--panel, #fff))}
.match-target.filled{border-style:solid;border-color:var(--accent, #1f5fa8)}
.match-target.correct{border-color:var(--game-correct, #16a34a);background:#f0fdf4}
.match-target.wrong{border-color:var(--game-wrong, #dc2626);background:#fef2f2;animation:matchShake .4s}
@keyframes matchShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* Mobile: stack instead of side-by-side */
@media(max-width:500px){
  .match-pairs{grid-template-columns:1fr}
}

/* ═══ TAP-TO-REVEAL FLASHCARDS ═══ */
.flashcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.flashcard{perspective:600px;height:120px;cursor:pointer}
.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}
.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}
.flashcard-front,.flashcard-back{position:absolute;inset:0;border-radius:10px;border:2px solid var(--stroke, #bcc8d4);display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;font-size:13px;font-weight:700;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flashcard-front{background:var(--panel, #fff);color:var(--text, #0b2545)}
.flashcard-back{background:var(--accent, #1f5fa8);color:#fff;transform:rotateY(180deg);font-weight:600;font-size:12px;line-height:1.5}
.flashcard.revealed .flashcard-front{border-color:var(--game-correct, #16a34a)}
.flashcard-hint{font-size:10px;color:var(--muted, #506070);text-align:center;margin-top:8px;font-weight:600}

/* ═══ FILL-IN-THE-BLANK ═══ */
.fitb-sentence{font-size:14px;line-height:2;font-weight:600;margin-bottom:14px}
.fitb-blank{display:inline-block;min-width:80px;border-bottom:2px dashed var(--accent, #1f5fa8);padding:2px 8px;cursor:pointer;transition:all .15s;font-weight:700;color:var(--accent, #1f5fa8)}
.fitb-blank.filled{border-bottom-style:solid}
.fitb-blank.correct{color:var(--game-correct, #16a34a);border-color:var(--game-correct, #16a34a)}
.fitb-blank.wrong{color:var(--game-wrong, #dc2626);border-color:var(--game-wrong, #dc2626);animation:matchShake .4s}
.fitb-bank{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fitb-word{padding:8px 14px;border-radius:8px;border:2px solid var(--stroke, #bcc8d4);background:var(--panel, #fff);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;user-select:none}
.fitb-word:hover{border-color:var(--accent, #1f5fa8)}
.fitb-word.used{opacity:.35;pointer-events:none}
.fitb-word.selected{border-color:var(--accent, #1f5fa8);background:color-mix(in srgb, var(--accent, #1f5fa8) 10%, var(--panel, #fff))}

/* ═══ LABEL THE DIAGRAM ═══ */
.diagram-wrap{position:relative;max-width:100%;margin:0 auto}
.diagram-wrap svg{width:100%;height:auto;display:block}
.diagram-hotspot{position:absolute;width:28px;height:28px;border-radius:50%;background:var(--accent, #1f5fa8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:all .2s;z-index:2;transform:translate(-50%,-50%)}
.diagram-hotspot:hover{transform:translate(-50%,-50%) scale(1.15)}
.diagram-hotspot.correct{background:var(--game-correct, #16a34a)}
.diagram-hotspot.wrong{background:var(--game-wrong, #dc2626);animation:matchShake .4s}
.diagram-hotspot.answered{pointer-events:none}
.diagram-label-bank{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.diagram-label{padding:8px 14px;border-radius:8px;border:2px solid var(--stroke, #bcc8d4);background:var(--panel, #fff);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}
.diagram-label:hover{border-color:var(--accent, #1f5fa8)}
.diagram-label.selected{border-color:var(--accent, #1f5fa8);background:color-mix(in srgb, var(--accent, #1f5fa8) 10%, var(--panel, #fff))}
.diagram-label.used{opacity:.35;pointer-events:none}

/* ═══ REDUCED MOTION ═══ */
@media(prefers-reduced-motion:reduce){
  .flashcard-inner{transition:none}
  .match-item,.match-target,.fitb-blank{animation:none}
}
