/* Original voxel-inspired styling for Rory's Block World. */
:root{
  --navy:#23452b;
  --blue:#2473a8;
  --gold:#f3bd3b;
  --green:#39853a;
  --paper:#e7f5ff;
  --ink:#1d3526;
  --muted:#536d5b;
  --line:#c4d6bd;
  --shadow:4px 4px 0 rgba(29,53,38,.18);
  --grass:#63a83d;
  --dirt:#8a5a36;
  --stone:#83909a;
}
body{
  background-color:#dff1ff;
  background-image:linear-gradient(rgba(255,255,255,.24) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.24) 1px,transparent 1px),linear-gradient(180deg,#dff1ff 0,#eaf7ff 54%,#d7ebc8 100%);
  background-size:24px 24px,24px 24px,100% 100%;
  color:#1d3526;
}
.topbar{
  background-color:#244b2b;
  background-image:linear-gradient(90deg,rgba(255,255,255,.035) 50%,transparent 50%);
  background-size:16px 16px;
  border-bottom:6px solid #5c9f3b;
  box-shadow:0 4px 0 #19391f;
}
.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:#f3bd3b;border:3px solid #d89a20;box-shadow:3px 3px 0 #18351f;border-radius:2px}
.brand strong,.welcome h1,.panel-heading h2,.challenge-head h2,.builder-title h3,.teacher-heading h1,.teacher-dashboard-head h2{font-family:'Courier New',monospace!important;font-weight:900!important;letter-spacing:-.5px}
.brand small{color:#e1f4d8;letter-spacing:1px}
.top-note{color:#dcf3d2}
.top-action{border:2px solid #b6d39d;border-radius:2px;background:#356e37;box-shadow:3px 3px 0 #19391f;color:#fff}
.top-action:hover{background:#438443}
.top-action.teacher-action{background:#f3bd3b;border-color:#d89a20;color:#283a22}
.welcome{
  position:relative;
  margin-top:12px;
  background:rgba(239,249,255,.88);
  border:3px solid #80b5d3;
  box-shadow:5px 5px 0 rgba(42,91,117,.18);
}
.welcome .eyebrow{color:#367d38}
.welcome h1{color:#23452b;text-shadow:2px 2px 0 #cbe7ad;line-height:1.15}
.welcome-copy>p:last-child{color:#355941;max-width:700px;line-height:1.5}
.rory-card{border:3px solid #8a5a36;border-radius:2px;box-shadow:4px 4px 0 #604125;background:#fff8dc}
.rory-face{border-radius:2px;background:#f3bd3b;border:2px solid #d89a20}
.year-tabs{padding-top:4px}
.year-tab{border:2px solid #79a85d;border-radius:2px;background:#f5ffe8;color:#28512e;box-shadow:2px 2px 0 #70975a;font-family:'Courier New',monospace}
.year-tab.active{background:#3f8d3a;border-color:#256129;color:#fff;box-shadow:3px 3px 0 #234b28}
.workbench{align-items:start}
.lesson-panel,.challenge-panel{border:3px solid #8caa77;border-radius:3px;box-shadow:5px 5px 0 rgba(51,83,41,.2)}
.lesson-panel{background:#edf7df}
.panel-heading h2,.challenge-head h2,.builder-title h3{color:#254c2e}
.count-pill{border:1px solid #abc994;border-radius:2px;background:#d8edc7;color:#315b32}
.lesson-card{border-radius:2px;border:1px solid transparent}
.lesson-card:hover{background:#e3f1d1}
.lesson-card.active{background:#d6edc4;border:2px solid #75a655;box-shadow:2px 2px 0 #a0c187}
.lesson-num{border-radius:2px;background:#d1e4c2;color:#3e683d}
.lesson-card.active .lesson-num{background:#3e8a3e;color:#fff}
.lesson-card small{color:#4f7051}
.thinking-card{background:#fff7d7;border:2px solid #d4b653;border-radius:2px}
.thought-icon{color:#9a6a08}
.thinking-card b{color:#4b3e1d}
.thinking-card p{color:#5c563d}
.challenge-panel{background:#fcfff7}
.lesson-meta{color:#28753a}
.maze-wrap{background:#516d47;border:4px solid #74502f;border-radius:2px;box-shadow:inset 0 0 0 3px #779558}
.maze-label{color:#f5ffe9}
.maze-hint{color:#e3f4cf}
.maze{gap:3px;margin-top:12px}
.cell{
  border:2px solid #67452c;
  border-radius:0;
  background:linear-gradient(180deg,#76bd4b 0 27%,#559337 27% 35%,#97643d 35% 100%);
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.18),inset -2px -3px 0 rgba(38,28,18,.16);
  image-rendering:pixelated;
}
.cell.path-ghost{background:linear-gradient(180deg,#b1d889 0 30%,#82b358 30% 36%,#a8774d 36% 100%)}
.cell.goal{background:linear-gradient(180deg,#8ce0a0 0 24%,#3daa67 24% 100%);border-color:#24663f;color:#103d2a;text-shadow:1px 1px 0 #b7f5bd}
.cell.rock{background:repeating-linear-gradient(0deg,transparent 0 12px,rgba(39,48,53,.16) 12px 14px),repeating-linear-gradient(90deg,#a7b2b3 0 14px,#88989b 14px 16px);border-color:#65777a}
.cell.current{outline:3px solid #fff26b;outline-offset:-4px}
.cell.current:after{background:#f8dc42;border-color:#fff}
.cell.checkpoint{background:linear-gradient(180deg,#ffe483 0 28%,#deb449 28% 36%,#9a6734 36% 100%);border-color:#75501e}
.cell.checkpoint.visited{background:linear-gradient(180deg,#9be3a2 0 28%,#54b876 28% 36%,#6f8742 36% 100%);border-color:#357448}
.cell .marker-done{color:#155b35}
.legend-star{color:#ffdf42}
.legend-wall{border-radius:0;border:1px solid #53696a;background:#99a8a9}
.maze-legend{color:#f5ffe9}
.builder{background:#ecf4dd;border:2px solid #a1bd87;border-radius:3px}
.builder-title p{color:#456849;line-height:1.4}
.step-count{color:#315b32}
.editor-tabs{background:#b8d39e;border:2px solid #799958;border-radius:2px}
.editor-tab{border-radius:1px;color:#294f2f;font-family:'Courier New',monospace}
.editor-tab.active{background:#3d843a;color:white;box-shadow:2px 2px 0 #285d2b}
#blockly-workspace{border:3px solid #74502f;border-radius:2px;background:#f6f9e9}
.python-heading{background:#263f2b;border:2px solid #172b1c;border-radius:0;color:#f4f7da}
.python-code{background:#182a21;border:2px solid #52673d;border-radius:0;color:#c5eb9c}
.text-button{color:#315e38}
.text-button:hover{color:#174c21}
.run-button{border-radius:2px;background:#3f8d3a;box-shadow:0 4px 0 #27602b}
.run-button:hover{background:#347c34}
.step-button{border:2px solid #8ead79;border-radius:2px;color:#315b32}
.feedback.good{color:#1f743c}
.feedback.try{color:#88510c}
.challenge-bottom{border-color:#cfddc4}
.concept-icon{border-radius:2px;background:#f7d45c;color:#644a13}
.concept b{color:#294c2e}
.concept p{color:#526d55}
.next-button{border-radius:2px;background:#f3bd3b;color:#283a22;box-shadow:0 3px 0 #bd891d}
.next-button:hover{background:#ffcf49}
.reset-button{border:2px solid #9ab587;border-radius:2px;color:#345a37}
.reset-button:hover{background:#edf8df;color:#23452b}
.logic-panel{background:#fff7d8;border:3px solid #d0ad44;border-left-width:7px;border-radius:2px}
.logic-icon{border-radius:2px;background:#f3bd3b}
.logic-heading h3{color:#493c1d}
.logic-status{color:#5c491a;border-radius:2px}
.logic-question{color:#344a34}
.logic-option{border:2px solid #d6bd67;border-radius:2px;color:#344a34}
.logic-option:hover{border-color:#b18b25;background:#fffdf6}
.logic-option.correct{background:#dcf3dd;border-color:#63a96c;color:#205d2c}
.logic-option.incorrect{background:#ffede0;border-color:#d89061;color:#8b3e1b}
.logic-feedback{color:#5e5a4c}
.logic-feedback.correct{color:#246436}
.teacher-screen{background:linear-gradient(180deg,#dff1ff 0,#e8f2d7 100%)}
.teacher-shell{border:3px solid #8caa77;border-radius:3px;box-shadow:5px 5px 0 rgba(51,83,41,.2)}
.teacher-login{background:#f1f7e7;border:2px solid #a3be8e;border-radius:3px}
.add-student-form{background:#e4f1d6;border:2px solid #9dbd82;border-radius:3px}
.add-student-form input,.add-student-form select{border:2px solid #9eb78c;border-radius:2px}
.roster-wrap{border:2px solid #93ad7f;border-radius:2px}
.roster-table th{background:#dceccc;color:#2c5132}
.roster-login-code{border:2px solid #76a856;border-radius:2px;background:#e7f5d7;color:#234b2b}
.print-code-card{border-radius:2px;border-color:#7ca260}
footer{color:#355b3b}
footer a{color:#246b38}
@media(max-width:640px){
  .welcome{margin:8px 10px 14px;padding:18px 14px;border-width:2px}
  .welcome h1{font-size:24px;max-width:14ch}
  .welcome-copy>p:last-child{font-size:13px}
  .rory-card{padding:6px}
  .year-tab{box-shadow:2px 2px 0 #70975a}
  .lesson-panel,.challenge-panel{border-width:2px}
  .maze-wrap{border-width:3px;padding:11px}
  .cell{border-width:2px}
  .builder{padding:10px}
}
