.mobile-lab-bar{display:none}@media(max-width:850px){body.mobile-lab{padding-bottom:calc(84px + env(safe-area-inset-bottom));overflow-x:hidden}body.mobile-lab header .nav{padding:12px 14px;gap:8px;flex-wrap:wrap}body.mobile-lab header nav{display:flex;gap:10px;flex-wrap:wrap;font-size:11px}body.mobile-lab .brand{font-size:17px}body.mobile-lab .brand small{font-size:8px}body.mobile-lab .lab-intro,body.mobile-lab .race-intro{padding:16px 14px 5px!important}body.mobile-lab .lab-intro h1,body.mobile-lab .race-intro h1{font-size:23px;line-height:1.4}body.mobile-lab .lab-intro p,body.mobile-lab .race-intro p{font-size:13px}body.mobile-lab .lab{display:flex;flex-direction:column;padding:8px 12px 18px;gap:10px}body.mobile-lab .lab-panel{width:100%;min-width:0;box-sizing:border-box}body.mobile-lab[data-mobile-view=edit] .simulation-panel,body.mobile-lab[data-mobile-view=edit] .race-board{display:none}body.mobile-lab[data-mobile-view=stage] .palette-panel,body.mobile-lab[data-mobile-view=stage] .program-panel,body.mobile-lab[data-mobile-view=stage] .race-editor{display:none}body.mobile-lab .palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}body.mobile-lab .palette>.palette-label,body.mobile-lab .palette>h3{grid-column:1/-1}body.mobile-lab .piece{font-size:13px;min-height:44px;padding:10px}body.mobile-lab .palette-note{font-size:11px}body.mobile-lab .program-list{min-height:150px;max-height:none;overflow:visible;padding:12px}body.mobile-lab input,body.mobile-lab select,body.mobile-lab textarea{font-size:16px!important}body.mobile-lab .row-tools button{min-width:36px;min-height:36px;font-size:13px}body.mobile-lab .run-controls{display:none}body.mobile-lab .first-guide{padding:14px!important;margin:12px!important}body.mobile-lab .first-guide h2{font-size:19px}body.mobile-lab .guide-actions button,body.mobile-lab .guide-actions a{min-height:44px;box-sizing:border-box}body.mobile-lab .stage-wrap{padding:10px}body.mobile-lab .screen-box{padding:12px}body.mobile-lab .screen{font-size:18px;min-height:30px;padding:8px;margin-top:8px}body.mobile-lab .panel-head{padding:12px 14px}body.mobile-lab .stage{max-height:55vh}body.mobile-lab .race-layout{display:flex;flex-direction:column;padding:8px 12px;gap:12px}body.mobile-lab .race-editor{display:grid;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;overflow:hidden}body.mobile-lab .race-head,body.mobile-lab .race-palette,body.mobile-lab .race-start,body.mobile-lab .race-program,body.mobile-lab .race-guide{grid-column:1;grid-row:auto}body.mobile-lab .race-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:9px;border-right:0;border-bottom:1px solid #d4dfee}body.mobile-lab .race-palette button{min-height:44px;font-size:13px;text-align:center}body.mobile-lab .race-start{margin:12px 12px 0;max-width:calc(100% - 24px);min-width:0}body.mobile-lab .race-program{min-height:190px;max-height:none;display:flex;padding:10px 12px 18px;gap:0;overflow:visible}body.mobile-lab .race-block{max-width:100%;width:100%;min-width:0;min-height:60px;padding:10px 112px 12px 11px}body.mobile-lab .race-block .fields{font-size:13px}body.mobile-lab .race-block input{height:34px!important;width:66px!important;max-width:90px}body.mobile-lab .race-block .race-tools{top:50%!important;bottom:auto!important;transform:translateY(-50%);right:5px!important}body.mobile-lab .race-block .race-tools button{height:40px!important;width:32px!important;font-size:13px!important}body.mobile-lab .race-controls{display:none}body.mobile-lab .race-board{width:100%;position:relative!important;top:0!important;min-width:0}body.mobile-lab .mission-info{padding:12px}body.mobile-lab .mission-info h3{font-size:18px}body.mobile-lab .mission-tabs{gap:6px}body.mobile-lab .mission-tabs button{flex:1 1 95px;font-size:12px;min-height:44px;padding:8px}body.mobile-lab .field-wrap{max-height:55vh;overflow:auto}body.mobile-lab .dimension-frame{margin:32px 27px;width:calc(100% - 54px)}body.mobile-lab .stage-toolbar button{min-width:40px;min-height:40px}body.mobile-lab .stage-toolbar strong{width:100%}body.mobile-lab .stage-note{font-size:11px}body.mobile-lab .board-bottom{grid-template-columns:1fr;padding:10px}body.mobile-lab .race-guide{font-size:12px}body.mobile-lab .race-helper button{min-height:40px}body.mobile-lab .resource-map-entry{display:none!important}body.mobile-lab .mobile-lab-bar{position:fixed;display:flex;align-items:center;gap:7px;bottom:0;left:0;right:0;z-index:1700;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d4dfee;box-shadow:0 -4px 16px #233b6412}body.mobile-lab .mobile-lab-bar button{flex:1;min-height:46px;padding:8px 4px;border:1px solid #cbd8ea;border-radius:9px;font-size:13px;color:#31557a;background:#f4f7fd;cursor:pointer}body.mobile-lab .mobile-lab-bar button[aria-pressed=true]{border-color:#315d9c;background:#e4efff;font-weight:bold}body.mobile-lab .mobile-lab-bar .mobile-run{background:#315d9c;color:white;border-color:#315d9c;font-weight:bold}body.mobile-lab .mobile-lab-bar button:disabled{opacity:.5}body.mobile-lab .mobile-lab-bar button:focus-visible{outline:3px solid #ffbf00;outline-offset:2px}body.mobile-lab #stats-choice{position:relative;left:auto;bottom:auto;margin:12px;max-width:calc(100% - 24px)}body.mobile-lab .stage-expanded{position:fixed!important;inset:8px 8px 85px!important;overflow:auto;z-index:1800}body.mobile-lab .stage-expanded .field-wrap{max-height:60vh}}
/* One compact workspace: instructions and robot remain together. */
.touch-handle{display:none}@media(max-width:850px){body.mobile-lab{padding-bottom:calc(72px + env(safe-area-inset-bottom))}body.mobile-lab header{position:relative!important;height:48px}body.mobile-lab header .nav{padding:9px 14px;height:48px;box-sizing:border-box}body.mobile-lab header nav,body.mobile-lab .brand small{display:none}body.mobile-lab .brand{font-size:16px}body.mobile-lab .journey-path{display:none}body.mobile-lab .lab-intro,body.mobile-lab .race-intro{padding:7px 12px!important}body.mobile-lab .lab-intro h1,body.mobile-lab .race-intro h1{font-size:17px!important;margin:0!important}body.mobile-lab .mission-tabs{margin:7px 0 0;gap:4px}body.mobile-lab .mission-tabs button{min-height:32px;font-size:11px;padding:5px}body.mobile-lab .lab,body.mobile-lab .race-layout{display:flex;flex-direction:column;gap:7px;padding:5px 10px 12px}body.mobile-lab .simulation-panel,body.mobile-lab .race-board{order:0;position:sticky!important;top:0!important;z-index:8;background:#fff;max-height:42svh;overflow:auto;border-radius:10px}body.mobile-lab .program-panel,body.mobile-lab .race-editor{order:1;width:100%}body.mobile-lab .simulation-panel .panel-head,body.mobile-lab .backdrops,body.mobile-lab .stage-buttons,body.mobile-lab .race-board>.race-guide,body.mobile-lab .stage-note,body.mobile-lab .grid-rule,body.mobile-lab .race-helper,body.mobile-lab .race-board .eyebrow,body.mobile-lab #missionDescription,body.mobile-lab #levelInfo,body.mobile-lab #beginnerDistance,body.mobile-lab .mission-objectives,body.mobile-lab .auto-settings,body.mobile-lab .auto-metrics{display:none}body.mobile-lab .screen-box{padding:5px 10px;display:flex;gap:9px;align-items:center}body.mobile-lab .screen-top{font-size:9px;letter-spacing:0}body.mobile-lab .screen{border:0;padding:2px 6px;font-size:14px;min-height:0;margin:0;flex:1}body.mobile-lab .stage-wrap{padding:5px 8px}body.mobile-lab .stage{height:22svh;max-height:190px;width:auto;aspect-ratio:8/6;margin:auto}body.mobile-lab .stage-label{display:none}body.mobile-lab .stage-meta{font-size:10px;margin-top:3px}body.mobile-lab .status{padding:4px 10px;font-size:11px}body.mobile-lab .status strong{font-size:12px}body.mobile-lab .status span{display:none}body.mobile-lab .panel-head,body.mobile-lab .race-head{padding:7px 10px}body.mobile-lab .panel-head h2,body.mobile-lab .race-head h2{font-size:14px}body.mobile-lab .panel-head p,body.mobile-lab .race-head p,body.mobile-lab .palette-note,body.mobile-lab .race-guide,body.mobile-lab .program-panel>.palette-note{display:none}body.mobile-lab .program-toolbar{padding:5px 8px;gap:5px}body.mobile-lab .program-toolbar button{font-size:10px;padding:5px 7px}body.mobile-lab .program-list,body.mobile-lab .race-program{min-height:130px;max-height:39svh;overflow:auto;padding:6px 9px 12px;overscroll-behavior:contain}body.mobile-lab .start-block,body.mobile-lab .race-start{font-size:11px;padding:5px 9px;min-height:0;border-radius:12px 12px 3px 3px;margin:0 0 5px;min-width:0}body.mobile-lab .race-start{margin:6px 9px 0}body.mobile-lab .program-row,body.mobile-lab .race-block{min-height:44px;width:100%;box-sizing:border-box;margin:0 0 4px;padding:7px 28px 7px 30px;font-size:12px}body.mobile-lab .row-content,body.mobile-lab .race-block .fields{font-size:12px;gap:5px;min-height:28px}body.mobile-lab .program-row input,body.mobile-lab .program-row select,body.mobile-lab .race-block input{height:28px!important;padding:2px 5px!important;max-width:120px;font-size:16px!important}body.mobile-lab .race-block input{width:59px!important}body.mobile-lab .row-tools,body.mobile-lab .race-block .race-tools{display:none}body.mobile-lab .program-row:focus-within .row-tools,body.mobile-lab .race-block:focus-within .race-tools{display:flex;position:relative!important;top:auto!important;right:auto!important;transform:none;margin:5px 0 0!important;justify-content:flex-end;height:28px}body.mobile-lab .row-tools button,body.mobile-lab .race-block .race-tools button{min-width:28px!important;width:28px!important;height:28px!important;min-height:28px!important;font-size:11px!important;padding:0!important}body.mobile-lab .touch-handle{display:block;position:absolute;left:3px;top:4px;width:25px;height:36px;padding:0;border:0;background:transparent;color:#fff9;font-size:21px;touch-action:none;cursor:grab}body.mobile-lab .touch-dragging{opacity:.6}body.mobile-lab .touch-drop{outline:2px solid #ffbf00;outline-offset:1px}body.mobile-lab .palette-panel,body.mobile-lab .race-palette{display:none}body.mobile-lab.palette-open .palette-panel,body.mobile-lab.palette-open .race-palette{display:grid;position:fixed;left:10px;right:10px;bottom:calc(75px + env(safe-area-inset-bottom));width:auto;max-height:42svh;overflow:auto;z-index:1701;border:1px solid #c8d7eb;border-radius:14px;background:white;box-shadow:0 -8px 30px #233b6425;padding:12px;grid-template-columns:1fr 1fr;gap:9px}body.mobile-lab.palette-open .palette-panel .panel-head{grid-column:1/-1}body.mobile-lab.palette-open .palette-panel .palette{display:contents}body.mobile-lab .mission-info{padding:7px 10px}body.mobile-lab .mission-info h3{font-size:13px;margin:0}body.mobile-lab .delivery-row{font-size:10px;padding:3px 6px;margin:3px 0}body.mobile-lab .stage-toolbar{padding:4px 8px;gap:4px}body.mobile-lab .stage-toolbar strong{width:auto;font-size:10px}body.mobile-lab .stage-toolbar button{min-height:28px;min-width:28px;padding:3px 6px;font-size:10px}body.mobile-lab .field-wrap{padding:3px;max-height:27svh}body.mobile-lab .dimension-frame{margin:25px 23px;width:calc(100% - 46px)}body.mobile-lab .race-legend{font-size:9px}body.mobile-lab .race-legend>span:first-child{display:none}body.mobile-lab .board-bottom{display:flex;padding:4px 8px;gap:8px}body.mobile-lab .small-screen{padding:5px;flex:1}body.mobile-lab .small-screen label{display:none}body.mobile-lab .small-screen p{margin:0;font-size:11px;min-height:0}body.mobile-lab .race-status strong{font-size:11px}body.mobile-lab .race-status span{display:none}body.mobile-lab .mobile-lab-bar button{min-height:42px;font-size:13px}body.mobile-lab .stage-expanded{max-height:none}body.mobile-lab .stage-expanded .field-wrap{max-height:65svh}body.mobile-lab .experience-notes,body.mobile-lab .lab-bottom,body.mobile-lab .challenge,body.mobile-lab .race-footnote{padding-top:10px!important}}
