
/* MABNI v49 Kenney world polish: assets as a system, not decorative confetti. */
:root{
  --v49-navy:#0b2554;
  --v49-blue:#0e74d8;
  --v49-glass:rgba(255,255,255,.78);
  --v49-line:#cfe0f4;
  --v49-shadow:0 20px 50px rgba(11,37,84,.16);
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1;
  background:
    radial-gradient(circle at 12% 12%, rgba(14,116,216,.12), transparent 26%),
    radial-gradient(circle at 88% 18%, rgba(20,184,166,.12), transparent 28%),
    linear-gradient(180deg,#f8fbff 0%,#eef7ff 52%,#f7fbff 100%);
}
.topbar,.dialog-card,.left-panel,.right-panel,.mp-world-card,.learning-focus-card,.run-feedback-details{
  box-shadow:var(--v49-shadow);
  border-color:rgba(113,160,210,.36)!important;
}
.topbar{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,250,255,.9));backdrop-filter:blur(14px)}
.lesson-chooser{background-image:url('../assets/kenney-plus/space/panel_glass.png'),linear-gradient(135deg,#ffffff,#ecf7ff);background-size:100% 100%,auto;border:1px solid #bcd7f5!important;}
.primary,.big-run{background-image:url('../assets/kenney-plus/space/header_green_rect.png'),linear-gradient(135deg,#0f766e,#22c55e)!important;background-size:100% 100%,auto;background-position:center;color:#06231f!important;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.secondary{background-image:linear-gradient(180deg,#ffffff,#eef7ff)!important;border:1px solid #bcd7f5!important;color:#11365f!important;}
.danger{background-image:url('../assets/kenney-plus/space/header_red_rect.png'),linear-gradient(135deg,#fee2e2,#fecaca)!important;background-size:100% 100%,auto;color:#7f1d1d!important;}
.visualization{border:1px solid #bdd7f3;background:linear-gradient(160deg,#eff8ff,#faffff);box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 18px 40px rgba(11,37,84,.12)}
#svgMaze{filter:drop-shadow(0 14px 28px rgba(15,50,85,.14));}
.kenney-maze-tile-img{filter:drop-shadow(0 4px 5px rgba(15,23,42,.16));}
.tile-frame.path{stroke:rgba(73,111,156,.32)!important}.tile-frame.wall{stroke:#477083!important;stroke-width:3!important}.tile-frame.trail{stroke:#23af63!important;stroke-width:3!important;filter:drop-shadow(0 0 6px rgba(34,197,94,.26));}
.tile.current-step{stroke:#f59e0b!important;stroke-width:5!important;filter:drop-shadow(0 0 10px rgba(245,158,11,.8));animation:v49StepPulse .8s ease-in-out infinite alternate}.tile.step-error{stroke:#ef4444!important;stroke-width:6!important;filter:drop-shadow(0 0 12px rgba(239,68,68,.9));animation:v49ErrorPulse .45s ease-in-out infinite alternate}
@keyframes v49StepPulse{from{opacity:.72}to{opacity:1}}@keyframes v49ErrorPulse{from{opacity:.65;transform:scale(.98)}to{opacity:1;transform:scale(1.02)}}
.player-token circle{opacity:.16}.player-robot-sprite{filter:drop-shadow(0 8px 7px rgba(15,23,42,.25));transform-origin:center;animation:v49RobotBob 1.4s ease-in-out infinite alternate}@keyframes v49RobotBob{from{translate:0 -1px}to{translate:0 2px}}
.v49-goal-item .goal-medal{filter:drop-shadow(0 6px 8px rgba(245,158,11,.35));animation:v49MedalFloat 1.6s ease-in-out infinite alternate}.v49-goal-item .goal-target{opacity:.92}@keyframes v49MedalFloat{from{transform:translateY(-1px)}to{transform:translateY(2px)}}
.v49-particle{pointer-events:none;transform-origin:center;filter:drop-shadow(0 3px 4px rgba(15,23,42,.2))}
/* Lesson bubbles: circle only carries the number; labels/stars sit below. */
.mp-level-road{gap:18px!important;align-items:flex-start!important;overflow-x:auto!important;padding:18px 16px 22px!important;}
.mp-level-bubble{width:76px!important;min-width:76px!important;height:104px!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;display:grid!important;grid-template-rows:56px 20px 20px!important;justify-items:center!important;align-items:center!important;overflow:visible!important;position:relative!important;}
.mp-level-bubble::after{content:"";position:absolute;top:25px;left:58px;width:34px;height:4px;background:linear-gradient(90deg,#c9d8ef,#e6efff);border-radius:99px;z-index:0}.mp-level-bubble:last-child::after{display:none}
.mp-level-bubble .bubble-core{z-index:1;width:56px!important;height:56px!important;border-radius:50%!important;background-image:url('../assets/kenney-plus/space/button_round_blue.png'),linear-gradient(135deg,#dff1ff,#ffffff)!important;background-size:100% 100%,auto!important;display:grid!important;place-items:center!important;border:2px solid #c8ddf6!important;box-shadow:0 7px 15px rgba(15,50,85,.12)!important;color:#163a5f!important;}
.mp-level-bubble .bubble-core strong{font-size:19px!important;line-height:1!important;color:#133d63!important;text-shadow:none!important}
.mp-level-bubble.is-active .bubble-core{background-image:url('../assets/kenney-plus/space/button_round_yellow.png'),linear-gradient(135deg,#fde68a,#ffffff)!important;border-color:#f59e0b!important;box-shadow:0 0 0 5px rgba(245,158,11,.18),0 10px 20px rgba(245,158,11,.24)!important;transform:translateY(-2px)}
.mp-level-bubble.is-done .bubble-core{background-image:url('../assets/kenney-plus/space/button_round_green.png'),linear-gradient(135deg,#bbf7d0,#ffffff)!important;border-color:#22c55e!important}
.mp-level-bubble .bubble-label{font-size:10px!important;font-weight:850!important;letter-spacing:.01em!important;max-width:72px!important;text-align:center!important;color:#365472!important;text-transform:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;background:rgba(255,255,255,.82)!important;border:1px solid #dbe9f9!important;border-radius:999px!important;padding:2px 7px!important;line-height:1.2!important;}
.mp-level-bubble .bubble-stars{height:18px!important;display:flex!important;gap:1px!important;align-items:center!important;justify-content:center!important;margin:0!important;transform:none!important;position:static!important;}
.mp-level-bubble .bubble-stars .kenney-star{width:13px!important;height:13px!important;filter:drop-shadow(0 2px 2px rgba(15,23,42,.18))}
.level-chip{width:54px!important;height:72px!important;min-width:54px!important;border-radius:18px!important;display:grid!important;grid-template-rows:37px 22px!important;place-items:center!important;overflow:visible!important;background:linear-gradient(180deg,#fff,#f3f9ff)!important;border:1px solid #cddff5!important;}
.level-chip .level-chip-num{font-size:17px!important;font-weight:900!important;color:#17435f!important}.level-chip .chip-stars{display:flex!important;gap:0!important;position:static!important;transform:none!important}.level-chip .chip-stars img{width:12px!important;height:12px!important}.level-chip.active{background-image:url('../assets/kenney-plus/space/button_round_yellow.png'),linear-gradient(180deg,#fff7d8,#ffffff)!important;background-size:100% 100%,auto;border-color:#f59e0b!important;}
/* Feedback and completion cards get emote/medal identity. */
.run-feedback-details{position:relative;overflow:hidden;background-image:url('../assets/kenney-plus/space/panel_glass.png'),linear-gradient(135deg,#ffffff,#f4fbff)!important;background-size:100% 100%,auto}.feedback-title-row img{width:32px!important;height:32px!important;object-fit:contain!important}.complete-card{background-image:url('../assets/kenney-plus/space/panel_glass_screws.png'),linear-gradient(180deg,#ffffff,#eff8ff)!important;background-size:100% 100%,auto}.completion-mark{background-image:url('../assets/kenney-plus/medals/gold_shadow.png')!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important}.completion-mark span{display:none!important}.completion-stars .kenney-star{width:42px!important;height:42px!important}
.v49-input-hints{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.v49-input-hints span{display:inline-flex;align-items:center;gap:5px;border:1px solid #d4e6f8;background:#fff;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;color:#284564}.v49-input-hints img{height:22px;width:auto;object-fit:contain}
/* Teacher/dashboard polish shared with app. */
.teacher-shell,.teacher-card,.dashboard-card,.class-card,.student-card,[class*="teacher"] .card{word-break:break-word;overflow-wrap:anywhere}.teacher-shell .status-badge,.teacher-shell .pill{white-space:normal!important;line-height:1.25!important}.teacher-shell button,.teacher-shell input,.teacher-shell select{min-height:42px;border-radius:14px!important}.teacher-shell .empty-state{background-image:url('../assets/kenney-plus/space/panel_glass.png'),linear-gradient(135deg,#fff,#f0f8ff);background-size:100% 100%,auto;border:1px solid #d4e6f8;border-radius:22px;padding:22px;}
@media(max-width:900px){.mp-level-bubble{width:68px!important;min-width:68px!important}.mp-level-bubble::after{left:54px;width:26px}.mp-level-bubble .bubble-core{width:52px!important;height:52px!important}.run-dock{position:sticky!important;bottom:10px!important;z-index:30!important;background:rgba(255,255,255,.94)!important;border:1px solid #cfe0f4!important;border-radius:22px!important;padding:8px!important;box-shadow:0 14px 34px rgba(11,37,84,.18)!important}.game-shell{gap:10px!important}}
body.focus-mode .run-dock{position:sticky!important;bottom:8px!important;z-index:40!important;background:rgba(255,255,255,.96)!important;border:1px solid #bcd7f5!important;border-radius:22px!important;box-shadow:0 16px 36px rgba(11,37,84,.2)!important}
body.focus-mode .visualization{margin-bottom:10px!important}.focus-exit-btn,.focus-toggle-float{background-image:url('../assets/kenney-plus/space/header_blue_rect.png'),linear-gradient(135deg,#dff1ff,#fff)!important;background-size:100% 100%,auto!important;color:#0b2554!important;border:1px solid #a8c9ed!important;box-shadow:0 14px 35px rgba(11,37,84,.18)!important;}

.v49-run-hints{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 8px}.v49-run-hints span{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #d4e6f8;color:#244561;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:850}.v49-run-hints img{height:22px;width:auto}.feedback{display:flex!important;align-items:center;gap:10px}.v49-feedback-emote{width:30px;height:30px;object-fit:contain;flex:0 0 auto}.v49-world-medal{width:38px;height:38px;object-fit:contain;margin-inline-end:10px;filter:drop-shadow(0 4px 5px rgba(15,23,42,.18))}
