/* ============================================================
   กิจกรรม / คอร์สพิเศษ (เฟส 3) — การ์ดกิจกรรม, ตารางหุ่นยนต์, เกมฝึกอัลกอริทึม
   ใช้โทเคนสีชุดเดียวกับ app.css (--brand-*, --ok-*, --ink-*, --line, --surface)
   ============================================================ */

/* ---------- การ์ดกิจกรรมในคลัง ---------- */
.act-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.act-grid>*{min-width:0}
.act-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);
  transition:box-shadow .15s var(--ease),transform .15s var(--ease);color:inherit}
.act-card:hover{box-shadow:var(--shadow-3);transform:translateY(-1px);border-color:var(--line-2)}
.act-card .cap{padding:12px 14px;color:#fff;min-height:66px;display:flex;flex-direction:column;justify-content:flex-end}
.act-card .cap h3{margin:0;font-size:1.02rem;line-height:1.35;text-shadow:0 1px 3px rgba(0,0,0,.25)}
.act-card .cap .eng{font-size:.74rem;opacity:.92}
.act-card .bd{padding:12px 14px;flex:1;display:flex;flex-direction:column;gap:7px}
.act-card .bd p{margin:0;font-size:.85rem;color:var(--ink-3);line-height:1.6}
.act-card .ft{padding:9px 14px;border-top:1px solid var(--line);display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* ---------- แถบเลือกด่าน ---------- */
.lv-bar{display:flex;gap:8px;flex-wrap:wrap}
.lv-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--line);
  border-radius:var(--r-full);background:var(--surface);font-size:.86rem;text-decoration:none;color:var(--ink)}
.lv-chip:hover{border-color:var(--brand-400)}
.lv-chip.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}
.lv-chip.done{border-color:var(--ok-500);background:var(--ok-50)}
.lv-chip.done.on{background:var(--brand-600);color:#fff}
.lv-chip .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface-3);font-size:.74rem;font-weight:700;flex:0 0 auto}
.lv-chip.on .n{background:rgba(255,255,255,.26)}

/* ---------- ตารางหุ่นยนต์ (Blockly) ---------- */
.rb-wrap{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.rb-wrap>*{min-width:0}
@media(max-width:980px){.rb-wrap{grid-template-columns:minmax(0,1fr)}}

#bl-area{height:min(64vh,540px);min-height:320px;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;background:var(--surface-2)}
@media(max-width:980px){#bl-area{height:46vh;min-height:270px}}

.rb-stage{display:flex;flex-direction:column;gap:10px;align-items:center}
.rb-grid{display:grid;gap:2px;background:var(--line-2);padding:2px;border-radius:9px;
  width:fit-content;max-width:100%;overflow:auto}
.rb-cell{width:var(--cs,42px);height:var(--cs,42px);border-radius:5px;background:var(--surface-3);
  position:relative;display:grid;place-items:center;font-size:1.05rem}
.rb-cell.wall{background:var(--ink-3)}
.rb-cell.water{background:var(--info-500)}
.rb-cell.goal{background:var(--ok-100);box-shadow:inset 0 0 0 2px var(--ok-500)}
.rb-cell.goal::after{content:"⚑";color:var(--ok-700);font-size:1.05rem}
.rb-cell.star::after{content:"★";color:var(--warn-500);font-size:1.1rem}
.rb-cell.taken::after{content:"☆";color:var(--ink-4)}
.rb-bot{position:absolute;inset:3px;border-radius:6px;background:var(--brand-600);color:#fff;
  display:grid;place-items:center;font-size:.95rem;z-index:2;
  transition:transform .14s var(--ease);box-shadow:0 2px 6px rgba(0,0,0,.25)}
.rb-bot.up{transform:rotate(-90deg)}
.rb-bot.down{transform:rotate(90deg)}
.rb-bot.left{transform:rotate(180deg)}
.rb-bump{animation:rbBump .3s}
@keyframes rbBump{0%,100%{transform:translate(0,0)}50%{transform:translate(4px,0)}}
.rb-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:.82rem;color:var(--ink-3)}

/* ---------- เกมฝึกอัลกอริทึม ---------- */
.bs-row{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin:10px 0}
.bs-cell{min-width:48px;padding:8px 4px;border:1px solid var(--line);border-radius:7px;background:var(--surface);
  text-align:center;font-variant-numeric:tabular-nums;cursor:pointer;font-size:.88rem;line-height:1.25;
  color:var(--ink);transition:background .12s,border-color .12s}
.bs-cell:hover:not(:disabled){border-color:var(--brand-400)}
.bs-cell small{display:block;font-size:.62rem;color:var(--ink-4)}
.bs-cell.out{opacity:.32;cursor:not-allowed;text-decoration:line-through}
.bs-cell.mid{border-color:var(--brand-600);background:var(--brand-50)}
.bs-cell.hit{border-color:var(--ok-500);background:var(--ok-100);font-weight:700}
.bs-cell:disabled{cursor:default}

.gm-q{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:var(--surface);margin-bottom:12px}
.gm-q.done{border-color:var(--ok-500)}
.gm-q .qh{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.gm-q pre{margin:0;background:var(--surface-3);padding:10px 12px;border-radius:8px;
  overflow:auto;font-size:.86rem;line-height:1.6}
.gm-log{font-size:.8rem;color:var(--ink-3);line-height:1.8;max-height:130px;overflow:auto}

/* ---------- กระดานคะแนน ---------- */
.board td:first-child{width:46px;text-align:center;font-weight:700;color:var(--ink-4)}
.board tbody tr:nth-child(1) td:first-child{color:var(--warn-500)}
.board tbody tr:nth-child(2) td:first-child{color:var(--ink-4)}
.board tbody tr:nth-child(3) td:first-child{color:var(--warn-700)}

/* ---------- ตัวแก้ด่าน (ฝั่งครู) ---------- */
.lv-edit{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.lv-edit>.h{display:flex;gap:8px;align-items:center;padding:9px 12px;background:var(--surface-3);
  border-bottom:1px solid var(--line);flex-wrap:wrap}
.lv-edit>.b{padding:12px}
.grid-ed{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:4px;line-height:1.75;
  min-height:120px;white-space:pre;overflow-x:auto}
.blk-pick{display:flex;gap:6px;flex-wrap:wrap}
.blk-pick label{display:inline-flex;gap:5px;align-items:center;padding:5px 10px;border:1px solid var(--line);
  border-radius:var(--r-full);font-size:.8rem;cursor:pointer;background:var(--surface)}
.blk-pick input:checked+span{font-weight:700;color:var(--brand-600)}

/* ---------- ผลลัพธ์ ---------- */
.res-big{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.res-big .n{font-size:2rem;font-weight:800;line-height:1}
.stars{font-size:1.3rem;letter-spacing:2px;color:var(--warn-500)}

/* ตัวเลือกประเภทงาน/ชนิดกิจกรรม ย้ายไปเป็นคอมโพเนนต์ .choice ใน app.css แล้ว */
