.blockly-name-dialog{width:min(400px,calc(100vw - 40px));box-sizing:border-box;padding:24px;border:1px solid #626777;border-radius:8px;background:#20242d;color:#f5f6fa}.blockly-name-dialog::backdrop{background:#0008}.blockly-name-dialog form{display:grid;gap:18px}.blockly-name-dialog label{font-size:16px;overflow-wrap:anywhere}.blockly-name-dialog input{box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid #838b9b;border-radius:4px;background:#10151d;color:#fff;font:inherit}.blockly-name-dialog form>div{display:flex;justify-content:flex-end;gap:12px}.blockly-name-dialog button{padding:8px 18px;color:#fff;background:#424954;border:1px solid #8790a0;border-radius:4px}.blockly-name-dialog button[type=submit]{background:#31694f;border-color:#6ea789}.blockly-name-dialog :focus-visible{outline:2px solid #91c9ef;outline-offset:2px}:root{color-scheme:light;font-family:Inter,Segoe UI,Microsoft YaHei,PingFang SC,Arial,sans-serif;background:#eef2f6;color:#182230}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:980px;min-height:100vh;background:#eef2f6;overflow:hidden}button,input,textarea{font:inherit}.shell{--source-width: 300px;--monitor-width: 438px;--workbench-width: 770px;display:grid;grid-template-rows:72px auto minmax(0,1fr);width:100vw;max-width:100vw;height:100vh;overflow:hidden}.topbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:18px;padding:12px 18px;background:#fff;border-bottom:1px solid #d7dde7}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:#145c9e;color:#fff;font-weight:800;letter-spacing:0}.brand h1{margin:0;font-size:19px;line-height:1.2;font-weight:760}.brand p{margin:3px 0 0;color:#667085;font-size:13px}.lan-access-info{max-width:390px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lan-access-info:empty{display:none}.page-actions{display:inline-flex;align-items:center;gap:8px;justify-self:end}.topbar-device-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.settings-page-button{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid #c9d2df;border-radius:8px;background:#fff;color:#475467;cursor:pointer}.settings-page-button:hover{border-color:#9fb0c5;background:#f6f8fb}.settings-page-button.active{border-color:#145c9e;background:#e8f2fb;color:#145c9e}.settings-page-button svg{width:19px;height:19px;stroke-width:2.2}.topbar-device-name{min-width:86px;color:#344054;font-size:13px;font-weight:760;text-align:right;white-space:nowrap}.dock-page-actions{justify-self:end}.page-action-button{height:34px;border:1px solid transparent;border-radius:6px;background:transparent;color:#475467;cursor:pointer;font-weight:720;padding:0 12px}.page-action-button.active{background:#fff;color:#145c9e;box-shadow:0 1px 3px #1018281f}.page-action-button{border-color:#c9d2df;background:#fff}.topbar-page-actions{gap:2px;padding:3px;border:1px solid #c9d2df;border-radius:8px;background:#eef3f8}.topbar-page-actions .page-action-button{min-width:82px;border:0;background:transparent}.topbar-page-actions .page-action-button.active{background:#fff;color:#145c9e;box-shadow:0 1px 3px #10182824}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.tool-button,.device-button,.mini-button,.icon-button{border:1px solid #c9d2df;background:#fff;color:#182230;border-radius:6px;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.tool-button:hover,.device-button:hover,.mini-button:hover,.icon-button:hover{background:#f5f8fb;border-color:#9fb0c5}.tool-button:active,.device-button:active,.mini-button:active,.icon-button:active{transform:translateY(1px)}.tool-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:14px;white-space:nowrap}.tool-button svg,.device-button svg{width:17px;height:17px;stroke-width:2.1}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-tabs-bar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:8px;min-height:56px;padding:9px 12px 0;border-bottom:1px solid #d7dde7;background:#eef2f6}.shell[data-programming=examples] .file-tabs-bar,.shell[data-programming=boards] .file-tabs-bar,.shell[data-programming=firmware] .file-tabs-bar,.shell[data-programming=settings] .file-tabs-bar{display:none}.file-tabs-scroll{display:flex;align-items:flex-end;gap:4px;min-width:0;min-height:47px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#9fb0c5 transparent}.file-tabs-scroll::-webkit-scrollbar{height:5px}.file-tabs-scroll::-webkit-scrollbar-track{background:transparent}.file-tabs-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#9fb0c5}.file-tab{position:relative;z-index:1;display:inline-flex;align-items:center;flex:0 0 auto;width:max-content;min-width:108px;max-width:260px;height:35px;padding:0;border:1px solid #c9d2df;border-bottom-color:#b8c4d3;border-radius:8px 8px 0 0;background:#e7edf5;color:#344054}.file-tab-main{display:grid;grid-template-columns:auto minmax(42px,1fr);align-items:center;gap:8px;flex:1;min-width:0;height:100%;padding:0 12px 0 10px;border:0;background:transparent;color:inherit;cursor:pointer}.file-tab-save{display:inline-grid;place-items:center;flex:0 0 auto;width:26px;height:26px;margin-right:5px;border:1px solid #fdb022;border-radius:6px;background:#fffbeb;color:#b54708;cursor:pointer}.file-tab-save:hover{background:#fef0c7;color:#93370d}.file-tab-save:disabled{cursor:wait;opacity:.9}.file-tab-save svg{width:15px;height:15px;stroke-width:2.2}.file-tab-save:has(svg.lucide-loader-circle){cursor:wait;opacity:.9}.file-tab-save.saving svg,.file-tab-save svg.lucide-loader-circle{animation:file-tab-save-spin .9s linear infinite}@keyframes file-tab-save-spin{to{transform:rotate(360deg)}}.file-tab.active{z-index:2;height:42px;margin-bottom:-1px;border-color:#145c9e;border-bottom-color:#fff;background:#fff;color:#145c9e;box-shadow:0 -1px 4px #10182814}.file-tab-name{min-width:0;max-width:206px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.file-tab-kind-icon{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;color:#667085}.file-tab-kind-icon.saved{color:#067647;background:#dcfae6}.file-tab-kind-icon.dirty{color:#b54708;background:#fef0c7}.file-tab-kind-icon svg{width:16px;height:16px;stroke-width:2.2}.file-menu-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:34px;height:34px;padding:0 8px;font-weight:700}.file-menu-button svg{width:15px;height:15px;stroke-width:2.1}.file-tab-context-menu{position:fixed;z-index:100;display:none;min-width:132px;padding:6px;border:1px solid #c9d2df;border-radius:8px;background:#fff;box-shadow:0 10px 24px #1018282e}.file-tab-context-menu.visible{display:grid;gap:4px}.file-tab-context-menu button{height:30px;border:0;border-radius:6px;background:transparent;color:#182230;cursor:pointer;text-align:left}.file-tab-context-menu button:hover{background:#f0f6fc;color:#145c9e}.file-tab-context-menu button.danger{color:#b42318}.file-tab-context-menu button.danger:hover{background:#fff1f0;color:#912018}.file-tab-tools,.file-save-actions{display:inline-flex;align-items:center;gap:6px}.file-tab-tools,.file-action-menu-wrap{position:relative}.file-action-menu{position:absolute;top:39px;right:0;z-index:22;display:none;min-width:168px;padding:6px;border:1px solid #c9d2df;border-radius:8px;background:#fff;box-shadow:0 8px 22px #10182824}.file-action-menu.visible{display:grid;gap:4px}.file-action-menu button{height:30px;border:0;border-radius:6px;background:transparent;color:#182230;cursor:pointer;text-align:left;white-space:nowrap}.file-action-menu button:hover{background:#f0f6fc;color:#145c9e}.new-file-menu{position:absolute;top:39px;left:0;z-index:20;display:none;min-width:118px;padding:6px;border:1px solid #c9d2df;border-radius:8px;background:#fff;box-shadow:0 8px 22px #10182824}.new-file-menu.visible{display:grid;gap:4px}.new-file-menu button{height:30px;border:0;border-radius:6px;background:transparent;color:#182230;cursor:pointer;text-align:left}.new-file-menu button:hover{background:#f0f6fc}.operation-confirm-popover{position:fixed;z-index:120;display:none;width:260px;padding:12px;border:1px solid #c9d2df;border-radius:8px;background:#fff;box-shadow:0 12px 28px #10182833}.operation-confirm-popover.visible{display:block}.operation-confirm-popover p{margin:0 0 10px;color:#243247;font-size:13px;line-height:1.45}.operation-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.openmv-error-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:#0f172a5c}.openmv-error-modal.visible{display:flex}.openmv-error-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(720px,calc(100vw - 48px));max-height:min(620px,calc(100vh - 48px));overflow:hidden;border:1px solid #d92d20;border-radius:8px;background:#fff;box-shadow:0 18px 44px #10182847}.openmv-error-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #fee4e2;background:#fff6f5}.openmv-error-header h2{margin:0;color:#912018;font-size:18px}.openmv-error-message{margin:0;padding:14px 16px;overflow:auto;background:#111827;color:#fef3f2;font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:13px;line-height:1.55;white-space:pre}.openmv-error-actions{display:flex;justify-content:flex-end;padding:12px 16px;border-top:1px solid #e4e7ec}.mini-button.primary{border-color:#145c9e;background:#145c9e;color:#fff}.mini-button.primary:hover{border-color:#0f4f8b;background:#0f4f8b}.workspace-layout{display:grid;grid-template-columns:minmax(0,1fr) 8px minmax(0,var(--workbench-width));gap:12px;max-width:100vw;min-height:0;height:100%;padding:0 12px 12px;overflow:hidden}.shell.file-empty[data-programming=blocks] .workspace-layout,.shell.file-empty[data-programming=code] .workspace-layout{display:none}.shell[data-programming=examples] .workspace-layout,.shell[data-programming=boards] .workspace-layout,.shell[data-programming=firmware] .workspace-layout,.shell[data-programming=settings] .workspace-layout{grid-row:2 / 4;grid-template-columns:minmax(0,1fr);padding:12px}.shell[data-programming=examples] .source-width-resizer,.shell[data-programming=boards] .source-width-resizer,.shell[data-programming=firmware] .source-width-resizer,.shell[data-programming=settings] .source-width-resizer,.shell[data-programming=examples] .source-panel,.shell[data-programming=boards] .source-panel,.shell[data-programming=firmware] .source-panel,.shell[data-programming=settings] .source-panel,.shell[data-programming=examples] .system-log-panel,.shell[data-programming=boards] .system-log-panel,.shell[data-programming=firmware] .system-log-panel,.shell[data-programming=settings] .system-log-panel,.shell[data-programming=examples] .device-workbench,.shell[data-programming=boards] .device-workbench,.shell[data-programming=firmware] .device-workbench,.shell[data-programming=settings] .device-workbench,.shell[data-programming=examples] .control-dock,.shell[data-programming=boards] .control-dock,.shell[data-programming=firmware] .control-dock,.shell[data-programming=settings] .control-dock{display:none}.shell[data-programming=examples] .blockly-stack,.shell[data-programming=boards] .blockly-stack,.shell[data-programming=firmware] .blockly-stack,.shell[data-programming=settings] .blockly-stack{grid-template-rows:minmax(0,1fr)}.blockly-stack{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;min-width:0;min-height:0}.editor-surface{display:grid;min-width:0;min-height:0;height:100%}.blockly-panel,.catalog-panel,.firmware-panel,.settings-panel{grid-area:1 / 1;position:relative;display:none;contain:paint;min-height:0;overflow:hidden;border:1px solid #cdd6e3;border-radius:8px;background:#fff}.manual-code-panel{grid-area:1 / 1;display:none;min-width:0;min-height:0;overflow:hidden;border:1px solid #cdd6e3;border-radius:8px;background:#fff}.shell[data-programming=blocks] .blockly-panel{display:block}.shell[data-programming=code] .manual-code-panel{display:flex;flex-direction:column}.shell[data-programming=examples] #examplePanel,.shell[data-programming=boards] #boardPanel{display:grid}.shell[data-programming=firmware] #firmwarePanel,.shell[data-programming=settings] #settingsPanel{display:block}.manual-code-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:10px 14px;border-bottom:1px solid #e2e8f0;color:#182230;font-size:15px;font-weight:720}.manual-code-actions{display:inline-flex;align-items:center;gap:6px}.compact-icon-button{display:inline-grid;place-items:center;min-width:30px;width:auto;height:28px;padding:0 8px;font-weight:760}.manual-code-editor-shell{display:block;flex:1;min-height:0;overflow:hidden}.manual-code-mount{width:100%;height:100%;min-width:0;min-height:0}.manual-code-mount .cm-editor{height:100%;outline:none}.manual-code-mount .cm-scroller{overflow:auto}.legacy-manual-editor{display:none}.manual-code-lines,.manual-code-highlight,.manual-code-editor{min-height:0;margin:0;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:13px;line-height:1.55}.manual-code-lines{overflow:hidden;padding:12px 10px 12px 0;border-right:1px solid #e2e8f0;background:#f6f8fb;color:#98a2b3;text-align:right;user-select:none}.manual-code-input-stack{position:relative;min-width:0;min-height:0;overflow:hidden;background:#fbfcfe}.manual-code-highlight,.manual-code-editor{position:absolute;inset:0;width:100%;height:100%;overflow:auto;padding:12px 16px;white-space:pre;tab-size:2}.manual-code-highlight{pointer-events:none;color:#122033}.manual-code-editor{resize:none;border:0;outline:none;background:transparent;color:transparent;caret-color:#122033;-webkit-text-fill-color:transparent}.manual-code-editor::selection{background:#145c9e2e}.catalog-panel{grid-template-columns:150px minmax(0,1fr);background:#fff}#examplePanel{grid-template-columns:minmax(0,1fr)}.catalog-tabs{display:flex;flex-direction:column;gap:6px;padding:12px;border-right:1px solid #d7dde7;background:#f6f8fb}.catalog-tab{height:34px;border:0;border-radius:6px;background:transparent;color:#475467;cursor:pointer;text-align:left;font-weight:680}.catalog-tab.active{background:#e8f2fb;color:#145c9e}.catalog-content{display:flex;flex-direction:column;min-width:0;min-height:0;padding:16px;overflow:auto}.catalog-title{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.catalog-title h2{margin:0;font-size:18px}.catalog-title span{color:#667085;font-size:13px}.catalog-return-button{flex:0 0 auto;height:32px;padding:0 12px;border:1px solid #c9d2df;border-radius:6px;background:#fff;color:#145c9e;cursor:pointer;font-weight:720}.catalog-return-button:hover{background:#f0f6fc;border-color:#9fb0c5}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;align-content:start}.catalog-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:178px;padding:14px;border:1px solid #cdd6e3;border-radius:8px;background:#fff;color:#182230;cursor:pointer;text-align:left}.catalog-card:hover{border-color:#8fb7da;background:#f5f9fd}.catalog-card.active{border-color:#145c9e;box-shadow:inset 0 0 0 1px #145c9e}.catalog-card.disabled{cursor:default;opacity:.5}.catalog-card.hidden{display:none}.catalog-art{display:grid;place-items:center;width:100%;height:82px;border-radius:8px;background:linear-gradient(135deg,#e8f2fb,#f7fbff);color:#145c9e}.catalog-art svg{width:46px;height:46px;color:#145c9e;stroke-width:1.8}.catalog-card-title{font-size:16px;font-weight:780}.catalog-card-desc{color:#667085;font-size:13px;line-height:1.45}#examplePanel .catalog-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}#examplePanel .catalog-card{gap:6px;min-height:126px;padding:10px}#examplePanel .catalog-art{height:48px;border-radius:6px}#examplePanel .catalog-art svg{width:28px;height:28px;stroke-width:2}#examplePanel .catalog-card-title{font-size:14px;line-height:1.25}#examplePanel .catalog-card-desc{font-size:12px;line-height:1.35}.catalog-empty{display:grid;place-items:center;min-height:180px;border:1px dashed #cdd6e3;border-radius:8px;color:#667085;font-weight:680}.firmware-panel{background:#f6f8fb;overflow:hidden}.firmware-loading{display:grid;place-items:center;height:100%;color:#667085;font-weight:700}.firmware-loading.error{color:#b42318}.firmware-flasher-page{display:grid;grid-template-rows:auto minmax(0,1fr) minmax(150px,.42fr);gap:12px;height:100%;min-width:0;min-height:0;padding:16px;overflow:hidden}.firmware-header{display:flex;align-items:flex-start;gap:12px;min-width:0}.firmware-header h2{margin:0;font-size:20px}.firmware-header p,.firmware-note,.firmware-warning{margin:6px 0 0;color:#667085;font-size:13px;line-height:1.5}.firmware-warning{color:#92400e}.firmware-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;min-width:0;min-height:0;overflow:auto}.firmware-card,.firmware-log-card{min-width:0;overflow:hidden;border:1px solid #cdd6e3;border-radius:8px;background:#fff}.firmware-card{padding:14px}.firmware-card h3,.firmware-log-card h3{margin:0 0 12px;color:#182230;font-size:16px}.mini-car-firmware .firmware-flash-card{grid-column:1 / -1}#firmwareFlasherMount[data-firmware-flasher-target=apm-mini-car]{place-items:stretch}.shell[data-device=apm-mini-car][data-programming=firmware] .workspace-layout{grid-template-columns:minmax(0,1fr)}.mini-car-firmware .firmware-grid{grid-auto-rows:max-content;align-content:start}.mini-car-firmware{color:var(--apm-text-secondary)}.mini-car-firmware .firmware-header h2,.mini-car-firmware h3{color:var(--apm-text)}.mini-car-firmware .firmware-header p,.mini-car-firmware .firmware-file-summary,.mini-car-firmware .firmware-device-status,.mini-car-firmware .firmware-progress-text{color:#d3d8e4}.mini-car-firmware .firmware-warning{color:#f2bd76}.mini-car-firmware .firmware-file-picker{border-color:#9571ef;background:linear-gradient(180deg,#8960ec,#6242c4)}.mini-car-firmware .firmware-progress{background:#151922;border:1px solid var(--apm-border)}.mini-car-firmware .firmware-progress-bar{background:#9270ef}.mini-car-firmware svg{width:17px;height:17px;flex-shrink:0}.mini-car-firmware button,.mini-car-firmware .firmware-file-picker{gap:7px}.mini-car-firmware .firmware-file-summary,.mini-car-firmware .firmware-device-status{overflow-wrap:anywhere;white-space:pre-line}.mini-dfu-address{display:grid;gap:7px;margin-top:14px;font-size:13px}.mini-dfu-address input{min-width:0;width:100%;box-sizing:border-box;padding:9px 11px;border-radius:6px;border:1px solid var(--apm-border);color:var(--apm-text);background:#10151e;font-family:monospace}.mini-dfu-confirm{display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:13px;line-height:1.6}.mini-dfu-confirm input{margin-top:4px;flex:0 0 auto;accent-color:#8861eb}@media(max-width:760px){.mini-car-firmware .firmware-grid{grid-template-columns:minmax(0,1fr)}}.settings-panel{background:#f6f8fb;overflow:auto}.settings-page{display:flex;flex-direction:column;gap:14px;min-height:100%;padding:18px}.settings-header{display:flex;align-items:flex-start;gap:12px}.settings-header h2{margin:0;font-size:20px}.settings-header p{margin:5px 0 0;color:#667085;font-size:13px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-content:start}.settings-card{min-width:0;padding:16px;border:1px solid #cdd6e3;border-radius:8px;background:#fff}.settings-card h3{margin:0 0 12px;font-size:16px}.settings-card p,.settings-status-list{margin:10px 0 0;color:#667085;font-size:13px;line-height:1.55}.settings-status-list{padding-left:18px}.settings-field{display:grid;grid-template-columns:minmax(92px,auto) minmax(160px,240px);align-items:center;gap:12px}.settings-field span{color:#344054;font-size:14px;font-weight:700}.settings-field select{height:34px;min-width:0;border:1px solid #c9d2df;border-radius:6px;background:#fff;color:#182230;padding:0 10px}.firmware-field{display:grid;gap:6px;margin-bottom:12px;color:#344054;font-size:13px;font-weight:700}.firmware-field select{height:34px;min-width:0;border:1px solid #c9d2df;border-radius:6px;background:#fff;color:#182230;padding:0 10px}.firmware-check{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;color:#344054;font-size:13px;font-weight:700}.firmware-check input{width:16px;height:16px}.firmware-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border:1px solid #145c9e;border-radius:6px;background:#145c9e;color:#fff;cursor:pointer;font-weight:740}.firmware-file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.firmware-file-summary,.firmware-device-status,.firmware-progress-text{margin-top:10px;color:#344054;font-size:13px;line-height:1.45}.firmware-actions{display:flex;flex-wrap:wrap;gap:8px}.firmware-progress{height:12px;overflow:hidden;border-radius:999px;background:#e4e7ec}.firmware-progress-bar{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#145c9e,#14907a);transition:width .18s ease}.firmware-log-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.firmware-log-card .section-title{border-bottom:1px solid #e4e7ec}.firmware-log{min-width:0;min-height:0;margin:0;padding:12px 14px;overflow:auto;background:#111827;color:#dbeafe;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:12px;line-height:1.55;white-space:pre}#blocklyDiv{width:100%;height:100%}.control-dock{position:relative;z-index:5;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;min-height:68px;padding:8px 12px;border:1px solid #cdd6e3;border-radius:8px;background:#fff}.control-actions{display:inline-flex;align-items:center;gap:10px;width:max-content;min-width:max-content}.control-device-stack{display:grid;grid-template-rows:auto auto;align-content:center;gap:5px;min-width:132px}.control-device-name{min-width:0;text-align:left}.control-title{display:grid;gap:3px;min-width:168px}.control-title>span:first-child{font-weight:780}.control-state-row{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#667085;font-size:13px}.subtle-connect-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:138px;height:26px;padding:0 8px;border:1px solid #d3dce8;border-radius:6px;background:#f8fafc;color:#475467;cursor:pointer;font-size:12px;line-height:1;white-space:nowrap}.subtle-connect-button:hover{background:#eef4fb;border-color:#aab8ca;color:#184d7d}.subtle-connect-button:disabled{cursor:not-allowed;opacity:.58}.subtle-connect-button svg{width:13px;height:13px;stroke-width:2.1}.device-controls{display:none;grid-template-columns:repeat(2,76px);gap:6px;align-items:center}.shell[data-device=openmv] #openMVControls,.shell[data-device=aichuang-vision] #openMVControls,.shell[data-device=apm-screen-car] #openMVControls,.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) #rp2040Controls{display:grid}#openMVControls,#rp2040Controls{grid-template-columns:minmax(148px,156px)}.device-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:48px;padding:0 6px;font-size:14px;font-weight:760;white-space:nowrap}.control-view-toggles{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}.dock-view-toggles{justify-self:end}.visibility-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;min-width:54px;padding:0 5px;border:1px solid #c9d2df;border-radius:6px;background:#fff;color:#182230;cursor:pointer;font-size:12px;white-space:nowrap}.visibility-toggle:hover{background:#f5f8fb;border-color:#9fb0c5}.visibility-toggle.off{color:#667085;background:#f6f8fb}.visibility-toggle svg{width:16px;height:16px;stroke-width:2.1}.device-button.primary{background:#145c9e;border-color:#145c9e;color:#fff}.device-button.primary:hover{background:#0f4f8b;border-color:#0f4f8b}.button-icon{display:inline-flex}.stop-icon,.device-button.running .play-icon{display:none}.device-button.running .stop-icon{display:inline-flex}.device-workbench{position:relative;display:grid;grid-template-columns:minmax(0,var(--source-width)) 8px minmax(0,var(--monitor-width));gap:12px;max-width:100%;min-width:0;min-height:0;overflow:hidden}.shell.code-hidden .device-workbench{grid-template-columns:minmax(0,var(--monitor-width))}.shell.code-hidden .code-column,.shell.code-hidden .workbench-width-resizer{display:none}.shell.monitor-hidden .device-workbench{grid-template-columns:minmax(0,var(--source-width))}.shell.monitor-hidden .monitor-column,.shell.monitor-hidden .workbench-width-resizer,.shell.code-hidden.monitor-hidden .device-workbench{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .device-workbench{grid-template-columns:minmax(0,var(--source-width)) 8px minmax(0,var(--monitor-width))}.control-actions .subtle-connect-button{min-width:132px;height:25px;justify-content:flex-start;font-size:11px;font-weight:700}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .workspace-layout{grid-template-columns:minmax(0,1fr) 8px minmax(0,var(--workbench-width))}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).storage-hidden .device-workbench{grid-template-columns:minmax(0,var(--source-width))}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).storage-hidden .monitor-column,.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).storage-hidden .workbench-width-resizer{display:none}.shell[data-programming=examples] .workspace-layout,.shell[data-programming=boards] .workspace-layout,.shell[data-programming=firmware] .workspace-layout,.shell[data-programming=settings] .workspace-layout{grid-row:2 / 4;grid-template-columns:minmax(0,1fr)}.monitor-column,.code-column,.preview-panel,.lab-panel,.terminal-panel,.source-panel,.storage-panel,.system-log-panel,.file-manager-panel{max-width:100%;min-width:0;min-height:0;overflow:hidden}.code-column{display:grid;grid-template-rows:minmax(0,1fr) 8px minmax(108px,150px) 8px minmax(100px,170px);gap:12px}.shell.source-hidden .source-panel,.shell.storage-hidden .storage-panel,.shell.log-hidden .system-log-panel,.shell.source-hidden.storage-hidden.log-hidden .code-column{display:none}.monitor-column{display:grid;grid-template-rows:minmax(160px,.82fr) 8px minmax(170px,320px) 8px minmax(92px,.36fr);gap:12px}.shell.lab-hidden .monitor-column{grid-template-rows:minmax(180px,1fr) 8px minmax(92px,.32fr)}.shell.lab-hidden #openMVLabPanel,.shell.lab-hidden [data-monitor-resizer=preview-lab]{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .monitor-column{grid-template-rows:minmax(0,1fr)}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) #openMVPreviewPanel,.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) #openMVLabPanel,.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .panel-resizer{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) #toggleLabPanel{display:none}.shell[data-device=aichuang-vision] .monitor-column{grid-template-rows:minmax(0,1fr)}.shell[data-device=aichuang-vision] #openMVPreviewPanel,.shell[data-device=aichuang-vision] #openMVLabPanel,.shell[data-device=aichuang-vision] .monitor-column>.panel-resizer,.shell[data-device=aichuang-vision] #toggleLabPanel{display:none}.panel-resizer{position:relative;min-height:8px;border-radius:8px;cursor:row-resize;touch-action:none}.workbench-width-resizer,.source-width-resizer,.code-panel-resizer{position:relative;min-width:8px;border-radius:8px;touch-action:none}.workbench-width-resizer,.source-width-resizer{cursor:col-resize}.code-panel-resizer{min-height:8px;cursor:row-resize}.workbench-width-resizer:before,.source-width-resizer:before{position:absolute;inset:36% 2px;content:"";border-radius:999px;background:#c3ccd8}.code-panel-resizer:before{position:absolute;inset:2px 40%;content:"";border-radius:999px;background:#c3ccd8}.workbench-width-resizer:hover:before,body.resizing-monitor-width .workbench-width-resizer:before,.source-width-resizer:hover:before,body.resizing-source-width .source-width-resizer:before,.code-panel-resizer:hover:before,body.resizing-code-panels .code-panel-resizer:before{background:#145c9e}.panel-resizer:before{position:absolute;inset:2px 40%;content:"";border-radius:999px;background:#c3ccd8}.panel-resizer:hover:before,body.resizing-panels .panel-resizer:before{background:#145c9e}body.resizing-panels{cursor:row-resize;user-select:none}body.resizing-monitor-width,body.resizing-source-width,body.resizing-storage-columns{cursor:col-resize;user-select:none}body.resizing-code-panels{cursor:row-resize;user-select:none}.preview-panel,.lab-panel,.terminal-panel,.source-panel,.storage-panel,.system-log-panel,.file-manager-panel{border:1px solid #cdd6e3;border-radius:8px;background:#fff}.preview-panel,.lab-panel,.terminal-panel,.source-panel,.storage-panel,.system-log-panel,.file-manager-panel{display:flex;flex-direction:column;min-height:0}.file-manager-panel{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .file-manager-panel{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .monitor-column>.storage-panel{display:flex}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).storage-hidden .monitor-column>.storage-panel{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).source-hidden.storage-hidden.log-hidden .code-column{display:grid}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 12px;border-bottom:1px solid #e2e8f0}.compact-title{min-height:42px}.section-title h2{margin:0;font-size:15px;font-weight:720}.source-title-text{display:grid;gap:2px;min-width:0}.section-title span{color:#667085;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:12px}.title-actions,.preview-actions,.preview-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}.preview-actions{flex:1}.preview-meta{flex-wrap:wrap;overflow:hidden}.preview-meta span{max-width:92px;overflow:hidden;padding-left:8px;border-left:1px solid #d7dde7;text-overflow:ellipsis;white-space:nowrap}.rp2040-file-list{flex:1;min-height:0;overflow:auto;padding:10px;background:#fbfcfe}.device-storage-list{flex:1;min-height:0;overflow:auto;padding:8px 10px 10px;background:#fbfcfe}.device-storage-row{display:grid;grid-template-columns:42px minmax(0,1fr) var(--device-storage-size-width, 76px) var(--device-storage-date-width, 116px);gap:8px;width:100%;min-height:28px;align-items:center;padding:0;border-bottom:1px solid #e2e8f0;border-top:0;border-right:0;border-left:0;background:transparent;color:#344054;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:12px;text-align:left}.device-storage-row.header{position:sticky;top:0;z-index:1;background:#fbfcfe;color:#667085;font-family:inherit;font-weight:720}.device-storage-row>*{min-width:0}.device-storage-clickable{cursor:pointer}.device-storage-clickable:hover{background:#eef6ff}.device-storage-kind{display:inline-grid;width:26px;height:26px;place-items:center;border-radius:7px;background:#eef4ff;color:#145c9e}.device-storage-kind svg{width:16px;height:16px;stroke-width:2.2}.device-storage-kind-header{color:#667085;font-size:12px}.device-storage-header-cell{position:relative;display:flex;min-width:0;align-items:center}.device-storage-header-size,.device-storage-header-date{justify-content:flex-end}.device-storage-header-cell.resizable .device-storage-sort{padding-left:10px}.device-storage-column-resizer{position:absolute;top:3px;left:-8px;bottom:3px;z-index:2;width:12px;cursor:col-resize;touch-action:none}.device-storage-column-resizer:before{position:absolute;top:2px;bottom:2px;left:5px;width:2px;content:"";border-radius:999px;background:#c3ccd8}.device-storage-column-resizer:hover:before,body.resizing-storage-columns .device-storage-column-resizer:before{background:#145c9e}.device-storage-kind-folder{background:#fff4d6;color:#b54708}.device-storage-kind-python{background:#e7f0ff;color:#155eef}.device-storage-kind-blocks{background:#fff0df;color:#c4320a}.device-storage-kind-image,.device-storage-kind-rgb{background:#e9f8ef;color:#087443}.device-storage-kind-text{background:#eef6ff;color:#175cd3}.device-storage-kind-file,.device-storage-kind-unknown{background:#f2f4f7;color:#475467}.device-storage-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-storage-size,.device-storage-date{width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#667085;text-align:right;white-space:nowrap}.device-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.device-storage-sort{width:100%;min-width:0;overflow:hidden;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:720;text-overflow:ellipsis;text-align:inherit;white-space:nowrap}.device-storage-header-size .device-storage-sort,.device-storage-header-date .device-storage-sort{text-align:right}.device-storage-sort:hover{color:#145c9e}.device-storage-empty{margin-top:12px;color:#667085;font-size:13px}.rp2040-file-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:12px;min-height:30px;align-items:center;border-bottom:1px solid #e2e8f0;color:#344054;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:13px}.rp2040-file-row.header{color:#667085;font-family:inherit;font-weight:720}.rp2040-file-empty{margin-top:14px;color:#667085;font-size:13px}.mini-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:56px;height:30px;padding:0 10px;font-size:13px}.mini-button.active{border-color:#b42318;background:#fff1f0;color:#b42318}.select-control{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 7px;border:1px solid #cdd6e3;border-radius:6px;background:#f8fafc;color:#344054;font-size:12px;line-height:1}.select-control span{color:inherit;font-family:inherit;font-size:inherit}.select-control select{height:22px;border:0;background:transparent;color:#122033;font:inherit;outline:none}.toggle-control{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #cdd6e3;border-radius:6px;background:#f8fafc;color:#344054;font-size:13px;line-height:1;cursor:pointer;user-select:none}.toggle-control input{width:14px;height:14px;margin:0;accent-color:#145c9e}.toggle-control span{color:inherit;font-family:inherit;font-size:inherit}.toggle-control:has(input:checked){border-color:#145c9e;background:#e8f2fb;color:#145c9e}.icon-button{display:inline-grid;place-items:center;width:30px;height:30px;padding:0}.icon-button svg{width:16px;height:16px;stroke-width:2.1}.openmv-preview{position:relative;display:grid;place-items:center;width:100%;flex:1;min-height:0;overflow:hidden;cursor:crosshair;touch-action:none;user-select:none;background:linear-gradient(45deg,#d8dee8 25%,transparent 25%),linear-gradient(-45deg,#d8dee8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d8dee8 75%),linear-gradient(-45deg,transparent 75%,#d8dee8 75%);background-color:#edf1f6;background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.openmv-preview img,.openmv-preview canvas{position:absolute;display:none;max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;background:#111827;pointer-events:none;user-select:none;-webkit-user-drag:none}.openmv-preview img.visible,.openmv-preview canvas.visible{display:block}.preview-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:16px;color:#667085;font-size:13px;text-align:center}.preview-placeholder.hidden{display:none}.roi-selection{position:absolute;display:none;border:2px solid #70d6ff;background:#70d6ff24;box-shadow:0 0 0 1px #0f172a66,0 0 10px #70d6ff66;pointer-events:none}.roi-selection.visible{display:block}#openMVLabCanvas{flex:1;width:100%;min-height:0}.code-view,.serial-log,.system-log{flex:1;width:100%;max-width:100%;min-inline-size:0;max-inline-size:100%;min-width:0;min-height:0;margin:0;overflow:auto;contain:inline-size;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:13px;line-height:1.55}.code-view{background:#fbfcfe;color:#122033;padding:10px 0;white-space:normal}.code-line{display:grid;grid-template-columns:44px minmax(0,max-content);min-height:20px}.line-number{position:sticky;left:0;z-index:1;padding-right:10px;background:#fbfcfe;color:#98a2b3;text-align:right;user-select:none}.line-code{padding:0 14px 0 10px;border-left:1px solid #e2e8f0;white-space:pre}.token-keyword{color:#145c9e;font-weight:720}.token-string{color:#a14a0b}.token-number{color:#7c3aed}.token-comment{color:#667085;font-style:italic}.token-function{color:#087443}.token-constant,.token-builtin{color:#b42318}.serial-log{background:#121a25;color:#d8e5f4;padding:12px;overflow:auto;overflow-x:auto;overflow-y:auto;white-space:pre;word-break:normal}.system-log{background:#f8fafc;color:#243247;padding:10px 12px;overflow:auto;overflow-x:auto;white-space:pre;word-break:normal}.blocklyToolboxDiv{background:#f6f8fb;border-right:1px solid #d7dde7}.blocklyTreeLabel{font-family:Segoe UI,Microsoft YaHei,sans-serif}@media(max-width:1300px){body{min-width:980px}.topbar{grid-template-columns:minmax(210px,1fr) auto}.workspace-layout{grid-template-columns:minmax(0,1fr) 8px minmax(0,var(--workbench-width))}.device-workbench{grid-template-columns:minmax(0,var(--source-width)) 8px minmax(0,var(--monitor-width))}.shell.code-hidden .device-workbench{grid-template-columns:minmax(0,var(--monitor-width))}.shell.code-hidden .workspace-layout{grid-template-columns:minmax(0,1fr) 8px minmax(0,var(--workbench-width))}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]) .workspace-layout{grid-template-columns:minmax(0,1fr) 8px minmax(0,var(--workbench-width))}.shell[data-programming=examples] .workspace-layout,.shell[data-programming=boards] .workspace-layout{grid-row:2 / 4;grid-template-columns:minmax(0,1fr)}.tool-button span{display:none}.toolbar-text-button span{display:inline}#rp2040Controls{grid-template-columns:minmax(140px,148px)}#rp2040Controls .device-button{padding:0 4px;font-size:12px}}:root{color-scheme:dark;--apm-purple: #7a4dff;--apm-purple-hover: #8a63ff;--apm-purple-accent: #a16eff;--apm-purple-badge: #5b3cc4;--apm-bg: #0d0f14;--apm-bg-top: #11141b;--apm-surface: #161a22;--apm-panel: #1b1f2b;--apm-panel-raised: #202532;--apm-code-surface: #101720;--apm-terminal: #070a0f;--apm-border: rgb(255 255 255 / 6.5%);--apm-border-strong: rgb(255 255 255 / 12%);--apm-text: #f8f7ff;--apm-text-secondary: rgb(255 255 255 / 65%);--apm-text-tertiary: rgb(255 255 255 / 42%);--apm-success: #41d19a;--apm-warning: #f4b740;--apm-danger: #ff5d73;--apm-radius-panel: 16px;--apm-radius-control: 11px;--apm-radius-small: 8px;--apm-shadow-panel: 0 10px 26px rgb(0 0 0 / 18%);--apm-hover-glow: 0 0 0 1px rgb(122 77 255 / 28%), 0 8px 18px rgb(122 77 255 / 8%);--apm-font-ui: Inter, "HarmonyOS Sans", "MiSans", "PingFang SC", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;--apm-font-code: "JetBrains Mono", "Cascadia Code", "SFMono-Regular", Consolas, monospace}*{scrollbar-width:thin;scrollbar-color:rgb(161 110 255 / 32%) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#a16eff52;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#a16eff7a;background-clip:padding-box}body{min-width:1180px;background:radial-gradient(circle at 8% -12%,rgb(122 77 255 / 18%),transparent 28%),radial-gradient(circle at 82% 8%,rgb(47 157 147 / 8%),transparent 24%),linear-gradient(180deg,#11141b 0%,var(--apm-bg) 48%,#090b10 100%);color:var(--apm-text);font-family:var(--apm-font-ui)}body:before{position:fixed;inset:0;z-index:0;pointer-events:none;content:"";opacity:.028;background:linear-gradient(90deg,transparent 0 42px,rgb(255 255 255 / 70%) 42px 43px,transparent 43px 100%),linear-gradient(0deg,transparent 0 42px,rgb(255 255 255 / 55%) 42px 43px,transparent 43px 100%),linear-gradient(135deg,transparent 0 68%,rgb(255 255 255 / 90%) 68% 69%,transparent 69% 100%);background-size:168px 168px,168px 168px,240px 240px}body:has(.shell[data-brand=apm-studio]):after{position:fixed;inset:0;z-index:2147483647;pointer-events:none;user-select:none;content:"";opacity:.045;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzODAiIGhlaWdodD0iMjgwIiB2aWV3Qm94PSIwIDAgMzgwIDI4MCI+DQogIDx0ZXh0IHg9IjE5MCIgeT0iMTQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0iY2VudHJhbCIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDE5MCAxNDApIiBmaWxsPSIjZmZmIiBmb250LWZhbWlseT0iTWljcm9zb2Z0IFlhSGVpLCBQaW5nRmFuZyBTQywgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzMCIgZm9udC13ZWlnaHQ9IjUwMCI+5rWL6K+V54mI77yM5LuF5L6b5YaF6YOo5L2/55SoPC90ZXh0Pg0KPC9zdmc+DQo=);background-repeat:repeat;background-size:380px 280px}.shell{position:relative;z-index:1;grid-template-rows:64px auto minmax(0,1fr);background:transparent}.topbar{grid-template-columns:minmax(330px,1fr) minmax(470px,max-content) auto;gap:18px;padding:0 18px 0 0;border-bottom:1px solid var(--apm-border);background:#0b0e14f5;box-shadow:0 1px #ffffff09,0 8px 22px #00000024;backdrop-filter:blur(14px)}.brand{gap:16px;align-self:stretch}.brand-logo-plate{display:flex;align-items:center;justify-content:center;align-self:stretch;width:174px;min-width:174px;padding:12px 17px;border-right:1px solid rgb(255 255 255 / 18%);background:linear-gradient(180deg,#ffffff0e,#fff0 54%),linear-gradient(90deg,rgb(0 0 0 / 14%),transparent 42%,rgb(255 255 255 / 2.8%)),var(--apm-purple-badge);box-shadow:inset -1px 0 #00000047,inset 0 1px #ffffff1a}.brand-logo-plate img{display:block;width:100%;max-height:36px;object-fit:contain;filter:brightness(0) invert(1)}.brand-divider{width:1px;height:32px;margin-left:-2px;background:#ffffff1a}.brand-copy{display:grid;align-content:center;gap:2px;min-width:0}.brand h1{color:var(--apm-text);font-size:17px;font-weight:820;letter-spacing:0}.brand p,.brand-subtitle,.lan-access-info{margin:0;color:var(--apm-text-secondary);font-size:11px;line-height:1.25}.brand-subtitle{color:#ffffff8f}.lan-access-info{max-width:470px;color:var(--apm-text-tertiary)}.topbar-page-actions{align-self:center;justify-self:center;gap:0;margin-left:28px;padding:0;border:0;border-radius:0;background:transparent}.topbar-page-actions .page-action-button,.page-action-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:122px;height:64px;border:0;border-radius:0;background:transparent;color:#ffffff8f;box-shadow:none}.page-action-icon{color:#ffffff5c;font-size:13px;font-weight:800;line-height:1}.page-action-button.active .page-action-icon,.page-action-button:hover .page-action-icon{color:#e0d7ff}.topbar-page-actions .page-action-button:hover,.page-action-button:hover{background:#7a4dff14;color:#fff;box-shadow:none}.topbar-page-actions .page-action-button.active,.page-action-button.active{background:transparent;color:#e0d7ff;box-shadow:none}.topbar-page-actions .page-action-button.active:after,.page-action-button.active:after{position:absolute;right:0;bottom:0;left:0;height:2px;content:"";background:linear-gradient(90deg,transparent,rgb(161 110 255 / 82%),rgb(122 77 255 / 90%),transparent);box-shadow:0 0 6px #7a4dff38}.settings-page-button,.topbar-icon-button,.tool-button,.device-button,.mini-button,.icon-button,.catalog-return-button,.page-action-button,.catalog-tab,.catalog-card,.file-tab-context-menu button,.file-action-menu button,.new-file-menu button{transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.settings-page-button,.tool-button,.device-button,.mini-button,.icon-button,.catalog-return-button,.visibility-toggle,.subtle-connect-button,.select-control,.toggle-control{border-color:var(--apm-border);border-radius:var(--apm-radius-control);background:#ffffff0a;color:var(--apm-text-secondary)}.settings-page-button:hover,.tool-button:hover,.device-button:hover,.mini-button:hover,.icon-button:hover,.catalog-return-button:hover,.visibility-toggle:hover,.subtle-connect-button:hover,.select-control:hover,.toggle-control:hover{border-color:#7a4dff75;background:#7a4dff1b;color:#fff;box-shadow:var(--apm-hover-glow)}.settings-page-button.active,.mini-button.primary,.device-button.primary,.visibility-toggle:not(.off){border-color:#7a4dff8f;background:linear-gradient(180deg,#8a63fff0,#6a46d6e5);color:#fff;box-shadow:inset 0 1px #ffffff29,0 8px 18px #7a4dff24}.mini-button.primary:hover,.device-button.primary:hover,.visibility-toggle:not(.off):hover{border-color:#a16effa8;background:linear-gradient(180deg,#916cfffa,#714cdef0)}.topbar-shell-actions{display:flex;align-self:stretch;align-items:center;justify-content:flex-end;justify-self:end;gap:12px;min-width:118px}.topbar-icon-button{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:9px;background:transparent;color:var(--apm-text-tertiary);cursor:pointer;box-shadow:none}.topbar-shell-actions .settings-page-button{border:0;background:transparent;color:var(--apm-text-tertiary);box-shadow:none}.topbar-icon-button:hover,.topbar-shell-actions .settings-page-button:hover{background:#7a4dff1f;color:#fff;box-shadow:inset 0 0 0 1px #a16eff38}.topbar-shell-actions .settings-page-button.active{border:0;background:#7a4dff29;color:#e0d7ff;box-shadow:inset 0 -2px #7a4dffd1}.topbar-icon-button svg{width:18px;height:18px;stroke-width:2.15}.file-tabs-bar{min-height:54px;padding:9px 14px;border-bottom:1px solid var(--apm-border);background:#0c0f15b8}.file-tabs-scroll{min-height:38px}.file-tab{height:36px;border-color:var(--apm-border);border-radius:10px;background:#ffffff09;color:var(--apm-text-secondary)}.file-tab:hover{border-color:#7a4dff61;background:#7a4dff16;color:#fff;box-shadow:var(--apm-hover-glow)}.file-tab.active{height:38px;border-color:#7a4dff57;border-bottom-color:#7a4dff57;background:#7a4dff16;color:#efeaff;box-shadow:inset 0 -2px #7a4dffcc}.workspace-layout{gap:12px;padding:12px 14px 14px}.blockly-panel,.manual-code-panel,.catalog-panel,.firmware-panel,.settings-panel,.preview-panel,.lab-panel,.terminal-panel,.source-panel,.storage-panel,.system-log-panel,.file-manager-panel,.control-dock,.openmv-error-dialog,.operation-confirm-popover,.file-action-menu,.new-file-menu,.file-tab-context-menu{border-color:var(--apm-border);border-radius:var(--apm-radius-panel);background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--apm-panel);color:var(--apm-text);box-shadow:var(--apm-shadow-panel)}.file-tab-context-menu button,.file-action-menu button,.new-file-menu button{color:var(--apm-text);font-weight:680}.file-tab-context-menu button:hover,.file-tab-context-menu button:focus-visible,.file-action-menu button:hover,.file-action-menu button:focus-visible,.new-file-menu button:hover,.new-file-menu button:focus-visible{outline:0;background:#7a4dff2e;color:#fff;box-shadow:inset 0 0 0 1px #a16eff3d}.file-tab-context-menu button.danger{color:#ffb4c1}.file-tab-context-menu button.danger:hover,.file-tab-context-menu button.danger:focus-visible{background:#ff5d7324;color:#ffd6dc;box-shadow:inset 0 0 0 1px #ff5d7338}.section-title,.manual-code-title,.openmv-error-header{min-height:42px;border-bottom-color:var(--apm-border);background:linear-gradient(90deg,rgb(122 77 255 / 6.5%),transparent 34%),linear-gradient(180deg,#ffffff0a,#ffffff03)}.section-title h2,.manual-code-title,.catalog-title h2,.settings-header h2{color:var(--apm-text)}.section-title span,.catalog-title span,.catalog-card-desc,.settings-card p,.settings-status-list,.control-state-row,.topbar-device-name{color:var(--apm-text-secondary)}.control-dock{grid-template-columns:minmax(290px,max-content) minmax(0,1fr);align-items:center;align-content:center;column-gap:10px;row-gap:0;width:100%;min-height:92px;padding:10px 14px}.control-actions{align-self:center;justify-content:flex-start;align-items:center;gap:8px;width:auto;min-width:0}#openMVControls,#rp2040Controls{grid-template-columns:minmax(146px,150px)}.device-button{min-height:50px;padding-inline:12px;border-radius:11px;font-size:14px;letter-spacing:0}.device-button svg{width:19px;height:19px}.control-device-stack{grid-template-rows:auto auto;align-content:center;gap:5px;min-width:132px;max-width:150px}.control-device-name{overflow:hidden;color:var(--apm-text);font-size:13px;font-weight:820;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.control-actions .subtle-connect-button{justify-content:center;min-width:132px;height:29px;padding-inline:9px;font-size:11.5px}.control-view-toggles{align-self:center;justify-content:flex-end;gap:5px;width:100%;min-width:0}.visibility-toggle{flex:1 1 50px;min-width:46px;max-width:70px;height:38px;padding-inline:4px;border-radius:10px;font-size:12.5px;font-weight:760}.visibility-toggle svg{width:17px;height:17px}.visibility-toggle.off{border-color:var(--apm-border);background:#ffffff09;color:#ffffff8a}.shell[data-device=apm-screen-car] .control-view-toggles{justify-content:flex-start;gap:4px}.shell[data-device=apm-screen-car] .visibility-toggle{flex-basis:45px;min-width:45px;padding-inline:2px}.source-width-resizer:before,.workbench-width-resizer:before,.code-panel-resizer:before,.panel-resizer:before{background:#ffffff26}.source-width-resizer:hover:before,body.resizing-source-width .source-width-resizer:before,.workbench-width-resizer:hover:before,body.resizing-monitor-width .workbench-width-resizer:before,.code-panel-resizer:hover:before,body.resizing-code-panels .code-panel-resizer:before,.panel-resizer:hover:before,body.resizing-panels .panel-resizer:before{background:var(--apm-purple)}.code-view,.manual-code-mount .cm-editor,.manual-code-input-stack{background:radial-gradient(circle at 72% 10%,rgb(122 77 255 / 4.5%),transparent 38%),var(--apm-code-surface);color:#ffffffd1;font-family:var(--apm-font-code)}.manual-code-title{color:var(--apm-text)}.line-number,.manual-code-lines{background:var(--apm-code-surface);color:#ffffff54}.line-code{border-left-color:var(--apm-border)}.token-keyword{color:#c4adff}.token-string{color:#8ee4bd}.token-number{color:#f4b740}.token-comment{color:#7bbf7a}.serial-log,.firmware-log{background:var(--apm-terminal);color:#72d99a;font-family:var(--apm-font-code)}.system-log{background:var(--apm-code-surface);color:#ffffffad;font-family:var(--apm-font-code)}.device-storage-list,.rp2040-file-list{background:var(--apm-code-surface);color:var(--apm-text-secondary)}.device-storage-row,.rp2040-file-row{border-bottom-color:var(--apm-border);color:var(--apm-text-secondary)}.device-storage-row.header,.rp2040-file-row.header{background:var(--apm-code-surface);color:#ffffff8c}.device-storage-clickable:hover{background:#7a4dff1a}.device-storage-empty,.rp2040-file-empty{color:var(--apm-text-tertiary)}.openmv-preview{background:linear-gradient(45deg,rgb(255 255 255 / 4.5%) 25%,transparent 25%),linear-gradient(-45deg,rgb(255 255 255 / 4.5%) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgb(255 255 255 / 4.5%) 75%),linear-gradient(-45deg,transparent 75%,rgb(255 255 255 / 4.5%) 75%),#111721;background-position:0 0,0 14px,14px -14px,-14px 0;background-size:28px 28px}.preview-placeholder{color:var(--apm-text-tertiary)}.roi-selection{border-color:var(--apm-purple-accent);background:#a16eff24;box-shadow:0 0 0 1px #0f172a66,0 0 10px #7a4dff66}.catalog-panel{background:var(--apm-panel)}.catalog-tabs{border-right-color:var(--apm-border);background:#11151d}.catalog-tab{color:var(--apm-text-secondary)}.catalog-tab:hover,.catalog-tab.active{background:#7a4dff1f;color:#fff}.catalog-content{background:var(--apm-panel)}.catalog-card{border-color:var(--apm-border);background:linear-gradient(180deg,#ffffff0a,#ffffff04),#ffffff05;color:var(--apm-text)}.catalog-card:hover,.catalog-card.active{border-color:#7a4dff6b;background:#7a4dff17;box-shadow:var(--apm-hover-glow)}.catalog-art,.device-storage-kind{border:1px solid rgb(122 77 255 / 24%);background:linear-gradient(180deg,#7a4dff29,#7a4dff0f),#ffffff05;color:#d9ceff}.settings-card,.firmware-card,.firmware-log-card{border-color:var(--apm-border);background:#ffffff07}.blocklyToolbox,.blocklyToolboxDiv{background:linear-gradient(180deg,#171b24,#11151d)!important;background-color:#11151d!important;border-right-color:var(--apm-border);color:var(--apm-text-secondary)}.blocklySvg{background:#101720!important}.blocklyMainBackground{fill:#101720!important;stroke:none!important}.blocklyToolboxContents,.blocklyTreeRoot{background-color:transparent!important;background:transparent!important}.apm-toolbox-search{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;height:34px;margin:8px 8px 10px;padding:0 11px;border:1px solid var(--apm-border);border-radius:10px;background:#0000002e;color:#ffffff61;box-shadow:inset 0 1px #ffffff0a,0 4px 12px #00000024}.apm-toolbox-search:focus-within{border-color:#7a4dff70;background:#7a4dff14;color:#d9ceff;box-shadow:inset 0 1px #ffffff0f,0 0 0 2px #7a4dff1f}.apm-toolbox-search-icon{display:inline-grid;place-items:center;width:15px;color:currentColor;font-size:15px;font-weight:800;line-height:1}.apm-toolbox-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--apm-text);font:650 13px/1 var(--apm-font-ui)}.apm-toolbox-search input::placeholder{color:#ffffff5c}.blocklyToolboxCategory,.blocklyToolboxCategoryGroup{background-color:transparent!important}.blocklyToolboxCategoryContainer.apm-toolbox-filter-hidden,.blocklyToolboxCategory.apm-toolbox-filter-hidden,.blocklyToolboxCategoryGroup.apm-toolbox-filter-hidden,.blocklyTreeRow.apm-toolbox-filter-hidden{display:none!important}.blocklyToolboxDiv .blocklyTreeRoot,.blocklyToolbox .blocklyToolboxCategoryGroup{padding-bottom:8px}.blocklyToolboxDiv .blocklyTreeRow,.blocklyToolbox .blocklyToolboxCategory{position:relative;display:flex;align-items:center;min-height:32px;margin:2px 8px 4px;padding-left:13px!important;border-left:0!important;border-radius:9px;background-color:transparent!important;background:transparent!important;color:var(--apm-text-secondary);transition:background .18s ease,color .18s ease,box-shadow .18s ease}.blocklyToolboxDiv .blocklyTreeRow:before,.blocklyToolbox .blocklyToolboxCategory:before{position:absolute;top:7px;bottom:7px;left:5px;width:3px;content:"";background:var(--apm-category-color, var(--apm-purple-accent));border-radius:1px}.blocklyToolboxDiv .blocklyTreeRow:after{position:absolute;top:50%;left:14px;display:grid;place-items:center;width:18px;height:18px;content:attr(data-apm-icon);color:var(--apm-category-icon-color, var(--apm-category-color, var(--apm-purple-accent)));font-size:14px;font-weight:850;line-height:1;transform:translateY(-50%)}.blocklyToolbox .blocklyToolboxCategory{padding-left:13px!important}.blocklyToolboxDiv .blocklyTreeRow{padding-left:36px!important}.blocklyToolbox .blocklyTreeRowContentContainer{display:flex;align-items:center;background-color:transparent!important}.blocklyToolbox .blocklyTreeSeparator,.blocklyToolboxDiv .blocklyTreeSeparator{height:1px!important;margin:7px 14px!important;border:0!important;background:#ffffff0f!important}.blocklyToolbox .blocklyToolboxCategoryIcon{display:inline-grid!important;place-items:center;visibility:visible!important;width:22px;min-width:22px;height:22px;margin-right:9px;border-radius:0;background:transparent!important;color:var(--apm-category-icon-color, var(--apm-category-color, var(--apm-purple-accent)))!important;font-size:15px;font-weight:850;line-height:1;text-shadow:none;box-shadow:none}.blocklyToolboxDiv .blocklyTreeLabel,.blocklyToolbox .blocklyToolboxCategoryLabel{margin-left:4px;color:var(--apm-text-secondary);font-family:var(--apm-font-ui);font-weight:640}.blocklyTreeRowContentContainer{background-color:transparent!important}.blocklyToolboxDiv .blocklyTreeRow:hover,.blocklyToolbox .blocklyToolboxCategory:hover{background:color-mix(in srgb,var(--apm-category-color, var(--apm-purple)) 18%,transparent)!important;color:#fff}.blocklyTreeSelected,.blocklyToolboxSelected .blocklyToolboxCategory,.blocklyToolboxCategory.blocklyToolboxSelected{background:linear-gradient(90deg,color-mix(in srgb,var(--apm-category-color, var(--apm-purple)) 42%,transparent),color-mix(in srgb,var(--apm-category-color, var(--apm-purple)) 16%,transparent))!important;box-shadow:none}.blocklyTreeLabel{color:var(--apm-text-secondary);font-family:var(--apm-font-ui)}.blocklyTreeSelected .blocklyTreeLabel,.blocklyToolboxSelected .blocklyToolboxCategoryLabel,.blocklyToolboxCategory.blocklyToolboxSelected .blocklyToolboxCategoryLabel,.blocklyToolbox .blocklyToolboxCategory:hover .blocklyToolboxCategoryLabel{color:#fff}.blocklyFlyoutBackground{fill:#11151d;fill-opacity:.98}.blocklyBlockCanvas .blocklyPath,.blocklyFlyout .blocklyPath{stroke:#ffffff29;stroke-width:1.15px;filter:drop-shadow(0 1px 0 rgb(255 255 255 / 10%)) drop-shadow(0 5px 10px rgb(0 0 0 / 22%))}.blocklyBlockCanvas .blocklySelected .blocklyPath{stroke:#e0d7ffdb;filter:drop-shadow(0 1px 0 rgb(255 255 255 / 16%)) drop-shadow(0 7px 14px rgb(122 77 255 / 18%))}.blocklyPathLight{display:block;stroke:#ffffff57!important;stroke-width:.9px}.blocklyEditableText>rect,.blocklyFieldRect{fill-opacity:.28;stroke:#ffffff24}.blocklyScrollbarHandle{fill:#a16eff52}.blocklyWidgetDiv,.blocklyDropDownDiv{color:var(--apm-text)}.blocklyCommentForeignObject>body{min-width:0;min-height:0;width:100%;height:100%;background:transparent;color:#24303a}.blocklyCommentForeignObject>body:before,.blocklyCommentForeignObject>body:after{content:none}.blocklyCommentForeignObject .blocklyTextarea{color-scheme:light;color:#24303a;-webkit-text-fill-color:#24303a;caret-color:#24303a;background-color:#fffcc7;text-shadow:none;opacity:1}.blocklyCommentForeignObject .blocklyTextarea::placeholder{color:#5e6256;-webkit-text-fill-color:#5e6256;opacity:1}.blocklyCommentForeignObject .blocklyTextarea::selection{color:#17212b;-webkit-text-fill-color:#17212b;background-color:#b4ddec}.blocklyComment .blocklyCommentPreview.blocklyText{fill:#24303a}.shell.terminal-hidden #serialTerminalPanel,.shell.terminal-hidden [data-monitor-resizer=lab-terminal]{display:none}.shell.terminal-hidden:not(.lab-hidden):not(:is([data-device=aichuang-tiny],[data-device=apm-mini-car])) .monitor-column{grid-template-rows:minmax(180px,1fr) 8px minmax(170px,.5fr)}.shell.lab-hidden.terminal-hidden:not(:is([data-device=aichuang-tiny],[data-device=apm-mini-car])) .monitor-column{grid-template-rows:minmax(180px,1fr)}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).terminal-hidden #serialTerminalPanel{display:none}.shell:is([data-device=aichuang-tiny],[data-device=apm-mini-car]).source-hidden.storage-hidden.log-hidden.terminal-hidden .code-column{display:none}@media(max-width:1300px){body{min-width:1080px}.topbar-page-actions .page-action-button{min-width:94px}.control-dock{grid-template-columns:minmax(0,1fr);row-gap:8px;min-height:118px}.control-actions{width:100%}.control-device-stack{min-width:140px}.control-view-toggles{width:100%}.visibility-toggle{flex-basis:56px;min-width:52px;padding-inline:3px}}.mini-car-help{width:min(850px,calc(100vw - 48px));height:min(780px,calc(100vh - 48px));padding:44px 0 0;border:1px solid #454d57;border-radius:8px;background:#14191f}.mini-car-help::backdrop{background:#0009}.mini-car-help>button{position:absolute;right:8px;top:4px}.mini-car-help>iframe{display:block;width:100%;height:100%;border:0}@media(min-width:1000px){.shell[data-device=apm-mini-car] .control-dock{grid-template-columns:minmax(290px,max-content) minmax(0,1fr);min-height:92px;row-gap:0}}
