#monitor[data-phase=stale],#monitor[data-phase=compiling]{opacity:.58}.project-settings{border-bottom:1px solid var(--line)}.project-settings summary{min-height:52px}:root{--bg:#131819;--panel:#1c2325;--editor:#111719;--line:#384345;--text:#e4ebea;--muted:#a6b5b4;--accent:#f4bd63;--danger:#ffc2b8;font:14px/1.5 'Helvetica Neue',Arial,sans-serif}body{background:var(--bg)}header{padding:16px 24px 14px;background:#1b2224}.wordmark{gap:12px}.mark{color:#7dd5c4;font-size:25px}h1{font-size:17px;letter-spacing:.12em}header p{font-size:11px}.environment{color:#7dd5c4}.safety{padding:9px 24px;font-size:11px;background:#171e20}main{max-width:1800px;padding:0 24px}.lessonbar{padding:14px 0;gap:10px}.lessonbar>span{margin-left:auto;max-width:250px;font-size:10px}.lessonbar select{min-width:300px;background:#202a2c}.toolbar{padding:10px 0;gap:8px}.toolbar button{font-size:12px}.clock strong{font-size:18px}.statusbar{background:#202b2c;border-color:var(--line);font-size:11px}.workbench{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch}.pane-title{height:40px;padding:0 16px;background:#20292b}.pane-title h2{font-size:10px;letter-spacing:.12em}.pane-title>span{font-size:10px}.editor{height:420px;background:#111719;grid-template-columns:46px minmax(0,1fr)}.editor-pane{background:var(--editor)}#diagnostics{border:1px solid var(--line);border-top:0;background:#182123}.diagnostic-body{padding:12px 16px}#diagnostic-info{font:11px/1.7 'SFMono-Regular',Consolas,monospace;color:var(--muted);margin:0 0 10px}.diagnostic-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.diagnostic-actions button{font-size:11px}.diagnostic-actions span{font-size:10px;color:var(--muted);margin-left:auto;max-width:440px}.error{display:block;width:100%;text-align:left;margin-bottom:10px;font:12px/1.7 'SFMono-Regular',Consolas,monospace}.error:hover:not(:disabled){background:#3a272b;border-color:#ffc2b8}.code-surface{position:relative;min-width:0;min-height:0;overflow:hidden}.editor .code-surface #highlight,.editor .code-surface #code{position:absolute;inset:0;width:100%;height:100%;margin:0;border:0;padding:20px 18px;font:14px/24px 'SFMono-Regular',Consolas,'Liberation Mono',monospace;letter-spacing:0;tab-size:4;text-align:left;white-space:pre;overflow:auto;border-radius:0}.editor .code-surface #highlight{color:#dce5e5;pointer-events:none;scrollbar-width:none;user-select:none}.editor #code{color:transparent;caret-color:#fff;background:transparent;-webkit-text-fill-color:transparent;resize:none}.editor #code::selection{background:#5da9a050}.editor #lines{font:14px/24px 'SFMono-Regular',Consolas,'Liberation Mono',monospace;padding:20px 0;border:0;overflow:hidden;color:#718483;background:#151d1f}.editor #lines span{display:block;padding-right:12px}.active-line{background:#223336;color:#a2e4d8}.error-line{background:#702f35;color:#fff}.tok-keyword{color:#7dd5c4;font-weight:normal}.tok-symbol{color:#dce5e5}.tok-time,.tok-number{color:#efc184}.tok-comment{color:#859796}.tok-operator{color:#a3b6c2}.editor textarea:focus-visible{outline:2px solid #7dd5c4;outline-offset:-2px}.editor-footer{padding:8px 14px;font-size:10px}.instructions{padding:18px 22px;background:#1a2224}.instructions h3{font-size:16px}.instructions p{font-size:12px}.instructions li{font-size:12px;padding-bottom:8px}.monitor-pane{background:#1c2527}.monitor-help{padding:10px 16px;font-size:11px}.io-heading{padding:12px 16px 4px}.io-row{padding:7px 16px;gap:0 12px}.signal-name,.io-value{font-size:12px}.snapshot{font-size:10px}.led.on{background:#7dd5c4;box-shadow:0 0 0 3px #7dd5c418}.device-caption{padding:11px 16px 0;font-size:12px;font-weight:600}.device-caption span{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:2px}.rail-bed{position:relative;padding:19px 18px 16px;isolation:isolate;overflow:hidden;background:repeating-linear-gradient(0deg,transparent 0 23px,#ffffff03 23px 24px),#182123}.din-rail{position:absolute;left:0;right:0;height:55px;top:45%;z-index:-1;background:linear-gradient(#a1aaac 0 4px,#465254 4px 11px,#718082 11px 42px,#3b484a 42px 48px,#adb6b8 48px);border-top:1px solid #d0d6d7;border-bottom:2px solid #303e40;box-shadow:0 7px 9px #0006}.din-rail:before,.din-rail:after{content:'';position:absolute;top:23px;width:26px;height:8px;border-radius:4px;background:#263235;box-shadow:inset 1px 2px 2px #111}.din-rail:before{left:5px}.din-rail:after{right:5px}.rack{display:flex;gap:6px;position:relative;align-items:stretch;filter:drop-shadow(3px 6px 3px #0007)}.device-module{min-width:0;color:#253338;background:linear-gradient(90deg,#9ca8ab 0 3px,#d7dddc 3px 96%,#afb9ba 96%);border:1px solid #a6b1b2;border-radius:3px 3px 1px 1px;box-shadow:inset 1px 1px 0 #fff9,inset -2px -2px 0 #748485;display:flex;flex-direction:column}.cpu{width:31%;flex-shrink:0}.terminal-strip{height:28px;background:#566365;display:flex;padding:4px 6px;gap:5px;border-bottom:3px solid #a0acae;box-shadow:inset 0 2px 3px #172124}.terminal-strip i{flex:1;position:relative;background:#a3abad;border:2px solid #364246;border-radius:50%;box-shadow:inset 1px 1px 2px #eee;width:16px;max-width:19px;height:16px}.terminal-strip i:after{content:'';height:2px;background:#3e4b4f;position:absolute;left:2px;right:2px;top:5px;transform:rotate(-35deg)}.terminal-strip:last-child{margin-top:auto;border-bottom:0;border-top:3px solid #9aa7a9;background:#526765}.module-label{padding:10px 10px 9px;border-bottom:1px solid #aab5b6;box-shadow:0 1px 0 #edf1ef;min-height:91px}.module-label>span{display:block;font:8px/1.5 'SFMono-Regular',Consolas,monospace;letter-spacing:.06em}.module-label strong{display:block;font-size:28px;line-height:1.3;letter-spacing:-.03em;font-weight:700}.module-label small{font-size:8px;display:block;color:#46565a}.cpu .module-label{border-top:4px solid #367d79;padding-top:6px}.cpu-lights{display:grid;gap:9px;padding:15px 11px 13px;font:10px/1.4 'SFMono-Regular',Consolas,monospace}.cpu-lights span{display:flex;align-items:center;gap:8px}.cpu-lights i,.channel-light{display:inline-block;width:8px;height:8px;border-radius:50%;background:#687572;box-shadow:inset 0 1px 2px #162823;border:1px solid #52615a;flex-shrink:0}.cpu-lights [data-active=true] i{background:#28b866;box-shadow:0 0 0 2px #29865b25,inset 0 1px 1px #b5ffcb;border-color:#138c4f}#cpu-stop[data-active=true] i{background:#ffb72c;border-color:#b77a14;box-shadow:0 0 0 2px #b77a1420}#cpu-error[data-active=true] i{background:#ee4844;border-color:#a92329;box-shadow:0 0 0 2px #a9232920}.cpu-switches{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 8px 12px}.cpu-switches button{font:9px 'SFMono-Regular',Consolas,monospace;padding:4px 0;color:#263a3b;background:#bac5c4;border:1px solid #7c8e90;box-shadow:inset 0 1px 0 #fff8,0 2px 0 #89999b;min-height:44px}.cpu-switches button:hover:not(:disabled){background:#ecf0e9;border-color:#1b625c}.cpu-switches button:disabled{opacity:.5}.port{margin:0 12px 4px;height:28px;background:#26383c;border:4px solid #89999c;border-bottom-color:#a7b2b1;box-shadow:inset 0 2px 3px #0007;display:flex;gap:3px;padding:10px 3px 0}.port i{flex:1;background:#c1b57d;height:5px}.port-label{padding:0 8px 13px;text-align:center;font:6px/1.8 'SFMono-Regular',Consolas,monospace;letter-spacing:.02em}#device-modules{display:grid;grid-template-columns:1fr 1fr;gap:5px;flex:1;min-width:0}.signal-module .module-label{border-top:4px solid #71898b;padding-top:6px}.channel-bank{padding:6px 4px 8px}.device-channel,button.device-channel{display:grid;grid-template-columns:8px minmax(0,1fr);gap:1px 5px;width:100%;min-height:57px;padding:5px 5px;border:0;border-bottom:1px solid #a9b5b4;border-radius:0;background:transparent;text-align:left;color:#293c3d;align-content:center;font:9px/1.3 'SFMono-Regular',Consolas,monospace;box-shadow:0 1px 0 #eef2ee80}.device-channel strong{font-weight:600;font-size:10px;overflow-wrap:anywhere}.device-channel small,.channel-value,.channel-pending{grid-column:2;overflow-wrap:anywhere;font-size:10px}.channel-light{margin-top:2px;width:7px;height:7px}.device-channel[data-on=true] .channel-light{background:#1dab50;border-color:#14853f;box-shadow:0 0 0 2px #22a64920,inset 0 1px 1px #a1f9b9}.device-channel[data-pending=true] .channel-pending{color:#80541b;font-weight:bold}.device-channel:hover:not(:disabled){background:#eef4ee;border-color:#a9b5b4}.unmapped{color:#6b797a;box-shadow:none}.unmapped .channel-light{background:#929d9c;border-color:#7c8b8b}.unmapped small{font:8px/1.4 'Helvetica Neue',Arial,sans-serif}.device-note,.pause-note{font-size:10px;line-height:1.5;margin:0;padding:8px 16px;color:#c7d6d3;background:#202c2e}.pause-note{padding-top:0;color:var(--muted);border-bottom:1px solid var(--line)}#hardware[data-phase=stale] .channel-bank,#hardware[data-phase=compiling] .channel-bank,#hardware[data-phase=fault] .channel-bank{opacity:.58}#hardware[data-phase=stale] #device-phase,#hardware[data-phase=fault] #device-phase{color:var(--accent)}.symbols summary,.reference summary{min-height:52px}footer{padding:18px 24px}.project-tools{padding:14px 0}.device-channel:focus-visible{outline:3px solid #12665f;outline-offset:-3px}@media(max-width:1100px){main{padding:0 16px}.workbench{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.lessonbar>span{display:none}.rail-bed{padding:16px 9px}.module-label{padding-left:7px;padding-right:6px}.cpu{width:29%}.cpu-switches{grid-template-columns:1fr;margin:0 7px 10px;gap:5px}.cpu-lights{padding-left:9px}.port-label{font-size:5px}.device-channel,button.device-channel{padding-left:3px;padding-right:3px;gap:1px 3px}}
@media(max-width:800px){.workbench{grid-template-columns:minmax(0,1fr)}.editor-pane{border-right:0}.monitor-pane{border-top:1px solid var(--line)}.editor{height:360px}.lessonbar{flex-wrap:wrap}.environment{display:none}.rail-bed{padding:18px 16px}.cpu{width:30%}.cpu-switches{grid-template-columns:1fr 1fr}.device-channel,button.device-channel{min-height:58px}.module-label{padding-left:10px}.device-channel strong{font-size:11px}.device-channel small,.channel-value,.channel-pending{font-size:9px}.cpu-lights{font-size:11px}.port-label{font-size:7px}.toolbar{flex-wrap:wrap}.clock{margin-left:0}.lessonbar select{min-width:0;flex:1}.lessonbar>label{width:100%}}
@media(max-width:480px){header{padding:13px 14px}.safety{padding:9px 14px}main{padding:0 10px}.lessonbar{padding:12px 0}.lessonbar select{font-size:12px}.toolbar button{flex:1 1 80px}.toolbar .primary{flex-basis:100%}.clock{width:100%;padding:7px 0;grid-template-columns:auto 1fr}.clock small{grid-column:2;grid-row:1/3;text-align:right;align-self:center}.clock span{grid-column:1}.statusbar{flex-direction:column}.editor{height:340px;grid-template-columns:32px minmax(0,1fr)}.editor .code-surface #code,.editor .code-surface #highlight{padding-left:10px}.pane-title{padding:0 10px}.pane-title>span{font-size:8px}.device-caption{padding-left:11px;font-size:11px}.rail-bed{padding:16px 7px}.rack{gap:4px}.cpu{width:28%}.cpu .module-label{padding-left:6px;padding-right:4px}.module-label>span{font-size:6px}.module-label strong{font-size:25px}.module-label small{font-size:7px}.module-label{padding-left:6px;min-height:84px}.cpu-lights{font-size:9px;padding:14px 7px;gap:11px}.cpu-lights span{gap:5px}.cpu-switches{grid-template-columns:1fr;margin:0 6px 12px}.cpu-switches button{font-size:8px}.port{margin-left:7px;margin-right:7px;padding-left:1px;padding-right:1px;gap:2px}.port-label{font-size:5px;padding-left:4px;padding-right:4px}.terminal-strip{padding:5px 3px;gap:2px;height:26px}.terminal-strip i{height:13px;width:13px;max-width:14px}.terminal-strip i:after{top:4px;left:1px;right:1px}.channel-bank{padding-left:2px;padding-right:2px}.device-channel strong{font-size:11px}.device-channel small,.channel-value,.channel-pending{font-size:10px}.device-channel,button.device-channel{gap:1px 3px;min-height:60px;padding:5px 2px}.device-note,.pause-note{padding-left:11px;padding-right:11px;font-size:9px}.editor-footer{flex-wrap:wrap}.instructions{padding:16px}.project-tools>span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(forced-colors:active){.editor #code{color:CanvasText;-webkit-text-fill-color:CanvasText;caret-color:CanvasText;background:Canvas}#highlight{visibility:hidden}.device-module{background:Canvas;color:CanvasText;border:2px solid CanvasText}.cpu-lights [data-active=true] i,.device-channel[data-on=true] .channel-light{background:Highlight;forced-color-adjust:none}.device-channel{color:CanvasText}button:focus-visible{outline:3px solid Highlight}}
