@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Cairo:wght@400;500;600;700&display=swap";:root{--accent: #2FA39D;--accent-hover: #27908B;--accent-soft: rgba(83, 186, 181, .14);--accent-teal: #53BAB5;--accent-teal-soft: rgba(83, 186, 181, .1);--indigo: #697ADA;--indigo-deep: #4F5FD6;--indigo-soft: rgba(105, 122, 218, .12);--navy: #1E2A52;--led: #5EE6DE;--brand-grad: linear-gradient(135deg, #4FB8B3 0%, #5297CB 52%, #697ADA 100%);--action-grad: linear-gradient(120deg, #4F5FD6, #697ADA);--bg: #FFFFFF;--bg-card: #FFFFFF;--bg-elevated: #F4F7FA;--bg-input: #FFFFFF;--bg-subtle: #F8FAFC;--border: #E3E7EE;--border-hi: #CDD4E0;--text: #1E2A52;--text-muted: #5A6789;--text-dim: #8A94AD;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--radius: 10px;--radius-sm: 6px;--radius-lg: 14px;--radius-pill: 100px;--ease: cubic-bezier(.2, .7, .2, 1);--dur: .18s;--shadow: 0 8px 24px rgba(30, 42, 82, .08);--shadow-sm: 0 1px 3px rgba(30, 42, 82, .06)}html[lang=ar]{--font: "Cairo", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html{font-family:var(--font);font-feature-settings:"cv02","cv03","cv04","cv11";line-height:1.5;font-weight:400;color-scheme:light;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html[dir=rtl] .ap-card-title,html[dir=rtl] .ap-card-sub{text-align:center}html[dir=rtl] .ap-input{text-align:right}body{margin:0;display:flex;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font)}#root{width:100%;min-height:100vh}.ap-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.16) 1px,transparent 0) 0 0 / 26px 26px,var(--brand-grad);padding:32px 16px;font-family:var(--font)}.ap-card{background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.65);border-radius:18px;padding:40px 36px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:0;box-shadow:0 24px 60px #1e2a5247}.ap-card-title{margin:0 0 8px;font-size:28px;font-weight:700;color:var(--navy);letter-spacing:-.03em;text-align:center}.ap-card-sub{margin:0 0 32px;font-size:15px;color:var(--text-muted);text-align:center}.ap-form{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}.ap-field{display:flex;flex-direction:column;gap:6px}.ap-label{font-size:13px;font-weight:500;color:var(--text-muted);letter-spacing:.1px}.ap-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);font-size:15px;font-family:var(--font);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.ap-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #53bab52e}.ap-btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 22px;background-color:#4f5fd6;background-image:var(--action-grad);color:#fff;border:1px solid transparent;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:var(--font);cursor:pointer;box-shadow:0 6px 18px #697ada73;transition:box-shadow var(--dur) var(--ease),filter var(--dur) var(--ease),transform .1s;letter-spacing:-.01em;margin-top:6px}.ap-btn-primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 8px 24px #697ada99}.ap-btn-primary:active:not(:disabled){transform:translateY(1px)}.ap-btn-primary:disabled{opacity:.55;cursor:not-allowed}.ap-btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 22px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:15px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);letter-spacing:-.01em}.ap-btn-secondary:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.ap-btn-white{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;background:#fff;color:#1d1d1f;border:none;border-radius:var(--radius-pill);font-size:15px;font-weight:500;font-family:var(--font);cursor:pointer;transition:filter .2s}.ap-btn-white:hover{filter:brightness(.95)}.ap-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-dim);font-size:13px}.ap-divider:before,.ap-divider:after{content:"";flex:1;height:1px;background:var(--border-hi)}.ap-error{background:#b5293a0f;border:1px solid rgba(181,41,58,.15);border-radius:var(--radius-sm);color:#b5293a;padding:10px 14px;font-size:13px;margin-bottom:16px}.ap-footer{color:var(--text-muted);font-size:14px;text-align:center;margin:20px 0 0}.ap-link{color:var(--accent);text-decoration:none}.ap-link:hover{text-decoration:underline}html[dir=rtl] .app>.app-container,html[dir=rtl] .editor-panel,html[dir=rtl] .simulator-panel,html[dir=rtl] .mobile-tab-bar{direction:ltr;unicode-bidi:isolate}html[dir=rtl] .editor-panel *,html[dir=rtl] .simulator-panel *,html[dir=rtl] .mobile-tab-bar *{direction:ltr}html[dir=rtl] .header-right{margin-left:0;margin-right:auto}html[dir=rtl] .header-user-menu{right:auto;left:0}html[dir=rtl] .examples-board-tabs,html[dir=rtl] .examples-header,html[dir=rtl] .examples-grid{margin-left:auto;margin-right:auto}html[dir=rtl] .example-card-meta>:last-child{margin-left:0;margin-right:auto}html[dir=rtl] .docs-sidebar{border-right:none;border-left:1px solid var(--border)}html[dir=rtl] .docs-sidebar-toggle{left:auto;right:0}html[dir=rtl] .docs-nav-right,html[dir=rtl] .docs-sidebar-gh{margin-left:0;margin-right:auto}html[dir=rtl] .docs-section-nav{text-align:right}html[dir=rtl] .docs-link>svg{margin-right:0;margin-left:6px}html[dir=rtl] .docs-pagination-btn--next{margin-left:0;margin-right:auto}html[dir=rtl] .docs-content,html[dir=rtl] .docs-content p,html[dir=rtl] .docs-content li{text-align:right}html[dir=rtl] pre,html[dir=rtl] code{direction:ltr;text-align:left;unicode-bidi:isolate}html[dir=rtl] .up-stat-divider,html[dir=rtl] .up-actions>:last-child{margin-left:0;margin-right:auto}html[dir=rtl] .up-meta-item+.up-meta-item{margin-left:0;margin-right:4px}html[dir=rtl] .ap-field,html[dir=rtl] .ap-label{text-align:right}html[dir=rtl] .ap-footer{text-align:center}html[dir=rtl] [data-flip-rtl=true]{transform:scaleX(-1)}.lib-modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:lib-fadeIn .15s ease}@keyframes lib-fadeIn{0%{opacity:0}to{opacity:1}}.lib-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;width:680px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:lib-slideIn .2s ease;overflow:hidden}@keyframes lib-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.lib-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#111;border-bottom:1px solid #2a2a2a}.lib-modal-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:#ccc;text-transform:uppercase}.lib-icon{width:18px;height:18px;color:#53bab5;flex-shrink:0}.lib-close-btn{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.lib-close-btn:hover{background:#2a2a2a;color:#fff}.lib-tabs{display:flex;background:#111;border-bottom:1px solid #2a2a2a;padding:0 18px;gap:4px}.lib-tab{background:none;border:none;border-bottom:2px solid transparent;color:#888;font-size:13px;font-weight:500;cursor:pointer;padding:10px 14px;transition:all .15s;letter-spacing:.03em}.lib-tab:hover{color:#ccc}.lib-tab.active{color:#53bab5;border-bottom-color:#53bab5}.lib-status{padding:8px 18px;font-size:13px;font-weight:500;border-bottom:1px solid transparent}.lib-status.success{background:#0d2b1e;color:#4ade80;border-bottom-color:#1a4731}.lib-status.error{background:#2b0d0d;color:#f87171;border-bottom-color:#4a1a1a}.lib-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.lib-search-bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid #2a2a2a;background:#111}.lib-search-icon{width:16px;height:16px;color:#555;flex-shrink:0}.lib-search-bar input{flex:1;background:transparent;border:none;outline:none;color:#ddd;font-size:14px;caret-color:#53bab5}.lib-search-bar input::placeholder{color:#555}.lib-spinner{width:16px;height:16px;color:#53bab5;flex-shrink:0;animation:spin .8s linear infinite}.lib-spinner-center{width:32px;height:32px;margin-bottom:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lib-list{flex:1;overflow-y:auto;padding:8px 0}.lib-list::-webkit-scrollbar{width:6px}.lib-list::-webkit-scrollbar-track{background:#111}.lib-list::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.lib-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#555;font-size:14px;gap:8px;text-align:center}.lib-empty-sub{font-size:12px;color:#444}.lib-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid #1f1f1f;transition:background .1s}.lib-item:hover{background:#1f1f1f}.lib-item-info{flex:1;min-width:0}.lib-item-header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px}.lib-item-name{font-weight:700;color:#e0e0e0;font-size:14px}.lib-item-author{color:#777;font-size:12px}.lib-item-desc{color:#888;font-size:12px;line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.lib-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.lib-item-version{font-size:11px;color:#666;background:#1a1a1a;border:1px solid #333;border-radius:3px;padding:2px 6px;white-space:nowrap}.lib-installed-badge{color:#4ade80;border-color:#1a4731;background:#0d2b1e}.lib-install-btn{background:#53bab5;color:#000;border:none;border-radius:20px;padding:6px 18px;font-size:12px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .15s;white-space:nowrap}.lib-install-btn:hover:not(:disabled){background:#00d4f0;box-shadow:0 0 12px #00b8d466;transform:translateY(-1px)}.lib-install-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.lib-installing{display:flex;align-items:center;gap:4px}.ilib-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ilib-fadeIn .15s ease}@keyframes ilib-fadeIn{0%{opacity:0}to{opacity:1}}.ilib-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;width:480px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0009;animation:ilib-slideIn .2s ease;overflow:hidden}@keyframes ilib-slideIn{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.ilib-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#111;border-bottom:1px solid #2a2a2a}.ilib-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:#ccc;text-transform:uppercase}.ilib-close-btn{background:none;border:none;color:#888;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.ilib-close-btn:hover:not(:disabled){background:#2a2a2a;color:#fff}.ilib-close-btn:disabled{opacity:.3;cursor:not-allowed}.ilib-subtitle{padding:10px 18px;font-size:13px;color:#999;border-bottom:1px solid #222;background:#161616;min-height:38px;display:flex;align-items:center}.ilib-subtitle-installing{display:flex;align-items:center;gap:8px;color:#53bab5;font-weight:500}.ilib-subtitle-done{color:#4ade80;font-weight:500}.ilib-list{flex:1;overflow-y:auto;padding:6px 0}.ilib-list::-webkit-scrollbar{width:6px}.ilib-list::-webkit-scrollbar-track{background:#111}.ilib-list::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.ilib-item{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid #1f1f1f;gap:12px;transition:background .1s}.ilib-item:hover{background:#1f1f1f}.ilib-item-name{font-size:13px;color:#ddd;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ilib-item--done .ilib-item-name,.ilib-item--error .ilib-item-name{color:#888}.ilib-item-status{flex-shrink:0}.ilib-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:3px;white-space:nowrap}.ilib-badge--pending{color:#666;background:#1a1a1a;border:1px solid #333}.ilib-badge--installing{color:#53bab5;background:#0a1f24;border:1px solid #005f7a}.ilib-badge--done{color:#4ade80;background:#0d2b1e;border:1px solid #1a4731}.ilib-badge--error{color:#f87171;background:#2b0d0d;border:1px solid #4a1a1a;cursor:help}.ilib-badge--wokwi{color:#7dd3fc;background:#0c2340;border:1px solid #1e4070;margin-left:6px;font-size:9px;text-transform:uppercase;letter-spacing:.03em;cursor:default}.ilib-spinner{flex-shrink:0;animation:ilib-spin .8s linear infinite}@keyframes ilib-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ilib-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 18px;background:#111;border-top:1px solid #2a2a2a}.ilib-btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:20px;padding:8px 22px;font-size:13px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .15s;white-space:nowrap}.ilib-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.ilib-btn--primary{background:#53bab5;color:#000}.ilib-btn--primary:hover:not(:disabled){background:#00d4f0;box-shadow:0 0 12px #00b8d466;transform:translateY(-1px)}.ilib-btn--ghost{background:transparent;color:#888;border:1px solid #333}.ilib-btn--ghost:hover:not(:disabled){background:#2a2a2a;color:#ccc}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 10px;height:46px;background:#1b2130;border-bottom:1px solid #333;flex-shrink:0;gap:8px}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-group-right{margin-left:auto;gap:6px}.tb-divider{width:1px;height:20px;background:#3a3a3a;margin:0 4px}.tb-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:none;border-radius:5px;cursor:pointer;background:transparent;color:#9d9d9d;transition:background .12s,color .12s;flex-shrink:0}.tb-btn:disabled{opacity:.35;cursor:not-allowed}.tb-btn-compile{color:#5ee6de}.tb-btn-compile:hover:not(:disabled){background:#5ee6de1f;color:#81d4fa}.tb-btn-compile:active:not(:disabled){background:#5ee6de33}.tb-btn-run{color:#4caf50}.tb-btn-run:hover:not(:disabled){background:#4caf501f;color:#66bb6a}.tb-btn-stop{color:#ef5350}.tb-btn-stop:hover:not(:disabled){background:#ef53501f;color:#f44336}.tb-btn-reset:hover:not(:disabled){background:#232b3d;color:#ccc}.tb-btn-libraries{display:flex;align-items:center;gap:5px;padding:4px 10px 4px 8px;border:1px solid rgba(0,184,212,.3);border-radius:6px;cursor:pointer;background:#00b8d414;color:#00e5ff;font-size:12px;font-weight:500;font-family:inherit;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;flex-shrink:0}.tb-btn-libraries:hover{background:#00b8d42e;border-color:#00b8d480;color:#fff}.tb-libraries-label{line-height:1}.tb-btn-lib{color:#53bab5}.tb-btn-lib:hover{background:#00b8d41a;color:#00e5ff}.tb-lib-hint{display:flex;align-items:center;gap:6px;padding:5px 12px;background:#ff98001a;border-bottom:1px solid rgba(255,152,0,.25);color:#ffb74d;font-size:12px;font-family:inherit}.tb-lib-hint svg{flex-shrink:0;color:#ffa726}.tb-lib-hint-btn{background:#00b8d426;border:1px solid rgba(0,184,212,.4);border-radius:4px;color:#00e5ff;font-size:12px;font-weight:600;font-family:inherit;padding:2px 8px;cursor:pointer;transition:background .12s}.tb-lib-hint-btn:hover{background:#00b8d44d;color:#fff}.tb-lib-hint-close{margin-left:auto;background:none;border:none;color:#888;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.tb-lib-hint-close:hover{color:#ccc}.tb-btn-output{color:#9d9d9d}.tb-btn-output:hover{background:#ffffff0f;color:#ccc}.tb-btn-output-active{color:#5ee6de;background:#5ee6de1a}.tb-btn-output-active:hover{background:#5ee6de2e;color:#81d4fa}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.tb-status{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-size:12px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-status-success{color:#4caf50;background:#4caf501a}.tb-status-error{color:#ef5350;background:#ef53501a}.tb-status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-btn-compile-all{color:#80cbc4}.tb-btn-compile-all:hover:not(:disabled){background:#80cbc41f;color:#a7ffeb}.tb-btn-run-all{color:#aed581}.tb-btn-run-all:hover:not(:disabled){background:#aed5811f;color:#ccff90}.tb-board-pill{display:flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:20px;border:1px solid;font-size:11px;font-weight:600;white-space:nowrap;opacity:.85;flex-shrink:0;background:#ffffff0a;max-width:170px;overflow:hidden}.tb-board-pill-icon{font-size:9px;flex-shrink:0}.tb-board-pill-label{overflow:hidden;text-overflow:ellipsis}.tb-board-pill-running{width:6px;height:6px;border-radius:50%;background:#4caf50;flex-shrink:0;animation:pulse-run 1.4s ease-in-out infinite}@keyframes pulse-run{0%,to{opacity:1}50%{opacity:.3}}.tb-overflow-wrap{position:relative}.tb-btn-overflow{color:#9d9d9d}.tb-btn-overflow:hover{background:#ffffff12;color:#ccc}.tb-btn-overflow-active{background:#ffffff1a;color:#fff}.tb-overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:#1b2130;border:1px solid #3a3a3c;border-radius:10px;padding:6px;min-width:180px;box-shadow:0 8px 32px #0009;display:flex;flex-direction:column;gap:2px}.tb-overflow-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:7px;color:#ccc;font-size:13px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap;transition:background .12s,color .12s}.tb-overflow-item:hover{background:#ffffff14;color:#fff}.tb-overflow-item svg{flex-shrink:0;color:#53bab5}.toolbar-error-detail{background:#1a0000;border-bottom:1px solid #5a1a1a;color:#f48fb1;font-size:11px;font-family:Cascadia Code,Fira Code,Consolas,monospace;padding:4px 12px;max-height:80px;overflow-y:auto;white-space:pre-wrap;line-height:1.4}.file-tabs{display:flex;align-items:flex-end;background:#151a26;border-bottom:1px solid #333;overflow-x:auto;flex-shrink:0;min-height:35px;scrollbar-width:thin;scrollbar-color:#2A3247 transparent}.file-tab{display:flex;align-items:center;gap:5px;padding:0 10px;height:35px;min-width:90px;max-width:180px;cursor:pointer;background:#1b2130;border-right:1px solid #2a2a2a;color:#9d9d9d;font-size:12px;font-family:Segoe UI,sans-serif;-webkit-user-select:none;user-select:none;flex-shrink:0;white-space:nowrap;overflow:hidden;transition:background .1s,color .1s}.file-tab:hover{background:#232b3d;color:#ccc}.file-tab-active{background:#151a26;color:#fff;border-top:2px solid #5EE6DE}.file-tab-modified{width:7px;height:7px;border-radius:50%;background:#e8a87c;flex-shrink:0}.file-tab-name{overflow:hidden;text-overflow:ellipsis;flex:1}.file-tab-close{background:none;border:none;color:transparent;font-size:16px;line-height:1;cursor:pointer;padding:0;border-radius:3px;flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s}.file-tab:hover .file-tab-close,.file-tab-active .file-tab-close{color:#666}.file-tab-close:hover{background:#ffffff1f!important;color:#fff!important}.ftabs-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.ftabs-confirm-box{background:#1b2130;border:1px solid #2A3247;border-radius:6px;padding:20px 24px;color:#ccc;font-size:14px;min-width:290px}.ftabs-confirm-box p{margin:0 0 16px}.ftabs-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.ftabs-confirm-actions button{padding:6px 14px;border-radius:4px;border:1px solid #2A3247;cursor:pointer;font-size:13px;background:#232b3d;color:#ccc}.ftabs-confirm-actions button:hover{background:#333}.ftabs-btn-close{background:#c62828!important;border-color:#c62828!important;color:#fff!important}.ftabs-btn-close:hover{background:#d32f2f!important}.file-explorer{width:100%;background:#1b2130;border-right:1px solid #333;display:flex;flex-direction:column;overflow:hidden;font-size:12px;font-family:Segoe UI,sans-serif}.file-explorer-header{display:flex;align-items:center;justify-content:space-between;padding:0 10px;height:46px;color:#9d9d9d;font-size:11px;font-weight:600;letter-spacing:.5px;border-bottom:1px solid #333;flex-shrink:0}.file-explorer-header-actions{display:flex;align-items:center;gap:2px}.file-explorer-new-btn{background:none;border:none;color:#9d9d9d;cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:26px;height:26px}.file-explorer-new-btn:hover{background:#ffffff14;color:#fff}.file-explorer-save-btn{background:none;border:none;color:#9d9d9d;cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:26px;height:26px}.file-explorer-save-btn:hover{background:#ffffff14;color:#5ee6de}.file-explorer-list{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin;scrollbar-color:#2A3247 transparent}.file-explorer-item{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;color:#ccc;border-radius:3px;margin:1px 4px;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.file-explorer-item:hover{background:#ffffff0f}.file-explorer-item-active{background:#5ee6de1f;color:#e2e2e2}.file-explorer-item-new{background:#ffffff0a}.file-explorer-icon{font-size:12px;flex-shrink:0;opacity:.8}.file-explorer-name{overflow:hidden;text-overflow:ellipsis;flex:1}.file-explorer-dot{width:7px;height:7px;border-radius:50%;background:#e8a87c;flex-shrink:0}.file-explorer-rename-input{flex:1;background:#2a3247;border:1px solid #5EE6DE;color:#fff;font-size:12px;padding:1px 4px;border-radius:2px;outline:none;min-width:0;font-family:inherit}.file-explorer-context-menu{position:fixed;background:#1b2130;border:1px solid #2A3247;border-radius:4px;z-index:2000;display:flex;flex-direction:column;min-width:120px;box-shadow:0 4px 14px #00000080;overflow:hidden}.file-explorer-context-menu button{background:none;border:none;color:#ccc;padding:7px 14px;text-align:left;cursor:pointer;font-size:12px;font-family:inherit}.file-explorer-context-menu button:hover:not(:disabled){background:#ffffff14;color:#fff}.file-explorer-context-menu button:disabled{opacity:.35;cursor:not-allowed}.ctx-delete:hover:not(:disabled){color:#ef5350!important}.fe-board-section{margin-bottom:2px}.fe-board-header{display:flex;align-items:center;gap:5px;padding:5px 6px 5px 4px;cursor:pointer;color:#aaa;border-radius:3px;margin:0 4px;-webkit-user-select:none;user-select:none;position:relative}.fe-board-header:hover{background:#ffffff0f;color:#ddd}.fe-board-header-active{background:#ffffff0d;color:#e2e2e2}.fe-collapse-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;flex-shrink:0;opacity:.6}.fe-collapse-btn:hover{opacity:1}.fe-board-icon{font-size:10px;flex-shrink:0;line-height:1}.fe-board-label{font-size:11px;font-weight:600;letter-spacing:.3px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.fe-board-new-btn{background:none;border:none;color:#9d9d9d;cursor:pointer;padding:1px;border-radius:3px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:0;transition:opacity .1s}.fe-board-header:hover .fe-board-new-btn,.fe-board-header-active .fe-board-new-btn{opacity:1}.fe-board-new-btn:hover{background:#ffffff1a;color:#fff}.fe-file-item{padding-left:26px!important}.parts-dock{width:252px;flex-shrink:0;display:flex;flex-direction:column;background:var(--lab-d-bg1, #151A26);border-inline-start:1px solid var(--lab-d-border, #2A3247);position:relative;z-index:40;overflow:hidden}.parts-dock-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;flex-shrink:0}.parts-dock-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lab-d-text-muted, #9AA5C0)}.parts-dock-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:6px;color:var(--lab-d-text-muted, #9AA5C0);cursor:pointer}.parts-dock-close:hover{background:var(--lab-d-bg3, #232B3D);color:var(--lab-d-text, #E6EAF4)}.parts-dock-search{display:flex;align-items:center;gap:7px;margin:0 10px 8px;padding:0 10px;height:32px;background:var(--lab-d-bg0, #10141F);border:1px solid var(--lab-d-border, #2A3247);border-radius:8px;color:var(--lab-d-text-muted, #9AA5C0);flex-shrink:0;transition:border-color .15s ease}.parts-dock-search:focus-within{border-color:#53bab5;box-shadow:0 0 0 3px #53bab526}.parts-dock-search input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--lab-d-text, #E6EAF4);font-size:12.5px;font-family:inherit}.parts-dock-search input::placeholder{color:var(--lab-d-text-muted, #9AA5C0);opacity:.7}.parts-dock-search-clear{display:flex;background:transparent;border:none;color:inherit;cursor:pointer;padding:2px;border-radius:4px}.parts-dock-search-clear:hover{color:var(--lab-d-text, #E6EAF4)}.parts-dock-cats{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px;flex-shrink:0}.parts-dock-cat{padding:3px 9px;background:transparent;border:1px solid var(--lab-d-border, #2A3247);border-radius:100px;color:var(--lab-d-text-muted, #9AA5C0);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.parts-dock-cat:hover{color:var(--lab-d-text, #E6EAF4);border-color:var(--lab-d-text-muted, #9AA5C0)}.parts-dock-cat.active{background:#53bab524;border-color:#2fa39d;color:#5ee6de}.parts-dock-hint{padding:0 12px 8px;font-size:10.5px;line-height:1.45;color:var(--lab-d-text-muted, #9AA5C0);opacity:.75;flex-shrink:0}.parts-dock-list{flex:1;overflow-y:auto;padding:0 10px 14px;scrollbar-width:thin}.parts-dock-list::-webkit-scrollbar{width:8px}.parts-dock-list::-webkit-scrollbar-thumb{background:var(--lab-d-bg3, #232B3D);border-radius:8px}.parts-dock-section{position:sticky;top:0;z-index:2;padding:6px 2px 5px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lab-d-text-muted, #9AA5C0);background:var(--lab-d-bg1, #151A26)}.parts-dock-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.parts-dock-empty{grid-column:1 / -1;padding:18px 6px;text-align:center;font-size:12px;color:var(--lab-d-text-muted, #9AA5C0)}.parts-tile{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;background:var(--lab-d-bg2, #1B2130);border:1px solid var(--lab-d-border, #2A3247);border-radius:10px;cursor:grab;overflow:hidden;font-family:inherit;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.parts-tile:hover:not(:disabled){border-color:#2fa39d;transform:translateY(-1px);box-shadow:0 6px 16px #00000059}.parts-tile:active:not(:disabled){cursor:grabbing;transform:scale(.97)}.parts-tile:disabled{opacity:.45;cursor:not-allowed}.parts-tile-thumb{height:64px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0) 0 0 / 12px 12px,var(--lab-d-bg0, #10141F);pointer-events:none}.parts-tile-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.parts-tile-name{padding:6px 8px 7px;font-size:11px;font-weight:600;line-height:1.25;color:var(--lab-d-text, #E6EAF4);text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.parts-dock-lock{position:absolute;inset-inline:10px;bottom:10px;padding:8px 10px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);border-radius:8px;color:#fbbf24;font-size:11px;line-height:1.4;text-align:center;pointer-events:none}.parts-dock--disabled .parts-dock-list{opacity:.55}[data-editor-theme=vs] .parts-dock{background:#fff;border-inline-start-color:var(--lab-border, #E3E7EE)}[data-editor-theme=vs] .parts-dock-title,[data-editor-theme=vs] .parts-dock-close{color:var(--lab-text-muted, #5A6789)}[data-editor-theme=vs] .parts-dock-close:hover{background:var(--lab-bg-2, #F4F7FA);color:var(--lab-text, #1E2A52)}[data-editor-theme=vs] .parts-dock-search{background:var(--lab-bg-2, #F4F7FA);border-color:var(--lab-border, #E3E7EE);color:var(--lab-text-muted, #5A6789)}[data-editor-theme=vs] .parts-dock-search input{color:var(--lab-text, #1E2A52)}[data-editor-theme=vs] .parts-dock-cat{border-color:var(--lab-border-2, #CDD4E0);color:var(--lab-text-muted, #5A6789)}[data-editor-theme=vs] .parts-dock-cat:hover{color:var(--lab-text, #1E2A52)}[data-editor-theme=vs] .parts-dock-cat.active{background:#53bab524;border-color:#2fa39d;color:#27908b}[data-editor-theme=vs] .parts-dock-hint{color:var(--lab-text-dim, #8A94AD)}[data-editor-theme=vs] .parts-dock-section{color:var(--lab-text-muted, #5A6789);background:#fff}[data-editor-theme=vs] .parts-dock-list::-webkit-scrollbar-thumb{background:var(--lab-border-2, #CDD4E0)}[data-editor-theme=vs] .parts-tile{background:#fff;border-color:var(--lab-border, #E3E7EE)}[data-editor-theme=vs] .parts-tile:hover:not(:disabled){border-color:#2fa39d;box-shadow:0 6px 16px #1e2a521f}[data-editor-theme=vs] .parts-tile-thumb{background:radial-gradient(circle at 1px 1px,rgba(30,42,82,.08) 1px,transparent 0) 0 0 / 12px 12px,var(--lab-bg-2, #F4F7FA)}[data-editor-theme=vs] .parts-tile-name{color:var(--lab-text, #1E2A52)}[data-editor-theme=vs] .parts-dock-empty{color:var(--lab-text-muted, #5A6789)}@media(max-width:768px){.parts-dock{position:absolute;inset:auto 0 0;height:62%;width:100%;border-inline-start:none;border-top:1px solid var(--lab-d-border, #2A3247);border-radius:14px 14px 0 0;box-shadow:0 -12px 32px #00000073;z-index:300}[data-editor-theme=vs] .parts-dock{border-top-color:var(--lab-border, #E3E7EE);box-shadow:0 -12px 32px #1e2a522e}.parts-dock-grid{grid-template-columns:repeat(3,1fr)}}.component-property-dialog{position:absolute;background-color:#1b2130;border:1px solid #555;border-radius:8px;padding:12px;min-width:200px;max-width:250px;box-shadow:0 4px 20px #00000080;z-index:1001;pointer-events:all;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.component-property-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #444}.component-property-title{font-size:14px;font-weight:600;color:#fff}.property-close-button{background:transparent;border:none;color:#aaa;cursor:pointer;font-size:20px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.property-close-button:hover{background-color:#444;color:#fff}.pin-roles-section{margin-bottom:12px}.pin-roles-label{font-size:12px;color:#aaa;margin-bottom:6px;font-weight:500}.pin-role-item{font-size:12px;color:#fff;padding:4px 8px;margin:2px 0;background-color:#232b3d;border-radius:4px;display:flex;align-items:center}.pin-name{color:#00d9ff;font-weight:500}.pin-description{color:#aaa;font-size:11px;margin-left:4px}.pin-assignment-section{margin-bottom:12px;padding:6px 8px;background-color:#232b3d;border-radius:4px}.pin-assignment-label{font-size:11px;color:#aaa;margin-bottom:4px}.pin-assignment-value{font-size:13px;color:#00d9ff;font-weight:600}.property-edit-section{margin-bottom:12px;border-top:1px solid #444;padding-top:10px}.property-edit-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.property-edit-label{font-size:12px;color:#aaa;font-weight:500;white-space:nowrap}.property-edit-select{flex:1;max-width:100px;padding:4px 8px;font-size:12px;font-weight:600;color:#fff;background-color:#232b3d;border:1px solid #555;border-radius:4px;cursor:pointer;outline:none;transition:border-color .2s}.property-edit-select:hover{border-color:#2fa39d}.property-edit-select:focus{border-color:#2fa39d;box-shadow:0 0 0 2px #007acc40}.property-edit-select option{background-color:#1b2130;color:#fff}.property-actions{display:flex;gap:8px;margin-top:8px}.property-action-button{flex:1;padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px}.rotate-button{background-color:#2fa39d;color:#fff}.rotate-button:hover{background-color:#005a9e;transform:translateY(-1px);box-shadow:0 2px 8px #007acc4d}.delete-button{background-color:#dc3545;color:#fff}.delete-button:hover{background-color:#c82333;transform:translateY(-1px);box-shadow:0 2px 8px #dc35454d}.property-action-button:active{transform:translateY(0)}.sensor-control-panel{position:absolute;top:8px;left:8px;background-color:#1b2130;border:1px solid #555;border-radius:8px;padding:12px 16px 14px;min-width:320px;max-width:420px;box-shadow:0 4px 20px #00000080;z-index:1002;pointer-events:all;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;user-select:none}.sensor-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #444}.sensor-panel-title{font-size:13px;font-weight:600;color:#fff;letter-spacing:.01em}.sensor-panel-close{background:transparent;border:none;color:#aaa;cursor:pointer;font-size:20px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s,color .15s;line-height:1}.sensor-panel-close:hover{background-color:#444;color:#fff}.sensor-section-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#aaa;letter-spacing:.08em;text-transform:uppercase;margin-top:10px;margin-bottom:4px}.sensor-section-label:first-of-type{margin-top:0}.sensor-section-icon{font-size:14px}.sensor-control-row{display:flex;align-items:center;gap:8px;margin:4px 0}.sensor-control-label{font-size:12px;color:#ccc;width:20px;flex-shrink:0;text-align:right}.sensor-control-label-wide{font-size:12px;color:#ccc;min-width:90px;flex-shrink:0}.sensor-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:#555;border-radius:2px;outline:none;cursor:pointer}.sensor-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#2fa39d;cursor:pointer;transition:background .15s}.sensor-slider::-webkit-slider-thumb:hover{background:#0095e8}.sensor-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#2fa39d;cursor:pointer;border:none}.sensor-value-display{font-size:12px;color:#fff;min-width:70px;text-align:right;flex-shrink:0}.sensor-trigger-button{margin-top:8px;padding:7px 16px;background-color:#232b3d;border:1px solid #666;border-radius:4px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s;width:100%}.sensor-trigger-button:hover{background-color:#505050;border-color:#888}.sensor-trigger-button:active{background-color:#2fa39d;border-color:#2fa39d}.pin-selector-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.pin-selector{position:relative;background-color:#1b2130;border:1px solid #555;border-radius:8px;padding:20px;min-width:320px;max-width:400px;box-shadow:0 4px 20px #00000080}.pin-selector-header{margin-bottom:15px;border-bottom:1px solid #444;padding-bottom:10px}.pin-selector-header h4{margin:0 0 5px;color:#fff;font-size:16px}.component-type-label{font-size:12px;color:#888;text-transform:capitalize}.pin-group{margin-bottom:15px}.pin-group-label{font-size:13px;color:#aaa;margin-bottom:8px;font-weight:500}.pin-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.pin-button{padding:8px 4px;background-color:#232b3d;border:1px solid #555;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s}.pin-button:hover{background-color:#2e3850;border-color:#2fa39d}.pin-button.selected{background-color:#2fa39d;border-color:#2fa39d;color:#fff}.pin-button.current{background-color:#28a745;border-color:#28a745;color:#fff}.pin-button.selected.current{background-color:#2fa39d;border-color:#2fa39d}.pin-selector-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:15px;padding-top:15px;border-top:1px solid #444}.pin-selector-footer .btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.pin-selector-footer .btn:disabled{opacity:.5;cursor:not-allowed}.pin-selector-footer .btn-primary{background-color:#2fa39d;color:#fff}.pin-selector-footer .btn-primary:hover:not(:disabled){background-color:#005a9e}.pin-selector-footer .btn-secondary{background-color:#6c757d;color:#fff}.pin-selector-footer .btn-secondary:hover{background-color:#5a6268}.simulator-canvas-container{display:flex;height:100%;position:relative}.simulator-canvas{flex:1;min-width:0;background-color:var(--lab-d-bg1, #151A26);color:var(--lab-d-text, #E6EAF4);display:flex;flex-direction:column}.canvas-header{height:46px;padding:0 10px;background:var(--lab-d-bg2, #1B2130);border-bottom:1px solid var(--lab-d-border, #2A3247);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.canvas-header-left,.canvas-header-right{display:flex;align-items:center;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;transition:background .3s,box-shadow .3s}.status-dot.running{background:#34d399;box-shadow:0 0 6px #34d399b3;animation:pulse-green 2s ease-in-out infinite}.status-dot.stopped{background:#4b5670;box-shadow:none}@keyframes pulse-green{0%,to{box-shadow:0 0 4px #34d39980}50%{box-shadow:0 0 10px #34d399e6}}.board-selector{padding:4px 24px 4px 8px;background:var(--lab-d-bg0, #10141F);color:var(--lab-d-text, #E6EAF4);border:1px solid var(--lab-d-border, #2A3247);border-radius:7px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s;height:32px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239AA5C0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.board-selector:hover:not(:disabled){border-color:#2fa39d}.board-selector:disabled{opacity:.4;cursor:not-allowed}.canvas-serial-btn{display:flex;align-items:center;gap:6px;padding:0 11px;height:32px;background:transparent;border:1px solid var(--lab-d-border, #2A3247);border-radius:7px;color:var(--lab-d-text-muted, #9AA5C0);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}.canvas-serial-btn:hover{border-color:#2fa39d;color:var(--lab-d-text, #E6EAF4)}.canvas-serial-btn-active{background:#53bab524;border-color:#2fa39d;color:#5ee6de}.add-component-btn{display:flex;align-items:center;gap:6px;padding:0 12px;height:32px;background-color:#4f5fd6;background-image:linear-gradient(120deg,#4f5fd6,#697ada);color:#fff;border:none;border-radius:7px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 3px 10px #697ada66;transition:filter .15s,box-shadow .15s;white-space:nowrap}.add-component-btn:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 4px 14px #697ada8c}.add-component-btn--active{filter:saturate(.7) brightness(.92);box-shadow:inset 0 2px 6px #00000040}.add-component-btn:disabled{opacity:.35;cursor:not-allowed}.canvas-content{flex:1;position:relative;overflow:hidden;cursor:grab;background-color:#1a2030;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.09) 1px,transparent 0);background-size:22px 22px;-webkit-user-select:none;user-select:none;touch-action:none}.canvas-world{position:absolute;top:0;left:0;transform-origin:0 0;width:4000px;height:3000px}.components-area{position:absolute;inset:0}.dynamic-component-wrapper{border:2px solid transparent;border-radius:8px;padding:4px}.dynamic-component-wrapper--selected{border-color:#53bab5e6;box-shadow:0 0 0 3px #53bab52e}.component-label{display:flex;align-items:center;justify-content:center;gap:4px;width:fit-content;margin:5px auto 0;padding:2px 8px;font-size:10.5px;font-weight:600;white-space:nowrap;text-align:center;pointer-events:none;color:#c6cde2;background:#10141fc7;border:1px solid rgba(255,255,255,.08);border-radius:100px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.component-label-proto{font-size:8.5px;padding:1px 4px;border-radius:3px;color:#fff;font-weight:700;text-transform:uppercase;line-height:1.2;background:#5297cb}.component-label-proto--spi{background:#e67e22}.pin-dot{position:absolute;border-radius:50%;background:#5ee6de8c;border:1.5px solid rgba(255,255,255,.75);box-shadow:0 0 0 1px #10141f59;cursor:crosshair;pointer-events:all;touch-action:none;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.pin-dot:hover{background:#5ee6de;transform:scale(1.55);box-shadow:0 0 8px #5ee6dee6;z-index:5}.pin-dot--target{background:#5ee6ded9;animation:pin-target-pulse 1.4s ease-in-out infinite}@keyframes pin-target-pulse{0%,to{box-shadow:0 0 #5ee6de8c}50%{box-shadow:0 0 0 5px #5ee6de00}}.pin-dot--origin{background:gold;border-color:#fff;animation:none;box-shadow:0 0 10px #ffd700d9}.pin-label{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);padding:2px 7px;background:#10141f;border:1px solid rgba(94,230,222,.5);border-radius:5px;color:#5ee6de;font-size:10px;font-weight:700;font-family:JetBrains Mono,Consolas,monospace;white-space:nowrap;pointer-events:none;z-index:60}.pin-dot:hover .pin-label{display:block}.canvas-zoom-dock{position:absolute;bottom:14px;inset-inline-end:14px;z-index:90;display:flex;align-items:center;gap:2px;padding:3px;background:#10141fe0;border:1px solid var(--lab-d-border, #2A3247);border-radius:10px;box-shadow:0 8px 24px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.zoom-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:7px;color:var(--lab-d-text-muted, #9AA5C0);cursor:pointer;flex-shrink:0}.zoom-btn:hover{background:var(--lab-d-bg3, #232B3D);color:var(--lab-d-text, #E6EAF4)}.zoom-level{min-width:44px;height:28px;text-align:center;background:transparent;border:none;color:var(--lab-d-text-muted, #9AA5C0);font-size:11px;font-weight:600;font-family:JetBrains Mono,monospace;cursor:pointer;padding:0 2px;border-radius:7px}.zoom-level:hover{background:var(--lab-d-bg3, #232B3D);color:var(--lab-d-text, #E6EAF4)}.zoom-dock-sep{width:1px;height:16px;background:var(--lab-d-border, #2A3247);margin:0 2px}.canvas-mini-toolbar{position:absolute;z-index:95;display:flex;align-items:center;gap:2px;padding:3px;background:#10141feb;border:1px solid var(--lab-d-border, #2A3247);border-radius:9px;box-shadow:0 8px 24px #0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:mini-toolbar-in .14s ease}@keyframes mini-toolbar-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.canvas-mini-toolbar>button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:7px;color:var(--lab-d-text-muted, #9AA5C0);cursor:pointer}.canvas-mini-toolbar>button:hover{background:var(--lab-d-bg3, #232B3D);color:#5ee6de}.canvas-mini-toolbar-sep{width:1px;height:16px;background:var(--lab-d-border, #2A3247);margin:0 2px}.canvas-mini-toolbar-danger:hover{background:#ef535026!important;color:#ef5350!important}.wire-swatch{width:18px;height:18px;margin:0 1px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);cursor:pointer;padding:0;flex-shrink:0;transition:transform .12s ease,box-shadow .12s ease}.wire-swatch:hover{transform:scale(1.25)}.wire-swatch--active{box-shadow:0 0 0 2px #10141f,0 0 0 4px #5ee6de}.canvas-empty-hint{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100% - 32px));padding:10px 16px;background:#10141fd9;border:1px dashed rgba(94,230,222,.4);border-radius:10px;color:var(--lab-d-text-muted, #9AA5C0);font-size:12.5px;line-height:1.5;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.canvas-empty-hint svg{color:#5ee6de;flex-shrink:0}.wire-mode-banner{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:100;background:#1e2a52eb;border:1px solid rgba(94,230,222,.45);color:#fff;padding:8px 16px;border-radius:10px;display:flex;align-items:center;gap:12px;font-size:12.5px;box-shadow:0 6px 20px #00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;pointer-events:auto}.wire-mode-banner button{background:#ffffff24;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:7px;padding:4px 14px;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;transition:background .15s}.wire-mode-banner button:hover{background:#ffffff4d}.canvas-wifi-badge,.canvas-ble-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:6px;cursor:default;vertical-align:middle}.canvas-wifi-badge svg,.canvas-ble-badge svg{display:block}.canvas-wifi-initializing,.canvas-wifi-connected{color:#f59e0b}.canvas-wifi-got_ip{color:#22c55e}.canvas-wifi-disconnected{color:#6b7280}.canvas-wifi-clickable{cursor:pointer!important;transition:transform .2s,filter .2s}.canvas-wifi-clickable:hover{transform:scale(1.15);filter:drop-shadow(0 0 5px currentColor)}.canvas-wifi-clickable:active{transform:scale(.95)}.canvas-ble-initialized{color:#3b82f6}.canvas-ble-advertising{color:#697ada}[data-editor-theme=vs] .simulator-canvas{background-color:var(--lab-bg-2, #F4F7FA);color:var(--lab-text, #1E2A52)}[data-editor-theme=vs] .canvas-content{background-color:#eaeff5;background-image:radial-gradient(circle at 1px 1px,rgba(30,42,82,.16) 1px,transparent 0);background-size:22px 22px}[data-editor-theme=vs] .status-dot.stopped{background:#b9c2d4}[data-editor-theme=vs] .component-label{color:var(--lab-text, #1E2A52);background:#ffffffe0;border-color:var(--lab-border-2, #CDD4E0)}[data-editor-theme=vs] .canvas-zoom-dock,[data-editor-theme=vs] .canvas-mini-toolbar{background:#fffffff0;border-color:var(--lab-border, #E3E7EE);box-shadow:0 8px 24px #1e2a5229}[data-editor-theme=vs] .zoom-btn,[data-editor-theme=vs] .zoom-level,[data-editor-theme=vs] .canvas-mini-toolbar>button{color:var(--lab-text-muted, #5A6789)}[data-editor-theme=vs] .zoom-btn:hover,[data-editor-theme=vs] .zoom-level:hover,[data-editor-theme=vs] .canvas-mini-toolbar>button:hover{background:var(--lab-bg-2, #F4F7FA);color:#27908b}[data-editor-theme=vs] .zoom-dock-sep,[data-editor-theme=vs] .canvas-mini-toolbar-sep{background:var(--lab-border, #E3E7EE)}[data-editor-theme=vs] .wire-swatch--active{box-shadow:0 0 0 2px #fff,0 0 0 4px #2fa39d}[data-editor-theme=vs] .canvas-empty-hint{background:#ffffffe6;border-color:#2fa39d80;color:var(--lab-text-muted, #5A6789)}[data-editor-theme=vs] .canvas-empty-hint svg{color:#2fa39d}[data-editor-theme=vs] .pin-dot{background:#2fa39d99;border-color:#fff;box-shadow:0 0 0 1px #1e2a5240}[data-editor-theme=vs] .pin-dot:hover{background:#2fa39d;box-shadow:0 0 8px #2fa39dcc}[data-editor-theme=vs] .pin-dot--target{background:#2fa39dd9}[data-editor-theme=vs] .pin-dot--origin{background:#f59e0b}[data-editor-theme=vs] .pin-label{background:#fff;border-color:#2fa39d99;color:#1e2a52;box-shadow:0 2px 8px #1e2a522e}@media(max-width:768px){.canvas-header{height:42px;padding:0 6px}.canvas-header-left,.canvas-header-right{gap:4px}.canvas-serial-btn{padding:0 6px;font-size:0}.canvas-serial-btn svg{width:18px;height:18px}.add-component-btn{padding:0 10px}.board-selector{font-size:11px;max-width:90px;padding:4px 20px 4px 6px}.canvas-zoom-dock{bottom:auto;top:10px;inset-inline-end:10px;padding:2px}.canvas-empty-hint{top:56px;font-size:11.5px}.wire-mode-banner{font-size:12px;padding:6px 12px;gap:8px;bottom:8px;white-space:normal;max-width:calc(100% - 24px)}}.osc-container{display:flex;flex-direction:column;height:100%;background:#151a26;border-top:1px solid #333;font-family:Consolas,Menlo,monospace;font-size:12px;color:#ccc;overflow:hidden}.osc-header{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#1b2130;border-bottom:1px solid #333;flex-shrink:0;flex-wrap:wrap;min-height:32px}.osc-title{color:#ccc;font-weight:600;font-size:12px;white-space:nowrap;margin-right:4px}.osc-btn{background:transparent;border:1px solid #555;color:#ccc;padding:2px 8px;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap;transition:border-color .15s,background .15s}.osc-btn:hover{border-color:#2fa39d;color:#fff}.osc-btn-active{background:#0e3a5a;border-color:#2fa39d;color:#5ee6de}.osc-btn-danger{border-color:#7a0000;color:#ff6b6b}.osc-btn-danger:hover{background:#3a0000;border-color:#ff6b6b}.osc-label{color:#888;font-size:11px;white-space:nowrap}.osc-select{background:#151a26;border:1px solid #444;color:#ccc;padding:2px 4px;border-radius:3px;font-size:11px;outline:none;cursor:pointer}.osc-select:focus{border-color:#2fa39d}.osc-picker-wrap{position:relative}.osc-picker-dropdown{background:#1b2130;border:1px solid #555;border-radius:4px;padding:4px;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;min-width:200px;box-shadow:0 -4px 20px #0009}.osc-picker-multiboard{display:flex;flex-direction:column;gap:6px;padding:8px;min-width:260px;max-height:320px;overflow:hidden}.osc-picker-board-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid #3a3a3a;padding-bottom:6px}.osc-picker-board-tab{background:#1b2130;border:1px solid #444;color:#999;padding:2px 8px;border-radius:3px;cursor:pointer;font-size:11px;font-family:inherit;transition:background .1s,color .1s}.osc-picker-board-tab:hover{background:#383838;color:#ccc}.osc-picker-board-tab.active{background:#0e3a5a;border-color:#2fa39d;color:#5ee6de}.osc-picker-board-label{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.5px}.osc-picker-pins{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;overflow-y:auto;flex:1}.osc-pin-btn{background:#1b2130;border:1px solid #444;color:#ccc;padding:3px 6px;border-radius:3px;cursor:pointer;font-size:11px;text-align:center;transition:background .1s,border-color .1s}.osc-pin-btn:hover{background:#0e3a5a;border-color:#2fa39d;color:#fff}.osc-pin-btn-active{background:#1a3a1a;border-color:#00ff41;color:#00ff41;cursor:default}.osc-waveforms{flex:1;overflow-y:auto;overflow-x:hidden;background:#0a0a0a}.osc-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#555;font-size:12px;flex-direction:column;gap:8px}.osc-channel-row{display:flex;align-items:stretch;border-bottom:1px solid #1a1a1a;height:60px}.osc-channel-label{width:72px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 6px;background:#141414;border-right:1px solid #222;gap:2px}.osc-channel-board{font-size:9px;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%}.osc-channel-name{font-size:11px;font-weight:700}.osc-channel-remove{background:transparent;border:none;color:#555;cursor:pointer;font-size:14px;line-height:1;padding:0;transition:color .1s}.osc-channel-remove:hover{color:#ff6b6b}.osc-channel-canvas-wrap{flex:1;position:relative;overflow:hidden}.osc-channel-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.osc-ruler{height:20px;flex-shrink:0;background:#141414;border-top:1px solid #222;position:relative}.osc-ruler-canvas{position:absolute;top:0;left:0;width:100%;height:100%}:root{--lab-primary: #2FA39D;--lab-primary-2: #27908B;--lab-primary-soft: rgba(83, 186, 181, .14);--lab-accent: #53BAB5;--lab-accent-soft: rgba(83, 186, 181, .1);--lab-indigo: #697ADA;--lab-indigo-deep: #4F5FD6;--lab-indigo-soft: rgba(105, 122, 218, .12);--lab-navy: #1E2A52;--lab-grad: linear-gradient(135deg, #4FB8B3 0%, #5297CB 52%, #697ADA 100%);--lab-action-grad: linear-gradient(120deg, #4F5FD6, #697ADA);--lab-bg: #FFFFFF;--lab-bg-2: #F4F7FA;--lab-bg-3: #FFFFFF;--lab-border: #E3E7EE;--lab-border-2: #CDD4E0;--lab-text: #1E2A52;--lab-text-muted: #5A6789;--lab-text-dim: #8A94AD;--lab-d-bg0: #10141F;--lab-d-bg1: #151A26;--lab-d-bg2: #1B2130;--lab-d-bg3: #232B3D;--lab-d-border: #2A3247;--lab-d-text: #E6EAF4;--lab-d-text-muted: #9AA5C0}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";background-color:var(--lab-bg);color:var(--lab-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html[lang=ar] body,html[dir=rtl] body{font-family:Cairo,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none}.app-header{background:#fff;border-bottom:1px solid var(--lab-border);padding:0 20px;height:52px;flex-shrink:0;display:flex;align-items:center;position:relative;z-index:100}.header-content{display:flex;align-items:center;width:100%}.header-left{display:flex;align-items:center;gap:24px}.header-brand{display:flex;align-items:center;gap:10px;color:var(--lab-primary);text-decoration:none}.header-brand-logo{height:28px;width:auto;display:block;object-fit:contain}.header-title{font-size:16px;font-weight:700;color:var(--lab-navy);letter-spacing:-.025em}.header-nav-links{display:flex;align-items:center;gap:2px}.header-nav-link{display:flex;align-items:center;gap:6px;padding:7px 14px;color:var(--lab-text-muted);text-decoration:none;border-radius:6px;font-size:14px;font-weight:500;transition:color .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1);white-space:nowrap}.header-nav-link:hover{color:var(--lab-navy);background:#1e2a520d}.header-nav-link-active{color:var(--lab-primary);background:var(--lab-primary-soft);font-weight:600}.header-nav-link-active:hover{background:var(--lab-primary-soft)}.header-right{display:flex;align-items:center;gap:10px;margin-left:auto}.header-share-btn{display:flex;align-items:center;gap:6px;background:var(--lab-bg);border:1px solid var(--lab-border);border-radius:6px;padding:6px 12px;cursor:pointer;color:var(--lab-text-muted);font-family:inherit;font-size:13px;font-weight:500;transition:background .18s cubic-bezier(.2,.7,.2,1),color .18s,border-color .18s}.header-share-btn:hover{color:var(--lab-navy);background:#1e2a520d;border-color:var(--lab-text-muted)}.header-signin-btn{display:inline-flex;align-items:center;background:var(--lab-navy);color:#fff;padding:7px 16px;font-size:13px;font-weight:600;text-decoration:none;border-radius:6px;border:1px solid transparent;transition:background .18s cubic-bezier(.2,.7,.2,1),transform .1s}.header-signin-btn:hover{background:var(--lab-primary)}.header-signin-btn:active{transform:translateY(1px)}.header-user{position:relative}.header-user-btn{background:var(--lab-bg);border:1px solid var(--lab-border);border-radius:100px;padding:3px 12px 3px 3px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--lab-navy);font-family:inherit;font-size:13px;font-weight:500;transition:background .18s cubic-bezier(.2,.7,.2,1),border-color .18s}.header-user-btn:hover{background:#1e2a520d;border-color:var(--lab-text-muted)}.header-avatar{width:26px;height:26px;border-radius:50%;display:block}.header-avatar-initial{background:var(--lab-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.header-user-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--lab-bg);border:1px solid var(--lab-border);border-radius:10px;min-width:180px;z-index:100;box-shadow:0 8px 24px #1e2a521f;overflow:hidden;padding:4px}.header-user-menu-item{display:block;padding:9px 12px;color:var(--lab-navy);text-decoration:none;font-size:13.5px;font-weight:500;border-radius:6px;transition:background .18s cubic-bezier(.2,.7,.2,1)}.header-user-menu-item:hover{background:#53bab50d}.header-user-menu-btn{width:100%;background:none;border:none;text-align:left;cursor:pointer;font-family:inherit}.header-user-menu-sep{height:1px;background:var(--lab-border-2);margin:4px 2px}[data-editor-theme=vs-dark] .app-header{background:var(--lab-d-bg0);border-bottom-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .header-title{color:var(--lab-d-text)}[data-editor-theme=vs-dark] .header-nav-link{color:var(--lab-d-text-muted)}[data-editor-theme=vs-dark] .header-nav-link:hover{color:var(--lab-d-text);background:#ffffff0f}[data-editor-theme=vs-dark] .header-nav-link-active{color:var(--lab-accent);background:#53bab51f}[data-editor-theme=vs-dark] .header-share-btn,[data-editor-theme=vs-dark] .header-user-btn{background:var(--lab-d-bg2);border-color:var(--lab-d-border);color:var(--lab-d-text-muted)}[data-editor-theme=vs-dark] .header-share-btn:hover,[data-editor-theme=vs-dark] .header-user-btn:hover{color:var(--lab-d-text);background:var(--lab-d-bg3);border-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .header-user-menu{background:var(--lab-d-bg2);border-color:var(--lab-d-border);box-shadow:0 12px 32px #00000073}[data-editor-theme=vs-dark] .header-user-menu-item{color:var(--lab-d-text)}[data-editor-theme=vs-dark] .header-user-menu-item:hover{background:#ffffff0f}[data-editor-theme=vs-dark] .header-user-menu-sep{background:var(--lab-d-border)}[data-editor-theme=vs-dark] .header-signin-btn{background:var(--lab-action-grad)}[data-editor-theme=vs-dark] .header-hamburger{border-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .header-hamburger span{background:var(--lab-d-text-muted)}@media(max-width:768px){[data-editor-theme=vs-dark] .header-nav-links{background:#10141ff5;border-bottom-color:var(--lab-d-border)}}.header-brand-mark{width:30px;height:30px;display:block;flex-shrink:0}[data-editor-theme=vs-dark] .header-brand-logo{background:#fff;border-radius:7px;padding:2px 7px;height:32px}.header-hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;width:34px;height:34px;background:transparent;border:1px solid var(--lab-border-2);border-radius:8px;cursor:pointer;padding:7px}.header-hamburger span{display:block;height:2px;background:var(--lab-text-muted);border-radius:2px;transition:background .15s}.header-hamburger:hover span{background:var(--lab-text)}.app-container{flex:1;display:flex;overflow:hidden;position:relative}.editor-panel{display:flex;flex-direction:row;flex-shrink:0;overflow:hidden;min-width:20%;max-width:80%;background:var(--lab-d-bg1)}[data-editor-theme=vs-dark] .file-explorer,[data-editor-theme=vs-dark] .file-explorer-list,[data-editor-theme=vs-dark] .fe-board-files{background:var(--lab-d-bg1);border-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .file-explorer-header,[data-editor-theme=vs-dark] .fe-board-header{background:var(--lab-d-bg2);border-color:var(--lab-d-border);color:var(--lab-d-text-muted)}[data-editor-theme=vs-dark] .fe-board-header-active{background:#53bab51a;color:var(--lab-accent)}[data-editor-theme=vs-dark] .file-explorer-item:hover,[data-editor-theme=vs-dark] .fe-file-item:hover{background:var(--lab-d-bg3)}[data-editor-theme=vs-dark] .file-explorer-item-active,[data-editor-theme=vs-dark] .fe-file-item.active{background:#53bab51a;color:var(--lab-accent)}[data-editor-theme=vs-dark] .file-tabs{background:var(--lab-d-bg0)}[data-editor-theme=vs-dark] .file-tab{background:var(--lab-d-bg2);border-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .file-tab-active,[data-editor-theme=vs-dark] .file-tab.active{background:var(--lab-d-bg1);border-top-color:var(--lab-accent)}[data-editor-theme=vs-dark] .editor-toolbar,[data-editor-theme=vs-dark] .explorer-toggle-btn{background:var(--lab-d-bg2);border-color:var(--lab-d-border)}[data-editor-theme=vs-dark] .explorer-resize-handle,[data-editor-theme=vs-dark] .resize-handle{background:var(--lab-d-bg3)}[data-editor-theme=vs-dark] .explorer-resize-handle:hover,[data-editor-theme=vs-dark] .resize-handle:hover,[data-editor-theme=vs-dark] .explorer-resize-handle:active,[data-editor-theme=vs-dark] .resize-handle:active{background:var(--lab-accent)}[data-editor-theme=vs-dark] .mobile-tab-bar{background:var(--lab-d-bg0);border-bottom-color:var(--lab-accent)}[data-editor-theme=vs-dark] .mobile-tab-btn--active{color:var(--lab-accent);border-bottom-color:var(--lab-accent);background:#53bab51a}[data-editor-theme=vs] .editor-panel{background:#fff}.explorer-toggle-btn{width:36px;flex-shrink:0;background:#252526;border:none;border-right:1px solid #333;border-bottom:1px solid #333;color:#7a7a7a;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s}.explorer-toggle-btn:hover{background:#2a2d2e;color:#ccc}.explorer-resize-handle{width:4px;flex-shrink:0;cursor:col-resize;background:#2a2a2a;transition:background .15s;position:relative;z-index:5}.explorer-resize-handle:hover,.explorer-resize-handle:active{background:var(--lab-primary)}.editor-wrapper{flex:1;overflow:hidden}.simulator-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:20%;background:#2f3a44}.resize-handle{width:5px;flex-shrink:0;background:#2a2a2a;cursor:col-resize;display:flex;align-items:center;justify-content:center;transition:background .15s;position:relative;z-index:10}.resize-handle:hover,.resize-handle:active{background:var(--lab-primary)}.resize-handle-grip{width:2px;height:32px;background:#444;border-radius:2px;transition:background .15s}.resize-handle:hover .resize-handle-grip,.resize-handle:active .resize-handle-grip{background:#ffffff80}@media(max-width:768px){.app-container{flex-direction:column}.editor-panel,.simulator-panel{width:100%!important;min-width:unset;max-width:unset;flex:1}.resize-handle{display:none}}.mobile-tab-bar{display:none}@media(max-width:768px){.mobile-tab-bar{display:flex;flex-shrink:0;height:44px;background:#1e1e1e;border-bottom:2px solid var(--lab-primary);z-index:50}.mobile-tab-btn{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;background:transparent;border:none;border-bottom:2px solid transparent;color:#7a7a7a;font-size:13px;font-weight:600;cursor:pointer;transition:color .18s,background .18s,border-color .18s;padding:8px 0;margin-bottom:-2px}.mobile-tab-btn--active{color:var(--lab-primary);border-bottom-color:var(--lab-primary);background:var(--lab-primary-soft)}.mobile-tab-btn:active{background:#ffffff0f}}@media(max-width:768px){.app-header{padding:0 14px;height:52px}.header-left{gap:12px}.header-username-text{display:none}.header-nav-links{display:none;position:absolute;top:52px;left:0;right:0;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--lab-border);box-shadow:0 4px 12px #1e2a520f;flex-direction:column;align-items:stretch;gap:2px;padding:8px;z-index:200}.header-nav-links.header-nav-open{display:flex}.header-nav-link{padding:12px 16px;border-radius:8px;font-size:15px}.header-hamburger{display:flex}}[data-editor-theme=vs]{--ed-bg: #FFFFFF;--ed-surface: #F4F7FA;--ed-surface-2: #EEF1F5;--ed-border: #E3E7EE;--ed-border-hi: #CDD4E0;--ed-text: #1E2A52;--ed-text-muted: #5A6789;--ed-text-dim: #8A94AD;--ed-primary: #2FA39D;--ed-primary-soft: rgba(83, 186, 181, .14)}[data-editor-theme=vs] .app{background:var(--ed-bg);color:var(--ed-text)}[data-editor-theme=vs] .file-explorer,[data-editor-theme=vs] .fe-board-files,[data-editor-theme=vs] .file-explorer-list{background:var(--ed-surface);color:var(--ed-text);border-color:var(--ed-border)}[data-editor-theme=vs] .file-explorer-header,[data-editor-theme=vs] .fe-board-header{background:var(--ed-surface-2);color:var(--ed-text);border-color:var(--ed-border)}[data-editor-theme=vs] .fe-board-header-active{background:var(--ed-primary-soft);color:var(--ed-primary)}[data-editor-theme=vs] .file-explorer-item,[data-editor-theme=vs] .fe-file-item{color:var(--ed-text)}[data-editor-theme=vs] .file-explorer-item:hover,[data-editor-theme=vs] .fe-file-item:hover{background:var(--ed-surface-2)}[data-editor-theme=vs] .file-explorer-item-active,[data-editor-theme=vs] .fe-file-item.active{background:var(--ed-primary-soft);color:var(--ed-primary)}[data-editor-theme=vs] .file-explorer-rename-input{background:#fff;color:var(--ed-text);border:1px solid var(--ed-border-hi)}[data-editor-theme=vs] .file-explorer-context-menu{background:#fff;border:1px solid var(--ed-border);color:var(--ed-text);box-shadow:0 8px 24px #0f172a1f}[data-editor-theme=vs] .fe-collapse-btn,[data-editor-theme=vs] .file-explorer-new-btn,[data-editor-theme=vs] .fe-board-new-btn,[data-editor-theme=vs] .file-explorer-save-btn{color:var(--ed-text-muted)}[data-editor-theme=vs] .fe-collapse-btn:hover,[data-editor-theme=vs] .file-explorer-new-btn:hover,[data-editor-theme=vs] .fe-board-new-btn:hover,[data-editor-theme=vs] .file-explorer-save-btn:hover{color:var(--ed-primary);background:var(--ed-surface-2)}[data-editor-theme=vs] .explorer-toggle-btn{background:var(--ed-surface-2);border-color:var(--ed-border);color:var(--ed-text-muted)}[data-editor-theme=vs] .explorer-toggle-btn:hover{background:var(--ed-surface);color:var(--ed-text)}[data-editor-theme=vs] .explorer-resize-handle{background:var(--ed-border)}[data-editor-theme=vs] .explorer-resize-handle:hover,[data-editor-theme=vs] .explorer-resize-handle:active{background:var(--ed-primary)}[data-editor-theme=vs] .file-tabs{background:var(--ed-surface-2);border-bottom:1px solid var(--ed-border)}[data-editor-theme=vs] .file-tab{background:var(--ed-surface-2);color:var(--ed-text-muted);border-color:var(--ed-border)}[data-editor-theme=vs] .file-tab:hover{color:var(--ed-text);background:var(--ed-surface)}[data-editor-theme=vs] .file-tab-active,[data-editor-theme=vs] .file-tab.active{background:var(--ed-bg);color:var(--ed-text);border-bottom-color:var(--ed-bg)!important}[data-editor-theme=vs] .file-tab-close,[data-editor-theme=vs] .ftabs-btn-close{color:var(--ed-text-dim)}[data-editor-theme=vs] .file-tab-close:hover,[data-editor-theme=vs] .ftabs-btn-close:hover{background:var(--ed-surface-2);color:var(--ed-text)}[data-editor-theme=vs] .editor-toolbar{background:var(--ed-surface);border-bottom:1px solid var(--ed-border);color:var(--ed-text)}[data-editor-theme=vs] .editor-toolbar button{color:var(--ed-text);background:#fff;border:1px solid var(--ed-border-hi)}[data-editor-theme=vs] .editor-toolbar button:hover{background:var(--ed-surface-2);border-color:#9ca3af}[data-editor-theme=vs] .resize-handle{background:var(--ed-border)}[data-editor-theme=vs] .resize-handle:hover,[data-editor-theme=vs] .resize-handle:active{background:var(--ed-primary)}[data-editor-theme=vs] .resize-handle-grip{background:var(--ed-border-hi)}[data-editor-theme=vs] .canvas-header{background:var(--ed-surface);border-bottom:1px solid var(--ed-border);color:var(--ed-text)}[data-editor-theme=vs] .canvas-serial-btn,[data-editor-theme=vs] .board-selector,[data-editor-theme=vs] .delete-button{background:#fff;color:var(--ed-text);border:1px solid var(--ed-border-hi)}[data-editor-theme=vs] .canvas-serial-btn:hover,[data-editor-theme=vs] .board-selector:hover,[data-editor-theme=vs] .delete-button:hover{background:var(--ed-surface-2);border-color:var(--ed-primary)}[data-editor-theme=vs] .canvas-serial-btn-active{background:#53bab524;color:#27908b;border-color:var(--ed-primary)}[data-editor-theme=vs] .oscilloscope-header,[data-editor-theme=vs] .oscilloscope-controls{background:var(--ed-surface);border-color:var(--ed-border);color:var(--ed-text)}[data-editor-theme=vs] .mobile-tab-bar{background:var(--ed-surface)!important;border-bottom:2px solid var(--ed-primary)!important}[data-editor-theme=vs] .mobile-tab-btn{color:var(--ed-text-muted)!important}[data-editor-theme=vs] .mobile-tab-btn--active{color:var(--ed-primary)!important;background:var(--ed-primary-soft)!important}[data-editor-theme=vs] ::-webkit-scrollbar-track{background:var(--ed-surface-2)}[data-editor-theme=vs] ::-webkit-scrollbar-thumb{background:#cbd0d8;border-radius:8px}[data-editor-theme=vs] ::-webkit-scrollbar-thumb:hover{background:#a8aeb8}.examples-gallery{min-height:100vh;background:var(--bg);color:var(--text);padding:52px 40px;font-family:var(--font);-webkit-font-smoothing:antialiased}.examples-header{position:relative;text-align:center;margin-bottom:36px;max-width:1200px;margin-left:auto;margin-right:auto;padding:44px 24px 40px;border-radius:18px;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.14) 1px,transparent 0) 0 0 / 24px 24px,var(--brand-grad, linear-gradient(135deg, #4FB8B3 0%, #5297CB 52%, #697ADA 100%));box-shadow:0 16px 40px #1e2a522e;overflow:hidden}.examples-header h1{font-size:clamp(30px,4.4vw,46px);margin:0 0 12px;font-weight:700;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 14px rgba(30,42,82,.25)}.examples-header p{font-size:16.5px;color:#ffffffeb;margin:0;font-weight:400;line-height:1.55;max-width:56ch;margin-inline:auto}.examples-board-tabs{max-width:1200px;margin:0 auto 28px;display:flex;flex-wrap:wrap;gap:8px}.board-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background .18s cubic-bezier(.2,.7,.2,1),color .18s,border-color .18s;white-space:nowrap}.board-tab:hover{background:#1e2a520d;color:var(--text);border-color:var(--text-muted)}.board-tab.active{font-weight:600;color:#fff;background:var(--navy, #1E2A52);border-color:var(--navy, #1E2A52)}.board-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:9px;background:#1e2a5214;font-size:11px;font-weight:600;padding:0 4px}.board-tab.active .board-tab-count{background:#fff3;color:#fff}.examples-filters{max-width:1200px;margin:0 auto 40px;display:flex;flex-direction:column;gap:16px}.filter-group{display:flex;align-items:center;gap:14px}.filter-group label{font-size:13px;color:var(--text-muted);min-width:72px;font-weight:500}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-button{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);transition:background .18s cubic-bezier(.2,.7,.2,1),color .18s,border-color .18s}.filter-button:hover{background:#1e2a520d;color:var(--text);border-color:var(--text-muted)}.filter-button.active{background:var(--accent);color:#fff;font-weight:600;border-color:var(--accent)}.examples-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.example-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,border-color .2s;display:flex;flex-direction:column}.example-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px #1e2a5224;border-color:var(--accent-teal, #53BAB5)}.example-thumbnail{width:100%;height:180px;background:var(--bg-elevated, #F5F8FA);display:flex;align-items:center;justify-content:center;overflow:hidden}.example-thumbnail img{width:100%;height:100%;object-fit:contain}.example-preview-image{background:var(--bg-elevated, #F5F8FA)}.example-placeholder-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;width:100%;height:100%;background:var(--bg-elevated, #F5F8FA)}.placeholder-icon{font-size:52px;opacity:.5;color:var(--text-muted)}.placeholder-text{display:flex;flex-direction:column;gap:4px;text-align:center}.component-count,.wire-count{font-size:12px;color:var(--text-dim);font-family:var(--mono)}.example-info{padding:20px 20px 18px;display:flex;flex-direction:column;gap:8px;flex:1}.example-title{font-size:16px;font-weight:600;margin:0;color:var(--navy, #1E2A52);letter-spacing:-.018em}.example-description{font-size:13px;color:var(--text-muted);margin:0;line-height:1.65;flex:1}.example-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.example-difficulty{padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#000}.example-category{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-dim);text-transform:capitalize}.example-copy-link{margin-left:auto;background:none;border:1px solid transparent;border-radius:4px;padding:3px 5px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;transition:color .18s,border-color .18s}.example-copy-link:hover{color:var(--accent);border-color:var(--accent)}.examples-empty{max-width:1200px;margin:80px auto;text-align:center;color:var(--text-dim);font-size:15px}@media(max-width:768px){.examples-gallery{padding:32px 20px}.examples-grid{grid-template-columns:1fr}.filter-group{flex-direction:column;align-items:flex-start}.filter-group label{min-width:auto}}:root{--sidebar-w: 240px;--nav-h: 44px}.docs-page{min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font);display:flex;flex-direction:column}.docs-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:8px;padding:0 24px;height:var(--nav-h);background:#ffffffd9;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.docs-nav-brand{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--navy, #1E2A52);text-decoration:none;font-family:var(--mono);letter-spacing:-.025em}.docs-nav-brand svg{width:18px;height:18px;color:var(--accent)}.docs-nav-divider{color:var(--text-muted);font-size:18px;margin:0 2px}.docs-nav-section{font-size:14px;color:var(--text-muted);font-family:var(--mono)}.docs-nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}.docs-nav-link{display:flex;align-items:center;gap:6px;padding:5px 10px;color:var(--text-muted);text-decoration:none;font-size:13px;border-radius:var(--radius);transition:color .15s,background .15s}.docs-nav-link svg{width:14px;height:14px}.docs-nav-link:hover{color:var(--text);background:#1e2a520d}.docs-nav-btn{padding:5px 12px;background:var(--bg-card);border:1px solid var(--border-hi);color:var(--text);text-decoration:none;font-size:13px;border-radius:var(--radius);transition:border-color .15s,background .15s}.docs-nav-btn:hover{border-color:var(--text-muted);background:#1e2a520d}.docs-sidebar-toggle{display:none;background:transparent;border:1px solid var(--border-hi);color:var(--text-muted);cursor:pointer;padding:5px 7px;border-radius:var(--radius);margin-left:auto}.docs-sidebar-toggle svg{width:16px;height:16px;display:block}.docs-mobile-bar{display:none}.docs-body{display:flex;flex:1}.docs-sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:24px 0;position:sticky;top:var(--nav-h);height:calc(100vh - var(--nav-h));overflow-y:auto}.docs-sidebar-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 20px 12px}.docs-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.docs-sidebar-item{display:block;width:100%;text-align:left;padding:7px 12px;background:transparent;border:none;color:var(--text-muted);font-size:13.5px;border-radius:var(--radius);cursor:pointer;transition:color .15s,background .15s;text-decoration:none}.docs-sidebar-item:hover{color:var(--text);background:#1e2a520d}.docs-sidebar-item--active{color:var(--accent);background:#53bab51a;font-weight:600}.docs-sidebar-footer{margin-top:auto;padding:16px 20px 0}.docs-sidebar-divider{margin:16px 20px;border-top:1px solid var(--border)}.docs-sidebar-title--pages{padding-top:0}.docs-sidebar-link{display:block;text-decoration:none}.docs-sidebar-gh{display:flex;align-items:center;gap:6px;color:var(--text-muted);text-decoration:none;font-size:12.5px;transition:color .15s}.docs-sidebar-gh svg{width:14px;height:14px;flex-shrink:0}.docs-sidebar-gh:hover{color:var(--text)}.docs-main{flex:1;min-width:0;padding:48px 64px;max-width:860px}.docs-section{line-height:1.7}.docs-label{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.04em;display:block;margin-bottom:8px}.docs-section h1{font-size:2rem;font-weight:700;color:var(--navy, #1E2A52);margin:0 0 20px;letter-spacing:-.03em}.docs-section h2{font-size:1.25rem;font-weight:600;color:var(--navy, #1E2A52);margin:36px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.docs-section h3{font-size:1rem;font-weight:600;color:var(--navy, #1E2A52);margin:24px 0 10px}.docs-section p{color:var(--text);margin:0 0 16px}.docs-section ul,.docs-section ol{margin:0 0 16px;padding-left:24px;color:var(--text)}.docs-section li{margin-bottom:6px}.docs-section a{color:var(--accent);text-decoration:none}.docs-section a:hover{text-decoration:underline}.docs-section code{font-family:var(--mono);font-size:.88em;background:#1e2a520d;border:1px solid var(--border);border-radius:4px;padding:2px 6px;color:var(--navy, #1E2A52)}.docs-section pre{background:var(--bg-alt);border:1px solid var(--border);border-radius:6px;padding:18px 20px;overflow-x:auto;margin:0 0 20px}.docs-section pre code{background:transparent;border:none;padding:0;font-size:.85rem;color:var(--navy, #1E2A52);white-space:pre}.docs-section table{width:100%;border-collapse:collapse;font-size:14px;margin:0 0 24px}.docs-section th{background:var(--bg-card);color:var(--text-muted);font-weight:600;text-align:left;padding:9px 14px;border:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.docs-section td{padding:9px 14px;border:1px solid var(--border);color:var(--text);vertical-align:top}.docs-section tr:hover td{background:#1e2a5208}.docs-callout{background:#53bab50f;border:1px solid rgba(83,186,181,.15);border-radius:6px;padding:14px 18px;font-size:14px;color:var(--text);margin:24px 0}.docs-callout a{color:var(--accent)}.wire-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.docs-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:56px;padding-top:24px;border-top:1px solid var(--border);gap:12px}.docs-pagination-btn{background:var(--bg-card);border:1px solid var(--border-hi);color:var(--text-muted);font-size:13.5px;border-radius:var(--radius);padding:9px 16px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;text-decoration:none}.docs-pagination-btn:hover{color:var(--text);border-color:var(--text-muted);background:#1e2a520d}.docs-pagination-btn--next{margin-left:auto}@media(max-width:768px){.docs-sidebar{position:fixed;top:var(--nav-h);left:0;height:calc(100vh - var(--nav-h));z-index:200;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 20px #1e2a521a}.docs-sidebar--open{transform:translate(0)}.docs-mobile-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg-card);border-bottom:1px solid var(--border)}.docs-mobile-bar-title{font-size:13px;color:var(--text-muted);font-family:var(--mono)}.docs-sidebar-toggle{display:flex;align-items:center;justify-content:center}.docs-main{padding:32px 20px}.docs-section h1{font-size:1.6rem}}.docs-board-gallery{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0 24px}.docs-board-card{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--bg-elevated);border:1px solid var(--border, #2a2a3a);border-radius:10px;padding:16px 20px;min-width:140px}.docs-board-card img{width:120px;height:120px;object-fit:contain}.docs-board-card span{font-size:12px;color:var(--text-muted, #888);text-align:center;font-family:var(--mono, monospace)}.profile-page{min-height:100vh;background:var(--bg);font-family:var(--font);-webkit-font-smoothing:antialiased}.profile-container{max-width:1000px;margin:0 auto;padding:60px 40px}.profile-header{display:flex;align-items:center;gap:20px;margin-bottom:52px}.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.5px}.profile-username{margin:0;font-size:32px;font-weight:700;color:var(--navy, #1E2A52);letter-spacing:-.03em;flex:1}.profile-new-btn{display:inline-flex;align-items:center;padding:10px 22px;background:var(--navy, #1E2A52);color:#fff;border-radius:6px;text-decoration:none;font-size:14px;font-weight:600;transition:background .18s cubic-bezier(.2,.7,.2,1);letter-spacing:-.01em}.profile-new-btn:hover{background:var(--accent)}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px 22px 20px;text-decoration:none;display:flex;flex-direction:column;gap:10px;transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,border-color .2s}.profile-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1e2a521a;border-color:var(--accent-teal, #53BAB5)}.profile-card-title{color:var(--navy, #1E2A52);font-weight:600;font-size:16px;letter-spacing:-.018em}.profile-card-desc{color:var(--text-muted);font-size:13px;line-height:1.6;flex:1}.profile-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.profile-badge{background:var(--accent);color:#fff;font-size:11px;font-weight:500;padding:3px 9px;border-radius:var(--radius-pill);font-family:var(--mono)}.profile-badge-private{background:var(--bg-elevated);color:var(--text-muted)}.profile-date{color:var(--text-dim);font-size:11px;margin-left:auto;font-family:var(--mono)}.profile-share-btn{background:none;border:1px solid transparent;border-radius:4px;padding:2px 4px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;margin-left:4px;transition:color .18s,border-color .18s}.profile-share-btn:hover{color:var(--accent);border-color:var(--accent)}.profile-muted{color:var(--text-muted);font-size:15px;margin:0}.profile-error{color:#f87171;font-size:15px;margin:0}@media(max-width:600px){.profile-container{padding:32px 20px}.profile-header{flex-wrap:wrap}.profile-username{font-size:24px}}
