/* Modern Tech & Robotics UI: one shared token system; presentation only. */
 :root{
 --color-primary:#2563EB;--color-primary-hover:#1D4ED8;
 --color-secondary:#06B6D4;--color-accent:#8B5CF6;
 --color-success:#16A34A;--color-warning:#F59E0B;--color-danger:#DC2626;
 --color-background:#F3F6FC;--color-surface:#FFFFFF;--color-surface-muted:#EEF3FA;
 --color-text:#172033;--color-text-secondary:#64748B;--color-border:#DCE4F0;--color-header:#071A33;
 --color-primary-light:#EFF6FF;--color-secondary-light:#ECFEFF;--color-accent-light:#F5F3FF;
 --color-focus:#2563EB;--color-info:#1D4ED8;
 --ink:var(--color-text);--green:var(--color-primary);--line:var(--color-border);--muted:var(--color-text-secondary);--paper:var(--color-background);--sky:var(--color-secondary-light);
 --ui-radius:12px;--ui-shadow:0 4px 20px #071A3309;--ui-font:Prompt,"IBM Plex Sans Thai","Noto Sans Thai",Tahoma,system-ui,sans-serif;
 font-family:var(--ui-font);font-size:15px;color:var(--color-text);background:var(--color-background)
}
body{background:var(--color-background);color:var(--color-text);line-height:1.65;font-family:var(--ui-font)}
[hidden]{display:none!important}*{box-sizing:border-box}img{max-width:100%}
a{color:var(--color-primary-hover);text-underline-offset:3px}button,input,select,textarea{font-family:inherit;font-size:14px}
button{min-height:42px;padding:9px 14px;border:1px solid #b8c4da;border-radius:9px;color:#26354e;background:#fff;line-height:1.5;font-weight:600;box-shadow:0 1px 2px #07173306;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
button:hover:not(:disabled){background:#f1f5fd;border-color:#7ba3e7;box-shadow:0 3px 10px #296fe712}button:active:not(:disabled){transform:translateY(1px);background:#dee9fb}button:disabled{opacity:1;background:#edf1f7!important;color:#78859b!important;border-color:#dce3f0!important;box-shadow:none;cursor:not-allowed;transform:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;box-shadow:0 0 0 5px #fff}
input:not(.blocklyHtmlInput):not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{min-height:42px;padding:9px 11px;background:#fff;border:1px solid #b8c4da;border-radius:8px;color:var(--color-text);max-width:100%}input::placeholder,textarea::placeholder{color:#64728b}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--color-primary);vertical-align:middle;flex:none}input[type=range]{accent-color:var(--color-primary);max-width:160px;min-height:28px}textarea{line-height:1.7;resize:vertical}
.skip-link{position:fixed;left:16px;top:-100px;z-index:1000;padding:12px 20px;background:#fff;color:#172133;border:3px solid #296fe7;border-radius:8px}.skip-link:focus{top:12px}
body>header{height:auto;min-height:88px;background:var(--color-header);padding:16px 3%;gap:20px;flex-wrap:wrap;box-shadow:0 3px 18px #07173315}
#brand{color:#fff;flex:none}#brand .logo{width:54px;height:50px;border-radius:12px;font-size:16px;letter-spacing:-.5px;background:#296fe7;color:#fff;box-shadow:inset 0 0 0 1px #ffffff25,4px 4px 0 #1656c425}#brand strong{font-size:19px;letter-spacing:0}#brand b{color:#fff;font-weight:600}#brand small{font-size:11px;letter-spacing:.2px;color:#bdcde8}header nav{gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:1}header nav button,header nav>a{color:#dee9fb;background:transparent;border:1px solid #384b6d;font-size:13px;text-decoration:none;padding:9px 12px;border-radius:8px}header nav button:hover:not(:disabled),header nav>a:hover{background:#193668;color:#fff;border-color:#6b9cef}
.module-nav{display:flex;gap:4px;flex-wrap:wrap;padding:4px;background:#ffffff09;border-radius:10px}.module-nav a{color:#c5d2e9;text-decoration:none;padding:9px 13px;border-radius:8px;font-size:13px;white-space:nowrap}.module-nav a:hover{color:#fff;background:#ffffff10}.module-nav a[aria-current=page]{color:#fff;background:#296fe7;box-shadow:0 2px 8px #0002}.module-nav a span{margin-right:5px;font-size:16px}
#home{max-width:1480px;padding:48px 4%}.nkw-hero{gap:40px}.nkw-hero-copy>.eyebrow{font-size:11px;color:#1d62d8;background:#e8effc;border-color:#cdddf9}.nkw-hero-copy>.eyebrow:before{background:#296fe7}h1{color:var(--color-header);font-size:clamp(32px,3.8vw,54px);line-height:1.45}h1 .hero-accent{color:var(--color-primary)}h1 .hero-dot{color:var(--color-secondary)}.intro{font-size:16px;color:#475369}.home-meta{font-size:12px}.home-meta b{background:#dee9fb;color:#1d62d8}.nkw-hero-visual{background:#e7effc;border-radius:16px;border-color:#cfdbef}.nkw-hero-visual-top,.nkw-hero-visual-bottom span{font-size:12px}.nkw-hero-visual-bottom{background:#071733}.nkw-hero-visual-bottom strong{font-size:16px}.nkw-ready-dot{font-size:12px;color:#163365}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{border-radius:14px;box-shadow:var(--ui-shadow);display:flex;flex-direction:column}.card-photo{height:auto;aspect-ratio:4/3;border-bottom:3px solid #296fe7}.line-card .card-photo{border-bottom-color:#1656c4}.sumo-card .card-photo{border-bottom-color:#6497ee}.card-body{padding:24px;display:flex;flex-direction:column;flex:1}.card-body small{font-size:11px;color:#475369}.card-body h2{font-size:22px;font-weight:700}.card-body p{font-size:14px;color:#475369}.card-body>.wide{margin-top:auto}.wide{display:block;font-size:14px;text-decoration:none;border-radius:9px;min-height:48px}.wide span{color:#fff}.section-title>span{font-size:12px}.section-title h2{font-size:26px}
.primary,#lab .primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.primary:hover:not(:disabled),#lab .primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}
#lab{max-width:1920px;padding:24px 24px 48px;min-width:0}.lab-breadcrumb{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;color:#475369;margin:0 0 12px}.lab-breadcrumb a{text-decoration:none}.lab-title{padding:20px 24px;background:#fff;border:1px solid var(--color-border);border-left:4px solid #296fe7;border-radius:12px;margin-bottom:16px;gap:18px}.lab-title h2{font-size:clamp(22px,2.2vw,30px);font-weight:700;line-height:1.5;color:#172133;letter-spacing:0;margin:4px 0}.lab-title .eyebrow{font-size:12px;color:#1d62d8;letter-spacing:.6px}.lab-title p{font-size:14px;color:#475369}.lab-title>.title-tools{gap:8px;flex-wrap:wrap}.title-tools button{font-size:13px;min-height:42px;background:#fff;color:#26354e}.robot-thumb,.sumo-reference-thumb{border-radius:12px!important}
.notice,#lab>.notice{background:#fffbeb;color:#784813;border:1px solid #f2d99e;border-left:4px solid #f59e0b;border-radius:10px;font-size:13px;line-height:1.8;margin:14px 0;padding:14px 18px}
.project-bar{padding:14px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--ui-shadow);gap:8px}.project-bar input{font-size:14px;min-height:42px}.project-bar #project{width:230px}.project-bar #classroom,.project-bar #number{width:78px}.project-bar button{font-size:13px;min-height:42px}.project-bar #saved{font-size:12px;color:#475369}#lab .project-bar #save{background:#f0f5fd;border-color:#86a0cd;color:#163365}
#lab>#simulationControls.nkw-sim-toolbar{background:#fff;border:1px solid #bbceee;border-top:4px solid #296fe7;padding:12px 16px;gap:9px;border-radius:12px;box-shadow:0 4px 18px #0717330a;position:sticky;top:8px;z-index:30;min-height:76px}.nkw-toolbar-title{font-size:13px!important;color:#333f55!important}#lab #simulationControls button{min-height:44px;padding:10px 16px;font-size:14px;border-radius:9px}#lab #simulationControls #run{min-width:160px;background:#296fe7;color:#fff;border-color:#296fe7;box-shadow:0 3px 8px #296fe725}#lab #simulationControls #run:hover:not(:disabled){background:#1d62d8}#lab #simulationControls #pause{background:#f59e0b;color:#422006;border-color:#dc8a08}#lab #simulationControls #stop{background:#2669dc;color:#fff;border-color:#2669dc}#lab #simulationControls #reset{background:#fff;color:#333f55;border-color:#94a1b8}#lab #simulationControls button:disabled{background:#edf1f7!important;color:#78859b!important;border-color:#dce3f0!important;box-shadow:none}#simulationControls label{font-size:12px;color:#475369}#simulationControls select{font-size:13px;min-height:38px}.nkw-audio-controls{border-left:1px solid #dce3f0!important;gap:8px!important}#simulationControls .microbit-keys button{padding:7px 10px;min-width:42px}.microbit-keys{flex-wrap:wrap}
#lab .workbench{gap:20px;grid-template-columns:minmax(0,45fr) minmax(0,55fr);align-items:stretch;min-width:0;margin:16px 0 24px}.workbench>*{min-width:0}.editor-panel,.sim-panel,.panel{border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--ui-shadow);background:#fff;min-width:0}.editor-panel{resize:horizontal;max-width:100%;min-width:0}.panel{margin-bottom:20px}.panel-head{min-height:56px;padding:14px 18px;background:#f6f9fe;border-bottom:1px solid #dce3f0;gap:12px;flex-wrap:wrap}.panel-head strong{font-size:15px!important;font-weight:700;color:#25334c!important}.panel-head .tiny{font-size:12px;color:#475369}.editor-panel>.panel-head{background:#eaf1fd;border-top:3px solid #6497ee}.sim-panel>.panel-head{background:#e5edfc;border-top:3px solid #1656c4}.tiny,.sensor-note{font-size:12px;line-height:1.75;color:#475369}.eyebrow{font-size:12px}.example-bar{padding:12px;background:#fbfcfe;gap:8px}.example-bar label{font-size:12px;color:#475369}.example-bar select{max-width:min(100%,360px);font-size:13px;padding:8px;min-height:38px}.example-bar button{font-size:13px;min-height:38px;padding:8px 12px}.editor-bottom{font-size:12px;line-height:1.7;color:#475369;background:#f8f9fc;padding:12px}
#lab #blockly,#lab #opponentBlockly{height:clamp(480px,62vh,740px);min-height:480px;width:100%;min-width:0}.blocklyTreeLabel,.blocklyToolboxCategoryLabel{font-family:var(--ui-font)!important;font-size:13px!important}.blocklyToolboxDiv{background:#eef2fa!important;border-right:1px solid #dce3f0}.blocklyFlyoutBackground{fill:#eef2fa!important}.blocklyMainBackground{stroke:none}.sim-panel{display:flex;flex-direction:column}.sim-panel>.viewport-wrap{position:relative;flex:none;height:clamp(480px,62vh,740px);min-height:480px;min-width:0;isolation:isolate;background:#eaeff8}.viewport-wrap>#viewport{height:100%;width:100%;min-width:0}.viewport-wrap canvas{display:block;max-width:100%}
.sim-statusbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #e4eaf3;background:#fff;font-size:12px;color:#475369}.sim-statusbar .state{position:static;display:inline-flex;align-items:center;gap:7px;margin:0;padding:6px 12px;border-radius:7px;font-size:13px;line-height:1.5;color:#163365;background:#f0f5fd;border:1px solid #a7badb;letter-spacing:0}.state::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.sim-statusbar [data-ui-state=running]{background:#f1f5fd;color:#1d62d8;border-color:#b9cff5}.sim-statusbar [data-ui-state=paused]{background:#fffbeb;color:#92400e;border-color:#f1d394}.sim-statusbar [data-ui-state=finished]{background:#f4f8fe;color:#2869d9;border-color:#c8d9f7}.sim-statusbar [data-ui-state=error]{background:#f2f7fe;color:#1c56b9;border-color:#b9cdf0}.sim-statusbar [data-ui-state=stopped]{background:#f1f4f9;color:#475369;border-color:#cbd3e1}.sim-statusbar [data-ui-state=replay]{background:#eef3fd;color:#103e8e;border-color:#a5bbe2}.sim-statusbar [data-ui-state=running]::before{animation:ui-pulse 1.5s ease-in-out infinite}
.sim-camera-toolbar{padding:10px 12px;background:#f9fbfe;border-bottom:1px solid #dce3f0}.sim-camera-toolbar .view-buttons{position:static;display:flex;gap:7px;flex-wrap:wrap}.sim-camera-toolbar .view-buttons button{font-size:12px;min-height:38px;padding:8px 12px;background:#fff;color:#333f55}.sim-camera-toolbar .view-buttons .selected{background:#1d62d8;border-color:#1d62d8;color:#fff}.sim-options{padding:12px 16px;background:#f8f9fc;border-top:1px solid #dce3f0;display:flex;flex-direction:column;gap:10px}.sim-options .debug,.sim-options .overlay-controls,.sim-options .view-label{position:static!important;inset:auto!important;font-size:12px!important;line-height:1.6;color:#475369;background:transparent;border:none;box-shadow:none;margin:0;padding:0;max-width:100%;letter-spacing:0;pointer-events:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sim-options .view-label{display:block}.sim-options .view-label span{font-size:12px;color:#64728b}.sim-options .overlay-controls label{font-size:12px;display:inline-flex;align-items:center;gap:6px}.sim-options .overlay-controls form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:0}
.stats,.metrics,.telemetry,.timing-row{font-variant-numeric:tabular-nums}.stats{padding:14px;gap:10px;background:#fff}.stats strong{font-size:24px;color:#172133}.stats small,.stats span{font-size:12px;color:#475369}.dot{background:#164aa3}.dot.blue{background:#6497ee}.lower-grid{gap:20px;margin:20px 0}.lower-grid>*{min-width:0}.sensor{background:#f8f9fc;border-color:#dce3f0;font-size:12px;padding:12px}.sensor strong{color:#1d62d8}.sensor progress{accent-color:#296fe7}.event{font-size:13px;border-color:#e6ecf5}.event time{color:#1d62d8;font-variant-numeric:tabular-nums}.event small{font-size:12px;color:#64728b}table{font-size:13px;width:100%;border-collapse:collapse}th{background:#eef2fa;color:#333f55;text-align:left;font-weight:600}td,th{padding:12px;border-color:#e4eaf3;line-height:1.7}pre{overflow:auto;max-width:100%;font-size:12px;line-height:1.7}.code-panel{border-top:1px solid #dce3f0}.code-panel summary{padding:10px 14px;cursor:pointer;color:#475369;font-size:12px}.code-panel pre{max-height:180px;margin:0;padding:14px}
.practice-row,.rescue-tool-row,.analysis-controls,.layout-bar{gap:10px;flex-wrap:wrap;font-size:13px}.practice-row button,.rescue-tool-row button,.analysis-controls button{font-size:13px}.mini-cards,.line-mini-cards,.strategy-cards{gap:16px;padding:18px}.mini-card,.line-mini-cards article,.strategy-cards article{border:1px solid #dce3f0;background:#fff;border-radius:12px;padding:16px}.mini-card h3,.line-mini-cards h3,.strategy-cards h3{font-size:17px;color:#172133}.mini-card p,.line-mini-cards p,.strategy-cards p{font-size:13px;color:#475369}.mini-scenarios,.line-learning-panel{background:#fff}.track-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.track-card{border-radius:12px;border:1px solid #dce3f0;box-shadow:var(--ui-shadow);background:#fff;padding:14px;min-width:0}.track-card img{aspect-ratio:3/2;width:100%;object-fit:contain;background:#f8f9fc;border-radius:8px}.track-card h3{font-size:18px;color:#172133}.track-card p{font-size:13px;color:#475369;line-height:1.8}.track-card button{font-size:13px;min-height:42px}.track-actions{gap:10px;flex-wrap:wrap}.team-card{border-radius:12px;box-shadow:none}.team-card p,.team-card small{font-size:12px;line-height:1.7}.team-card .team-letter{color:#fff}.rescue-missions>span.complete{background:#f0f5fd;color:#163365;border-color:#a3b6d8}.replay-events button,.rescue-replay-events button,.line-replay-events button{font-size:12px;min-height:40px}.strategy-panel .practice-row,.robustness-panel .practice-row{padding:16px}.analysis-evidence article,.rescue-issues article{background:#fffbf4;border-color:#ead8b7}.analysis-evidence article p,.rescue-issues article p{font-size:13px}.robust-results table{min-width:800px}.robust-results,.study-table,.rescue-ledger,#history,#batchResults{overflow:auto;max-width:100%}#batchResults{padding:16px}.results textarea{font-size:14px}.results .panel-head{background:#eef2fa}
dialog{border:1px solid #cfdaec;border-radius:16px;box-shadow:0 24px 80px #07173333;max-width:min(1080px,calc(100vw - 32px));width:fit-content;min-width:min(460px,calc(100vw - 32px));padding:0;color:#172133;background:#fff}dialog::backdrop{background:#07173366}.dialog-top{padding:16px 20px;background:#071733;color:#fff;gap:16px}.dialog-top strong{font-size:18px}.dialog-top button{background:#17315f;border-color:#47608a;color:#fff}.dialog-top button:hover{background:#25457b}#dialogBody{padding:24px;font-size:14px;max-width:100%;overflow:auto}#dialogBody p,#dialogBody label{font-size:14px;line-height:1.8}#dialogBody table{font-size:13px}#toast{border-radius:10px;background:#071733;color:#fff;font-size:14px;padding:14px 20px;max-width:calc(100vw - 32px);line-height:1.7;box-shadow:0 6px 24px #07173326}
footer{font-size:12px;background:#fff;border-color:#dce3f0;color:#475369;flex-wrap:wrap}footer p{font-size:12px;color:#475369}footer>span{font-size:11px;color:#1d62d8}footer small{color:#64728b}
@keyframes ui-pulse{50%{opacity:.45}}
@media(min-width:1121px){#lab .workbench{grid-template-columns:minmax(0,45fr) minmax(0,55fr)}}
@media(max-width:1120px){body>header{padding:16px 24px}header nav{justify-content:flex-start;flex-basis:100%}#lab .workbench{grid-template-columns:minmax(0,1fr)!important}.editor-panel{resize:none;max-width:100%}.nkw-hero{gap:24px}.title-tools{justify-content:flex-start!important}.lab-title{flex-wrap:wrap}.track-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sim-panel>.viewport-wrap{height:520px;min-height:520px}}
@media(max-width:760px){#lab{padding:16px 12px 32px}body>header{padding:16px}#brand strong{font-size:16px}#brand small{font-size:10px}#brand .logo{width:46px;height:46px}.module-nav{width:100%;justify-content:flex-start;gap:2px}.module-nav a{padding:9px 10px;font-size:12px}header nav{gap:8px}.lab-title{padding:16px;gap:12px}.title-tools{width:100%}.title-tools button{flex:1;min-width:120px}.nkw-hero{grid-template-columns:1fr;gap:24px;margin-bottom:32px}.nkw-hero-copy{padding:0}.nkw-hero-visual img{height:240px}.cards{grid-template-columns:1fr}.card-photo{aspect-ratio:16/10;max-height:300px}.section-title{align-items:flex-start;flex-direction:column;gap:10px}.project-bar input,.project-bar #project{width:auto;flex:1 1 145px}.project-bar #classroom,.project-bar #number{flex:1 1 60px}.project-bar #saved{flex-basis:100%;margin:0}#lab>#simulationControls.nkw-sim-toolbar{position:static;padding:12px;gap:8px}#lab #simulationControls #run{min-width:0}#lab #simulationControls button{padding:10px 12px;font-size:13px;flex:1}.nkw-toolbar-title{width:100%}.nkw-audio-controls{border-left:0!important;padding-left:0!important;width:100%;flex-wrap:wrap}.start-button-choice{width:100%}.microbit-keys{width:100%}.panel-head{padding:12px 14px}.panel-head .tiny{width:100%}#lab #blockly,#lab #opponentBlockly{height:520px;min-height:440px}.sim-panel>.viewport-wrap{height:430px;min-height:430px}.view-buttons button{flex:1}.lower-grid,.mini-cards,.line-mini-cards,.strategy-cards,.chart-grid,.reflection-grid,.team-cards{grid-template-columns:minmax(0,1fr)}.track-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-bar{padding:12px}.sim-options{padding:12px}.sim-options .view-label span{display:block}.sim-options .overlay-controls{gap:12px}.sim-options .overlay-controls input[type=number]{max-width:100px}.home-meta{gap:10px;line-height:1.7}.nkw-hero-visual-top{padding:12px}.sumo-analysis .analysis-evidence{grid-template-columns:1fr}.sim-statusbar{align-items:flex-start}.sim-statusbar .state{max-width:75%;white-space:normal}.analysis-controls label{flex-wrap:wrap}}
@media(max-width:380px){#lab{padding-inline:8px}.project-bar{padding:10px}.module-nav a{padding:8px}.sim-panel>.viewport-wrap{height:380px;min-height:380px}.title-tools button{min-width:100px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body>*:not(#printArea){display:none!important}#printArea{display:block!important;color:#000;background:#fff}#printArea button{display:none}#printArea table{font-size:10px}#printArea td,#printArea th{border:1px solid #aaa;padding:6px;color:#000}}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.lab-title>.ui-robot-thumb,.lab-title>.robot-thumb,.lab-title>.sumo-reference-thumb{width:72px;height:72px;object-fit:contain;flex:none;background:#eef2fa;border:1px solid #dce3f0;border-radius:12px}.lab-title>.title-tools{margin-left:auto}@media(max-width:760px){.lab-title>.ui-robot-thumb,.lab-title>.robot-thumb,.lab-title>.sumo-reference-thumb{width:56px;height:56px}.lab-title>div:not(.title-tools){flex:1;min-width:150px}}


/* Semantic presentation colours. Field textures, robot materials and block data are untouched. */
@media screen{
 body{background:radial-gradient(ellipse at 5% 0%,#e6f0ff 0%,transparent 36%),var(--color-background)}
 body>header{background:var(--color-header);border-bottom:1px solid #243b59;box-shadow:0 4px 18px #071a3314}
 #brand,#brand b{color:#fff}#brand small{color:#cbd5e1}#brand .logo{background:var(--color-primary);color:#fff;box-shadow:4px 4px 0 #06b6d430}
 header nav button,header nav>a{background:#112945;color:#f1f5f9;border-color:#37506e}header nav button:hover:not(:disabled),header nav>a:hover{background:#1e3a5f;color:#fff;border-color:#93c5fd}
 .module-nav{background:#ffffff09}.module-nav a{color:#dbeafe}.module-nav a:hover{background:#19375a;color:#fff}.module-nav a[aria-current=page]{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0002}
 a,.lab-breadcrumb a,.lab-breadcrumb>span:last-child{color:var(--color-primary-hover)}
 .lab-title{background:linear-gradient(110deg,#eff6ff,#fff 65%,#ecfeff);border-left:5px solid var(--color-primary);box-shadow:var(--ui-shadow)}.lab-title .eyebrow{color:var(--color-primary-hover)}
 #lab .panel-head{background:#f1f5fb;color:#243b59;border-top:3px solid #cbd5e1;border-bottom:1px solid var(--color-border)}
 #lab .panel-head strong,#lab .panel-head .tiny,#lab .panel-head>span,#lab .panel-head>label{color:#334155!important}
 #lab .editor-panel>.panel-head{background:#f5f3ff;border-top-color:var(--color-accent)}#lab .editor-panel>.panel-head strong{color:#5b21b6!important}
 #lab .sim-panel>.panel-head{background:#ecfeff;border-top-color:var(--color-secondary)}#lab .sim-panel>.panel-head strong{color:#155e75!important}
 #lab .mini-scenarios>.panel-head,#lab .line-learning-panel>.panel-head,#lab .learning-sheet>.panel-head{background:#f5f3ff;border-top-color:var(--color-accent)}
 #lab .cargo-panel>.panel-head,#lab .practice-tools>.panel-head{background:#fffbeb;border-top-color:var(--color-warning)}
 #lab .results>.panel-head,#lab .replay-panel>.panel-head,#lab .line-replay>.panel-head{background:#eff6ff;border-top-color:var(--color-primary)}
 .primary,#lab .primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.primary:hover:not(:disabled),#lab .primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}
 #lab button:not(.primary){background:#fff;color:#334155;border-color:#b6c5da}#lab button:not(.primary):hover:not(:disabled){background:#eff6ff;border-color:var(--color-primary);box-shadow:0 3px 10px #2563eb12}
 #lab .panel-head button{background:#fff;color:#1d4ed8;border-color:#b6c5da}
 #lab #simulationControls #run{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 3px 8px #2563eb25}#lab #simulationControls #run:hover:not(:disabled){background:var(--color-primary-hover)}
 #lab #simulationControls #pause{background:var(--color-warning);color:#422006;border-color:#d97706}#lab #simulationControls #pause:hover:not(:disabled){background:#fbbf24}
 #lab #simulationControls #stop{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}#lab #simulationControls #stop:hover:not(:disabled){background:#b91c1c}
 #lab #simulationControls #reset{background:#eef2f7;color:#334155;border-color:#94a3b8}
 #lab button:disabled,button:disabled{background:#eef2f7!important;color:#64748b!important;border-color:#dce4f0!important;box-shadow:none}
 #lab #robustRun,#lab #rescueStudyRun,#lab #batchStart,#lab .project-bar #save{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}#lab .project-bar #save:hover:not(:disabled){background:var(--color-primary-hover)}
 #lab #loadExample,#lab #scenarioStarter,#lab #lineMiniStarter{background:#f5f3ff;color:#5b21b6;border-color:#c4b5fd}#lab #loadExample:hover:not(:disabled),#lab #scenarioStarter:hover:not(:disabled),#lab #lineMiniStarter:hover:not(:disabled){background:#ede9fe}
 #lab .title-tools [data-dialog=settings],#lab .title-tools #settings,#lab .title-tools #fields{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
 #lab .title-tools [data-dialog=rules],#lab .title-tools #mission{background:#fffbeb;color:#92400e;border-color:#fcd34d}
 #lab .title-tools [data-dialog=missions],#lab .title-tools #editField{background:#f5f3ff;color:#5b21b6;border-color:#c4b5fd}
 #lab>.nkw-sim-toolbar#simulationControls{border-color:var(--color-border);border-top:4px solid var(--color-primary);box-shadow:var(--ui-shadow)}.project-bar{border-top:3px solid var(--color-primary)}
 .sim-camera-toolbar{background:var(--color-surface-muted);border-bottom-color:var(--color-border)}#lab .sim-camera-toolbar .view-buttons .selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
 .sim-options{background:#f8fafc;border-color:var(--color-border)}.sim-options .debug,.sim-options .overlay-controls,.sim-options .view-label,.sim-options .view-label span{color:#475569}
 .sim-statusbar{border-left:4px solid var(--color-secondary)}.sim-statusbar .state,.sim-statusbar [data-ui-state=ready]{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
 .sim-statusbar [data-ui-state=running],.sim-statusbar [data-ui-state=finished]{background:#f0fdf4;color:#166534;border-color:#86efac}.sim-statusbar [data-ui-state=paused]{background:#fffbeb;color:#92400e;border-color:#fcd34d}.sim-statusbar [data-ui-state=error]{background:#fef2f2;color:#b91c1c;border-color:#fca5a5}.sim-statusbar [data-ui-state=stopped]{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.sim-statusbar [data-ui-state=replay]{background:#f5f3ff;color:#5b21b6;border-color:#c4b5fd}
 .sensor{background:#f8fafc;border:1px solid var(--color-border);border-top:3px solid var(--color-primary)}.sensor strong{color:#1d4ed8}.sensor:nth-child(3n+2){background:#f5f3ff;border-top-color:var(--color-accent)}.sensor:nth-child(3n+2) strong{color:#6d28d9}.sensor:nth-child(3n){background:#ecfeff;border-top-color:var(--color-secondary)}.sensor:nth-child(3n) strong{color:#155e75}
 .stats>div{background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;padding:12px}.stats strong{color:#1d4ed8}.stats>div:nth-child(2n){background:#f5f3ff;border-color:#e9d5ff}.stats>div:nth-child(2n) strong{color:#6d28d9}
 .event time{color:#1d4ed8}.layout-bar{background:#eef3fa;border:1px solid var(--color-border);border-radius:10px;padding:12px}.example-bar{background:#f8fafc;border-bottom-color:var(--color-border)}.editor-bottom{background:#f8fafc;color:#475569}
 .mini-card,.line-mini-cards article,.strategy-cards article{background:#fff;border-top:4px solid var(--color-primary)}.mini-card:nth-child(2),.line-mini-cards article:nth-child(2),.strategy-cards article:nth-child(2){border-top-color:var(--color-secondary)}.mini-card:nth-child(3),.line-mini-cards article:nth-child(3),.strategy-cards article:nth-child(3){border-top-color:var(--color-accent)}
 .track-card{border-top:4px solid var(--color-primary);box-shadow:0 3px 12px #071a3308}.track-card:nth-child(3n+2){border-top-color:var(--color-secondary)}.track-card:nth-child(3n){border-top-color:var(--color-accent)}
 .card{border-color:var(--color-border);box-shadow:0 7px 22px #071a330c}.card-photo{border-bottom:4px solid var(--color-primary)}.line-card .card-photo{border-bottom-color:var(--color-secondary)}.sumo-card .card-photo{border-bottom-color:var(--color-accent)}.card-body,.line-card .card-body,.sumo-card .card-body{background:#fff}
 .card .primary,.line-card .primary,.sumo-card .primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.card .primary:hover,.line-card .primary:hover,.sumo-card .primary:hover{background:var(--color-primary-hover);color:#fff}.wide span{color:#fff}
 h1 .hero-accent{color:var(--color-primary)}h1 .hero-dot{color:var(--color-secondary)}.nkw-hero-copy>.eyebrow{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.nkw-hero-copy>.eyebrow:before{background:var(--color-primary)}
 .nkw-hero-visual{border-color:var(--color-border);box-shadow:0 16px 40px #2563eb12}.nkw-hero-visual-top{background:#ecfeff;color:#155e75}.nkw-hero-visual-bottom{background:var(--color-header)}.nkw-hero-visual-bottom strong{color:#fff}.nkw-hero-visual-bottom span{color:#cbd5e1}.nkw-ready-dot{background:#f0fdf4;color:#166534}.home-meta b{background:var(--color-primary);color:#fff}.home-meta span:nth-of-type(2) b{background:#0e7490;color:#fff}.home-meta span:nth-of-type(3) b{background:#6d28d9;color:#fff}
 .team-A{--team:#7c3aed!important}.team-B{--team:#f97316!important}.team-A .team-letter{background:#7c3aed;color:#fff}.team-B .team-letter{background:#f97316;color:#172033}.team-card-head{background:#f8fafc;color:#172033}.team-card-head strong{color:#172033}.team-card-head small{color:#64748b}
 .notice,#lab>.notice{background:#fffbeb;border-color:#fde68a;border-left-color:var(--color-warning);color:#78350f}.rescue-missions>span.complete{background:#f0fdf4;color:#166534;border-color:#86efac}
 .dialog-top{background:var(--color-header);color:#fff}.dialog-top button{background:#1e3a5f;color:#fff;border-color:#526b8b}.dialog-top button:hover{background:#2b4e7b;color:#fff}
 th{background:var(--color-surface-muted);color:#334155}#toast{background:var(--color-header);color:#fff}footer>span{color:var(--color-primary-hover)}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:var(--color-focus)}
 input[type=range],input[type=checkbox],input[type=radio],progress{accent-color:var(--color-primary)}progress::-webkit-progress-value{background:var(--color-primary)}progress::-moz-progress-bar{background:var(--color-primary)}
 .blocklyToolboxDiv{background:#eef3fa!important;border-color:var(--color-border)}.blocklyFlyoutBackground{fill:#eef3fa!important}
 #lab .line-replay-events .loss-event{background:#fef2f2;color:#b91c1c;border-color:#fca5a5}
 ::selection{background:#dbeafe;color:#172033}*{scrollbar-color:#94a3b8 #eef3fa}
}
/* Keep child content inside narrow panels without shrinking the programming canvas. */
.panel-head>*,.project-bar>*,.practice-row>*,.title-tools>*{min-width:0}
.panel-head strong,.panel-head .tiny,.sensor-note,.card-body p{overflow-wrap:anywhere}
@media(max-width:760px){.practice-row>select,.practice-row>label{max-width:100%}.practice-row{gap:12px}.sim-statusbar{flex-wrap:wrap}.sim-statusbar .state{max-width:100%}#lab .panel-head button{max-width:100%}#brand{max-width:100%}#brand strong{white-space:normal}.module-nav a{white-space:normal}}

/* MakeCode micro:bit reference palette: scoped to Blockly; no global theme changes. */
@media screen{
 #lab .blocklyToolboxDiv{background:#fff!important}
 #lab .blocklyFlyoutBackground{fill:#f4f6f7!important}
 .blocklyTreeRow{height:auto;min-height:36px;line-height:36px;margin:0;padding-inline-end:12px;border-bottom:1px solid #eef0f2}
 .blocklyTreeRow:not(.blocklyTreeSelected):hover{background:#f3f6fc}
 .blocklyTreeLabel[class*=nkw-category-]{font-size:14px!important;font-weight:600}
 .nkw-category-basic{color:#0874cc}.nkw-category-input{color:#d400d4}.nkw-category-loops{color:#008000}.nkw-category-logic{color:#007b7d}.nkw-category-variables{color:#dc143c}.nkw-category-math{color:#9400d3}.nkw-category-functions{color:#3455db}.nkw-category-extension{color:#717171}
 .blocklyTreeSelected .blocklyTreeLabel[class*=nkw-category-]{color:#fff}
 .blocklyTreeSelected .nkw-category-basic{color:#09254b!important}.blocklyTreeSelected .nkw-category-loops{color:#003600!important}.blocklyTreeSelected .nkw-category-logic{color:#00383b!important}
}

/* Focused hierarchy refinement: neutral supporting tools, one primary run action. */
@media screen{
 #lab input:not(.blocklyHtmlInput):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),#lab select,#lab textarea,#dialogBody input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),#dialogBody select,#dialogBody textarea{background:#fff;color:#334155;border-color:#cbd5e1;box-shadow:none}
 #lab select option,#dialogBody select option{background:#fff;color:#334155}
 #lab input::placeholder,#lab textarea::placeholder,#dialogBody input::placeholder,#dialogBody textarea::placeholder{color:#64748b}
 #lab button:not(.primary):not(#run):not(#pause):not(#stop):not(#save):not(.selected),#dialogBody button:not(.primary):not(.selected){background:#fff;color:#334155;border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a05}
 #lab button:not(.primary):not(#run):not(#pause):not(#stop):not(#save):not(.selected):hover:not(:disabled),#dialogBody button:not(.primary):not(.selected):hover:not(:disabled){background:#f8fafc;color:#172033;border-color:#94a3b8;box-shadow:0 2px 6px #0f172a08}
 #lab .example-bar label,#lab .example-bar select,#lab .example-bar button,#lab .ring-picker,#lab .sensor-range-controls,#lab .sensor-range-controls output{color:#334155}
 #lab .sensor-range-controls{background:#f8fafc;border-color:#dce4f0}
 #lab input:focus-visible,#lab select:focus-visible,#lab textarea:focus-visible{border-color:#2563eb}
 #lab>#simulationControls.nkw-sim-toolbar{display:grid;grid-template-columns:minmax(400px,1.15fr) minmax(290px,1fr) minmax(300px,1fr);align-items:stretch;gap:12px;padding:12px;border-top-width:3px;min-height:0}
 #simulationControls>.nkw-toolbar-title{grid-column:1/-1;color:#475569!important;font-size:12px!important;width:auto;margin:0;line-height:1.4}
 #simulationControls .sim-control-group{min-width:0;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}
 #simulationControls .sim-run-group{background:#f8faff;border-color:#cbdcf8}
 #simulationControls .control-group-label{display:block;font-size:11px;font-weight:600;line-height:1.5;color:#64748b;margin-bottom:8px}
 #simulationControls .control-group-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
 #lab #simulationControls button{min-height:42px;padding:9px 12px;font-size:13px;flex:none}
 #lab #simulationControls #run{min-height:48px;min-width:164px;padding:11px 18px;font-size:15px;font-weight:700;box-shadow:0 3px 8px #2563eb25}
 #lab #simulationControls #pause{background:#fffbeb;color:#92400e;border-color:#fcd34d;box-shadow:none}#lab #simulationControls #pause:hover:not(:disabled){background:#fef3c7;color:#78350f;border-color:#f59e0b}
 #lab #simulationControls #stop{background:#fef2f2;color:#b91c1c;border-color:#fca5a5;box-shadow:none}#lab #simulationControls #stop:hover:not(:disabled){background:#fee2e2;color:#991b1b;border-color:#ef4444}
 #lab #simulationControls #reset{background:#fff;color:#475569;border-color:#cbd5e1;box-shadow:none}
 #lab #simulationControls label,#lab #simulationControls output,#lab #simulationControls .tiny{font-size:12px;color:#475569}
 #simulationControls .start-button-choice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}
 #simulationControls .microbit-keys{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0;margin:0;background:transparent;border:0}
 #simulationControls .microbit-keys output{padding:4px 6px;background:#f1f5f9;border-radius:5px}
 #simulationControls .nkw-audio-controls{display:flex;align-items:center;gap:8px!important;flex-wrap:wrap;border:0!important;padding:0!important;margin:0;min-width:0}
 #simulationControls .sim-preference-group input[type=range]{width:80px;max-width:110px;min-width:50px}
 #simulationControls .sim-preference-group label{display:inline-flex;align-items:center;gap:6px;margin:0}
 #simulationControls .sim-preference-group label:has(#speed){padding-left:12px;border-left:1px solid #e2e8f0}
 #lab .panel{box-shadow:0 2px 10px #071a3305}
 #lab .panel>.panel-head{background:#f8fafc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;color:#475569;min-height:50px}
 #lab .panel>.panel-head strong{color:#334155!important;font-size:14px!important}#lab .panel>.panel-head .tiny,#lab .panel>.panel-head>span,#lab .panel>.panel-head>label{color:#64748b!important}
 #lab .editor-panel,#lab .sim-panel{box-shadow:0 5px 22px #071a330c;border-color:#cfdaeb}
 #lab .editor-panel>.panel-head,#lab .sim-panel>.panel-head{min-height:58px;border-top-width:4px}
 #lab .editor-panel>.panel-head{background:#f5f3ff;border-top-color:#8b5cf6}#lab .editor-panel>.panel-head strong{color:#5b21b6!important;font-size:16px!important}
 #lab .sim-panel>.panel-head{background:#ecfeff;border-top-color:#06b6d4}#lab .sim-panel>.panel-head strong{color:#155e75!important;font-size:16px!important}
 #lab .editor-panel>.panel-head .tiny,#lab .sim-panel>.panel-head .tiny{color:#475569!important}
 #lab .example-bar{background:#fff;border-bottom:1px solid #e2e8f0}
}
@media screen and (max-width:1500px){#lab>#simulationControls.nkw-sim-toolbar{grid-template-columns:minmax(390px,1fr) minmax(280px,1fr)}#simulationControls .sim-preference-group{grid-column:1/-1}}
@media screen and (max-width:1120px){#lab>#simulationControls.nkw-sim-toolbar{position:static;grid-template-columns:minmax(0,1fr)}#simulationControls .sim-preference-group{grid-column:auto}}
@media screen and (max-width:760px){#lab>#simulationControls.nkw-sim-toolbar{padding:10px;gap:10px}#simulationControls .sim-control-group{padding:10px}#simulationControls .control-group-content{gap:8px}#lab #simulationControls .sim-run-group #run{flex:1 1 100%;min-width:0}#lab #simulationControls .sim-run-group #pause,#lab #simulationControls .sim-run-group #stop,#lab #simulationControls .sim-run-group #reset{flex:1;min-width:0}#lab #simulationControls .sim-board-group button{flex:0 1 auto}#simulationControls .sim-preference-group label:has(#speed){border-left:0;padding-left:0}}
@media screen{#lab #simulationControls input[type=range]{accent-color:#64748b}#lab #simulationControls .microbit-keys button[aria-pressed=true]{background:#e2e8f0;color:#172033;border-color:#64748b}}

/* Classroom readability scale and restrained live telemetry. */
:root{--ui-text-small:13px;--ui-text-body:14px;--ui-title-panel:16px;--ui-space:8px;--ui-number-font:"Cascadia Mono",Consolas,"Liberation Mono",monospace}
@media screen{
 #lab .tiny,#lab .sensor-note,#lab .editor-bottom,#lab .panel-head .tiny,#lab .example-bar label,#lab .practice-row,#lab .rescue-tool-row,#lab .analysis-controls,#lab .sensor-range-controls,#lab .ring-picker{font-size:var(--ui-text-small);line-height:1.7}
 #lab .panel-head strong,#lab .panel>.panel-head strong{font-size:15px!important;line-height:1.6}
 #lab .editor-panel>.panel-head strong,#lab .sim-panel>.panel-head strong{font-size:var(--ui-title-panel)!important}
 #lab .panel-head{gap:12px;padding:12px 16px}
 #lab .practice-row,#lab .rescue-tool-row,#lab .analysis-controls,#lab .example-bar{gap:var(--ui-space);align-items:center;padding:12px 16px}
 #lab .practice-row label,#lab .rescue-tool-row label,#lab .analysis-controls label{font-size:var(--ui-text-small);gap:8px}
 #lab button,#dialogBody button{min-height:42px;font-size:var(--ui-text-body);line-height:1.5;box-sizing:border-box}
 #lab .panel-head button,#lab .example-bar button,#lab .practice-row button,#lab .rescue-tool-row button,#lab .analysis-controls button,#lab .sim-camera-toolbar button{min-height:42px;padding:9px 12px;font-size:var(--ui-text-small)}
 #lab #simulationControls button,#lab #simulationControls #run{height:48px;min-height:48px;line-height:1.5}
 #lab #simulationControls .control-group-label,#lab #simulationControls label,#lab #simulationControls output,#lab #simulationControls .tiny{font-size:var(--ui-text-small)}
 #lab input:not(.blocklyHtmlInput):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),#lab select,#lab textarea,#dialogBody select,#dialogBody textarea{font-size:var(--ui-text-body);line-height:1.6}
 #lab .telemetry{gap:0;padding:8px 0;background:#f8fafc;border-top:1px solid #dce4f0}
 #lab .telemetry>div{background:transparent;border:0;border-right:1px solid #dce4f0;border-radius:0;padding:12px 16px;min-width:0}
 #lab .telemetry>div:last-child{border-right:0}
 #lab .telemetry small{display:block;font-size:12px;line-height:1.6;color:#475569;margin-bottom:8px}
 #lab .telemetry strong{display:block;font-size:24px;line-height:1.4;color:#172033;font-weight:700;overflow-wrap:anywhere}
 #lab #time,#lab #lapTime,#lab #lastTime,#lab #bestTime,#lab #motors,#lab #bags,#lab #score,#lab #fan,#lab #lost,#lab #pid,#lab #sensors strong{font-family:var(--ui-number-font);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1;letter-spacing:-.4px}
 #lab #time,#lab #lapTime{font-size:30px;letter-spacing:-1px;color:#1d4ed8}
 #lab .telemetry em{font-family:var(--ui-font);font-size:13px;font-style:normal;color:#64748b}
 #lab #lapState,#lab #result,#lab #icon{font-family:var(--ui-font);font-size:16px;font-weight:600;letter-spacing:0;line-height:1.6}
 #lab .drive-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;background:#fff;border-top:1px solid #e2e8f0;font-size:13px;color:#475569}
 #lab .drive-info>span{min-width:0;padding:0;background:transparent;border:0;line-height:1.7}
 #lab .drive-info b{display:block;font-size:18px;line-height:1.6;font-weight:700;color:#172033;overflow-wrap:anywhere}
 #lab #sensors{gap:8px;padding:16px}
 #lab #sensors .sensor:nth-child(n){background:#fff;border:1px solid #dce4f0;border-top:2px solid #cbd5e1;border-radius:8px;padding:10px 8px;min-width:0}
 #lab #sensors .sensor.on{border-top-color:#2563eb}
 #lab #sensors .sensor small{display:block;font-size:12px;line-height:1.6;color:#475569;overflow-wrap:anywhere}
 #lab #sensors .sensor strong{display:block;font-size:22px;line-height:1.5;color:#172033;margin:4px 0}
 #lab #sensors progress{display:block;width:100%;height:6px;margin:8px 0;accent-color:#2563eb}
 #lab .sensor-note{padding:12px 16px;margin:0}
 #lab .event{font-size:13px;line-height:1.7;padding:10px 12px;gap:12px}#lab .event time{font-family:var(--ui-number-font);font-variant-numeric:tabular-nums;white-space:nowrap}
 #lab .advanced-tools{margin:0 0 16px;background:#fff;border:1px solid #dce4f0;border-radius:12px;box-shadow:0 2px 10px #071a3305;min-width:0}
 #lab .advanced-tools>summary{cursor:pointer;min-height:58px;padding:16px 20px;font-size:15px;font-weight:600;line-height:1.6;color:#334155;border-radius:12px;overflow-wrap:anywhere}
 #lab .advanced-tools>summary::marker{color:#64748b;font-size:13px}
 #lab .advanced-tools>summary:hover{background:#f8fafc}
 #lab .advanced-tools[open]>summary{background:#f8fafc;border-bottom:1px solid #dce4f0;border-radius:12px 12px 0 0}
 #lab .advanced-hint{font-size:12px;font-weight:400;color:#64748b;margin-left:16px;white-space:nowrap}
 #lab .advanced-content>.panel{margin:0;border:0;border-radius:0 0 12px 12px;box-shadow:none}
 #lab .advanced-content .panel-head{border-top:0}
}
@media(max-width:760px){#lab .telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}#lab .telemetry>div{padding:12px}#lab .telemetry>div:nth-child(2){border-right:0}#lab .telemetry>div:nth-child(n+3){border-top:1px solid #dce4f0}#lab #time,#lab #lapTime{font-size:26px}#lab .telemetry strong{font-size:22px}#lab .drive-info{grid-template-columns:minmax(0,1fr)}#lab .advanced-tools>summary{padding:14px 16px}#lab .advanced-hint{display:block;margin-left:18px}#lab .practice-row,#lab .rescue-tool-row,#lab .analysis-controls{padding:12px}}
@media screen{#lab .chart-grid figcaption,#lab .chart-legend label,#lab .timeline-label,#lab .team-editor-tabs label,#lab .debug-step small,#lab .execution-banner p{font-size:13px;line-height:1.7}#lab .timing-row,#lab .analysis-values,#lab .team-card{font-variant-numeric:tabular-nums lining-nums}}
@media screen{#lab .mini-card p,#lab .line-mini-cards article p,#lab .strategy-cards article p{font-size:14px;line-height:1.75}#lab .mini-card small,#lab .line-mini-cards article small,#lab .strategy-cards article small{font-size:12px;line-height:1.7}}

/* Light lime for robot/extension commands, distinct from Loops #00AA00. */
@media screen{
 .nkw-category-extension{color:#3f6212}
 .blocklyTreeSelected .nkw-category-extension{color:#1f350b!important}
 .blocklyDraggable:has(> .blocklyPath[fill="#8bc34a" i])>.blocklyText,
 .blocklyDraggable:has(> .blocklyPath[fill="#8bc34a" i])>.blocklyField .blocklyText{fill:#1f350b}
}

/* Compact simulation toolbar: project-bar scale, wrapping without hiding tools. */
@media screen{
 #lab>#simulationControls.nkw-sim-toolbar{display:flex!important;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:8px 14px;min-height:0}
 #lab #simulationControls .sim-control-group{flex:0 1 auto;min-width:0;max-width:100%;padding:2px 0;border:0;border-radius:0;background:transparent}
 #lab #simulationControls .sim-board-group,#lab #simulationControls .sim-preference-group{border-left:1px solid var(--color-border);padding-left:16px}
 #lab #simulationControls .control-group-label{margin:0 0 4px;font-size:12px;line-height:1.5}
 #lab #simulationControls .control-group-content{gap:6px;flex-wrap:wrap}
 #lab #simulationControls button,#lab #simulationControls #run{height:42px;min-height:42px;padding:8px 10px;font-size:13px}
 #lab #simulationControls #run{min-width:145px;font-size:14px}
 #lab #simulationControls select{height:42px;min-height:42px;padding:6px 8px}
 #lab #simulationControls label{margin-left:0;width:auto;justify-content:flex-start;font-size:13px}
 #lab #simulationControls .start-button-choice{width:auto;gap:6px}
 #lab #simulationControls .microbit-keys{width:auto;gap:5px}
 #lab #simulationControls .microbit-keys button{padding:6px 8px!important}
 #lab #simulationControls .sim-preference-group input[type=range]{width:72px;min-width:50px;max-width:100%}
 #lab #simulationControls .sim-preference-group label:has(#speed){padding-left:8px}
}
@media screen and (max-width:1120px){
 #lab>#simulationControls.nkw-sim-toolbar{position:static;gap:10px 16px}
 #lab #simulationControls .sim-preference-group{flex-basis:100%;border-left:0;border-top:1px solid var(--color-border);padding:8px 0 0}
}
@media screen and (max-width:760px){
 #lab>#simulationControls.nkw-sim-toolbar{padding:10px;gap:10px}
 #lab #simulationControls .sim-control-group{flex-basis:100%;padding:0}
 #lab #simulationControls .sim-board-group,#lab #simulationControls .sim-preference-group{border-left:0;border-top:1px solid var(--color-border);padding:8px 0 0}
 #lab #simulationControls .sim-run-group #run{flex:1 1 auto;min-width:145px}
 #lab #simulationControls .sim-run-group #pause,#lab #simulationControls .sim-run-group #stop,#lab #simulationControls .sim-run-group #reset{flex:0 1 auto}
 #lab #simulationControls .control-group-content>*{max-width:100%}
 #lab #simulationControls .sim-preference-group label:has(#speed){padding-left:0}
}

/* Rescue program-state and controlled robustness experiments. */
.rescue-sensor-state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:12px 16px;color:var(--color-text);font-size:13px;line-height:1.7}.rescue-sensor-state>div{overflow-wrap:anywhere}.rescue-sensor-state>div:first-child{font-weight:600}.rescue-sensor-lab{padding:16px;line-height:1.75}.rescue-table-scroll{overflow:auto;max-width:100%}.rescue-table-scroll input[type=number]{width:85px}.rescue-table-scroll table{min-width:700px}.rescue-table-scroll pre{white-space:pre-wrap;overflow-wrap:anywhere}.rescue-sensor-lab textarea{display:block;box-sizing:border-box}@media(max-width:760px){.rescue-sensor-state{grid-template-columns:minmax(0,1fr)}}
/* Rescue acceptance tools reuse the existing design tokens and native disclosure. */
.rescue-quality fieldset{min-width:0;margin:16px 0;padding:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}
.rescue-quality legend{font-weight:600;padding:0 8px;color:var(--color-text)}
.rescue-quality fieldset>label{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:12px 0;color:var(--color-text)}
.rescue-quality input[type=number]{width:100px;max-width:100%;box-sizing:border-box}
.rescue-quality select{max-width:100%;min-height:42px}
.rescue-quality textarea{width:100%;min-height:90px}
.rescue-quality p,.rescue-quality li{overflow-wrap:anywhere}
#qualityGuard{font-variant-numeric:tabular-nums}
