
/* MABNI Coding Studio 1.2.3 - student screen repair
   Purpose: fix oversized robot, remove trail-square jumping, keep login-first UX clean, and make maze/items readable. */
:root{--mabni-blue:#004E92;--mabni-blue-2:#0878c9;--mabni-soft:#f5fbff;--mabni-line:#b8d9f4;--mabni-text:#0e2a45;}
#phaserMaze{display:none!important;visibility:hidden!important;pointer-events:none!important;}
body.phaser-ready #svgMaze,.phaser-ready #svgMaze,#svgMaze{display:block!important;opacity:1!important;visibility:visible!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:visible!important;}
/* Calm board, no accidental text/legend spill */
#mazeLegend,.maze-legend,.v47-trace-panel,#v47TracePanel,.v47-trace-copy,.v47-trace-icon,.v47-trace-count{display:none!important;}
#visualization{background:linear-gradient(135deg,#f7fcff,#edf8ff)!important;border:1px solid var(--mabni-line)!important;border-radius:22px!important;overflow:hidden!important;min-height:390px!important;}
/* Clean modern tiles. Avoid fuzzy stretched tile photos; use mission objects for meaning. */
#svgMaze .kenney-maze-tile-img{display:none!important;}
#svgMaze .tile-base{filter:none!important;opacity:1!important;shape-rendering:geometricPrecision!important;}
#svgMaze .tile-base.path{fill:#eaf7ff!important;}
#svgMaze .tile-base.start{fill:#d4f8e2!important;}
#svgMaze .tile-base.goal{fill:#fff1a8!important;}
#svgMaze .tile-base.wall{fill:#8fc1d4!important;}
#svgMaze .tile-base.trail{fill:#c7f7d9!important;}
#svgMaze .tile-frame{display:block!important;fill:transparent!important;stroke:rgba(0,78,146,.16)!important;stroke-width:1.15!important;opacity:.55!important;filter:none!important;pointer-events:none!important;vector-effect:non-scaling-stroke!important;}
#svgMaze .tile-frame.wall{stroke:rgba(0,78,146,.35)!important;stroke-width:1.5!important;}
#svgMaze .tile-frame.goal{stroke:#d99b00!important;stroke-width:2.3!important;}
#svgMaze .tile-frame.start{stroke:#169a5a!important;stroke-width:2!important;}
#svgMaze .tile.current-step{stroke:#004E92!important;stroke-width:3.5!important;filter:none!important;animation:none!important;transform:none!important;}
#svgMaze .tile.step-error{stroke:#dc2626!important;stroke-width:4!important;filter:none!important;animation:none!important;transform:none!important;}
#svgMaze .tile,#svgMaze .tile.trail,#svgMaze .tile.task-done,#svgMaze rect,#svgMaze image{animation:none!important;transform-box:fill-box;}
/* Critical robot fix: previous CSS forced SVG image width:auto, so the asset escaped the tile. */
#playerToken,.player-token{filter:drop-shadow(0 5px 7px rgba(0,42,80,.20))!important;transition:transform .22s ease-out!important;will-change:transform;}
#playerToken circle,.player-token circle{display:none!important;}
#svgMaze image.player-robot-sprite,#playerToken .player-robot-sprite{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;min-width:38px!important;min-height:38px!important;overflow:hidden!important;filter:drop-shadow(0 4px 5px rgba(0,30,60,.24))!important;transform-origin:center!important;transform-box:fill-box!important;}
#playerToken .player-emoji-badge{display:none!important;}
/* Mission objects should be crisp and obvious */
#svgMaze .mission-asset-group{filter:drop-shadow(0 4px 5px rgba(15,40,70,.20))!important;}
#svgMaze .mission-item-pad{fill:#fff!important;opacity:.72!important;stroke:#c7dff1!important;stroke-width:1.5!important;}
#svgMaze .mission-item-img,#svgMaze .mission-plant-img,#svgMaze .mission-goal-img{image-rendering:auto!important;filter:none!important;}
#svgMaze .mission-badge{font-size:12px!important;}
#svgMaze .mission-goal-ring{fill:#fff8cf!important;stroke:#d99b00!important;stroke-width:3!important;}
#svgMaze .goal-label{fill:#4a3410!important;font-weight:900!important;font-size:10px!important;letter-spacing:.05em!important;}
/* Keep controls visible without eating the maze */
.run-dock{position:relative!important;display:grid!important;grid-template-columns:minmax(180px,260px) repeat(4,minmax(110px,1fr))!important;gap:10px!important;padding:10px!important;background:#ffffffcc!important;border:1px solid var(--mabni-line)!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(0,78,146,.08)!important;}
.big-run,#runBtn{background:linear-gradient(180deg,var(--mabni-blue-2),var(--mabni-blue))!important;color:#fff!important;border:0!important;border-radius:16px!important;box-shadow:0 8px 18px rgba(0,78,146,.24)!important;font-weight:900!important;}
.run-dock .secondary{border-radius:16px!important;background:#eff7ff!important;border:1px solid var(--mabni-line)!important;color:#0d2c49!important;font-weight:800!important;}
/* Login dialog should feel like first step, not an interruption */
#signinDialog .dialog-card{max-width:min(980px,calc(100vw - 32px))!important;}
#studentNameInput{font-size:18px!important;font-weight:800!important;}
#localSignInBtn,#signinSave{background:linear-gradient(180deg,var(--mabni-blue-2),var(--mabni-blue))!important;color:#fff!important;border:0!important;}
/* Clean top pin */
.focus-toggle-float,.top-pin-toggle{right:18px!important;top:88px!important;min-width:auto!important;padding:8px 12px!important;border-radius:999px!important;background:#fff!important;color:#0d2c49!important;border:1px solid #bddbf4!important;box-shadow:0 8px 18px rgba(0,78,146,.12)!important;font-size:14px!important;}
.focus-toggle-float .pin-copy{font-size:0!important;}
.focus-toggle-float .pin-copy::after{content:'Hide';font-size:14px!important;}
/* Blocks: remove fuzzy glow while keeping active highlight readable */
.blocklySvg,.blocklyWorkspace,.blocklyBlockCanvas,.blocklyBubbleCanvas,.blocklyFlyout{filter:none!important;text-rendering:geometricPrecision!important;}
.blocklyPath{filter:none!important;}
.blocklySelected>.blocklyPath{filter:drop-shadow(0 0 0 #f59e0b)!important;stroke:#f59e0b!important;stroke-width:3px!important;}
@media(max-width:1100px){.run-dock{grid-template-columns:1fr 1fr!important}.big-run{grid-column:1/-1}.game-shell{grid-template-columns:1fr!important}.right-panel{min-height:420px}}
