:root{--primary:#6b93d6;--primary-dark:#5a7eb8;--accent:#fc9601;--bg:#000;--bg-secondary:#121212;--header-bg:hsla(0,0%,6%,.4);--header-overlay:hsla(0,0%,100%,.02);--text-light:#fff;--text-dim:#a0a0a0;--border:#222;--radius:16px;--shadow:0 10px 40px -10px rgba(0,0,0,.7);--glass-border:1px solid hsla(0,0%,100%,.1);--ui-blue:#007aff;--ui-red:#ff453a;--tooltip-bg:rgba(25,25,25,.95);--driver-popover-bg:#1a1a1a}*{box-sizing:border-box}body{background-image:radial-gradient(at 0 0,rgba(107,147,214,.22) 0,transparent 60%),radial-gradient(at 100% 0,rgba(252,150,1,.16) 0,transparent 60%);color:var(--text-light);flex-direction:column;font-family:Montserrat,sans-serif;height:100vh;height:100dvh;margin:0;overflow:hidden;padding:0}#preloader,body{background-color:var(--bg);display:flex}#preloader{align-items:center;height:100%;justify-content:center;left:0;position:fixed;top:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),visibility .6s,background-color 1s cubic-bezier(.16,1,.3,1),backdrop-filter 1s cubic-bezier(.16,1,.3,1),-webkit-backdrop-filter 1s cubic-bezier(.16,1,.3,1);width:100%;z-index:10000}#preloader.loaded{opacity:0;pointer-events:none;visibility:hidden}#preloader.welcome-ready{backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);background-color:rgba(0,0,0,.45)}.preloader-inner{flex-direction:column}.preloader-inner,.preloader-logos{align-items:center;display:flex;position:relative}.preloader-logos{gap:20px}.preloader-bottom{align-items:center;display:flex;height:100px;justify-content:center;margin-top:45px;position:relative}.preloader-spinner{position:absolute;transition:opacity .4s ease}.preloader-unsupported{animation:preloader-fade-up .9s cubic-bezier(.16,1,.3,1) both;color:var(--text-dim);font-size:.9rem;line-height:1.6;margin:0;max-width:420px;padding:0 20px;text-align:center}.preloader-welcome{align-items:center;display:flex;flex-direction:column;gap:20px;max-width:90vw;position:absolute;visibility:hidden;width:max-content}.preloader-welcome.visible{visibility:visible}.preloader-welcome .preloader-welcome-btn,.preloader-welcome .preloader-welcome-text{opacity:0}.preloader-welcome.visible .preloader-welcome-text{animation:preloader-fade-up .9s cubic-bezier(.16,1,.3,1) .8s both}.preloader-welcome.visible .preloader-welcome-btn{animation:preloader-fade-up .9s cubic-bezier(.16,1,.3,1) 1.1s both}@keyframes preloader-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.preloader-upjv-wrap{align-items:center;display:flex;flex-shrink:0;gap:20px;margin-right:20px;opacity:0;position:absolute;right:100%;transform:translateX(10px)}.preloader-upjv-wrap.visible{animation:preloader-upjv-fade 1.6s cubic-bezier(.16,1,.3,1) forwards}@keyframes preloader-upjv-fade{0%{opacity:0;transform:translateX(10px)}30%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.preloader-upjv-logo{flex-shrink:0;height:60px;width:auto}.preloader-logo-divider{background:hsla(0,0%,100%,.2);flex-shrink:0;height:40px;width:1px}.preloader-logo{height:80px;width:auto}.preloader-spinner{display:grid;height:54px;place-items:center;position:relative;width:54px}.preloader-spinner:after,.preloader-spinner:before{border:3px solid transparent;border-radius:50%;content:"";grid-area:1/1}.preloader-spinner:before{animation:preloader-spin 1s linear infinite;border-top-color:var(--primary);filter:drop-shadow(0 0 8px rgba(107,147,214,.6));height:100%;width:100%}.preloader-spinner:after{animation:preloader-spin-reverse .8s linear infinite;border-bottom-color:var(--accent);filter:drop-shadow(0 0 5px rgba(252,150,1,.4));height:65%;opacity:.8;width:65%}@keyframes preloader-spin{to{transform:rotate(1turn)}}@keyframes preloader-spin-reverse{to{transform:rotate(-1turn)}}body.preloading>:not(#preloader){opacity:0}body:not(.preloading)>:not(#preloader){opacity:1;transition:opacity .4s ease}.preloader-welcome-text{color:var(--text-dim);font-size:14px;line-height:1.7;margin:0;max-width:360px;text-align:center}.preloader-welcome-sub{display:block;margin-top:4px}.preloader-welcome-btn{align-items:center;background:var(--ui-blue);border:none;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;justify-content:center;padding:12px 32px;transition:all .15s ease}.preloader-welcome-btn:hover{box-shadow:0 4px 15px rgba(0,122,255,.3);filter:brightness(1.1)}.preloader-welcome-btn:active{transform:scale(.98)}body>header{align-items:center;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);background-color:var(--header-bg);background-image:linear-gradient(var(--header-overlay),var(--header-overlay));border:var(--glass-border);border-radius:0 0 18px 18px;border-top:none;box-shadow:0 4px 30px rgba(0,0,0,.3);display:flex;flex-shrink:0;height:64px;justify-content:space-between;margin:0 12px;overflow:visible;padding:0 20px;position:relative;z-index:100}#compileProgress{border-radius:inherit;inset:0;opacity:0;pointer-events:none;position:absolute;visibility:hidden;z-index:10}#compileProgress.active{display:block;opacity:1;visibility:visible}#compileProgress:after{animation:progress-anim 2s linear infinite;background:linear-gradient(90deg,transparent 0,var(--primary) 25%,var(--accent) 50%,var(--primary) 75%,transparent 100%);background-size:200% 100%;border-radius:inherit;content:"";filter:drop-shadow(0 0 5px var(--accent));inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:0 2px 2px;position:absolute}@keyframes progress-anim{0%{background-position:200% 0}to{background-position:-200% 0}}.header-left,.header-right{align-items:center;display:flex;gap:8px}.logo-container{align-items:center;display:flex;gap:4px;height:32px}.logo-svg,.logo-svg-small{height:28px;width:auto}.logo-svg-small{display:none}.info-btn{align-items:center;align-self:flex-start;background:transparent;border:none;border-radius:50%;color:var(--text-dim);cursor:pointer;display:flex;justify-content:center;margin-top:-4px;padding:0;transition:all .2s ease}.info-btn svg{height:14px;width:14px}.info-btn:hover{background:hsla(0,0%,100%,.08);color:#fff}.info-btn:active{transform:scale(.92)}h1{background:linear-gradient(135deg,#fff,#aaa);-webkit-background-clip:text;font-size:18px;font-weight:800;margin:0;-webkit-text-fill-color:transparent;letter-spacing:-.8px}.btn-group{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.05);border-radius:12px;gap:2px;padding:4px}.btn-group,.icon-btn{align-items:center;display:flex}.icon-btn{background:transparent;border:none;border-radius:8px;color:var(--text-dim);cursor:pointer;height:36px;justify-content:center;position:relative;transition:all .2s ease;width:36px}.icon-btn:hover:not(:disabled){background:hsla(0,0%,100%,.08);color:var(--text-light)}.icon-btn:active:not(:disabled){background:hsla(0,0%,100%,.12);transform:scale(.92)}.icon-btn:disabled{cursor:default;opacity:.15;transition:opacity .15s ease}@keyframes btn-reactivate{0%{opacity:.15}to{opacity:1}}@keyframes btn-compile-reactivate{0%{filter:saturate(0) brightness(.6);opacity:.25}to{filter:saturate(1) brightness(1);opacity:1}}.icon-btn.reactivate{animation:btn-reactivate .35s ease-out both}.btn-compile.reactivate{animation:btn-compile-reactivate .45s ease-out both}.icon-btn svg{fill:currentColor;height:18px;width:18px}#resetBtn:hover:not(:disabled){background:rgba(255,69,58,.1);color:var(--ui-red)}.divider{background:hsla(0,0%,100%,.1);height:20px;margin:0 4px;width:1px}.select-wrapper{display:inline-block;position:relative}select{appearance:none;-webkit-appearance:none;background:hsla(0,0%,100%,.05);background-image:none;border:1px solid hsla(0,0%,100%,.1);border-radius:10px;color:var(--text-light);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;height:36px;outline:none;padding:0 32px 0 12px;transition:background-color .2s,border-color .2s,box-shadow .2s}select:hover:not(:disabled){background-color:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}select:focus:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 2px rgba(107,147,214,.25)}select:disabled{cursor:default;opacity:.3}select option{background-color:#1a1a1a;color:#fff}.select-wrapper:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23a0a0a0' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:12px;margin-top:-6px;pointer-events:none;position:absolute;right:10px;top:50%;transition:transform .15s cubic-bezier(.32,.72,0,1);width:12px}.dropdown-wrapper{display:inline-block;position:relative}.dropdown-trigger{align-items:center;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:10px;color:var(--text-light);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;height:36px;outline:none;padding:0 10px 0 12px;transition:background-color .2s,border-color .2s,box-shadow .2s}.dropdown-trigger:hover:not(:disabled){background-color:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}.dropdown-trigger:disabled{cursor:default;opacity:.3}.dropdown-trigger-chevron{flex-shrink:0;height:12px;opacity:.5;transition:transform .2s cubic-bezier(.32,.72,0,1);width:12px}.dropdown-wrapper.open .dropdown-trigger{border-color:var(--primary);box-shadow:0 0 0 2px rgba(107,147,214,.25)}.dropdown-wrapper.open .dropdown-trigger-chevron{transform:rotate(180deg)}.dropdown-menu{background:var(--bg-dark,#1a1a1a);border:1px solid hsla(0,0%,100%,.12);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.5),0 0 0 1px hsla(0,0%,100%,.04);left:0;max-height:280px;min-width:100%;opacity:0;overflow-y:auto;padding:4px;pointer-events:none;position:absolute;scrollbar-gutter:stable;top:calc(100% + 6px);transform:translateY(-4px) scale(.98);transition:opacity .15s ease,transform .15s cubic-bezier(.32,.72,0,1);z-index:1000}.dropdown-wrapper.open .dropdown-menu{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.dropdown-item{background:none;border:none;border-radius:8px;color:var(--text-dim);cursor:pointer;display:block;font-family:inherit;font-size:13px;font-weight:500;padding:8px 12px;text-align:left;transition:background .1s ease,color .1s ease;white-space:nowrap;width:100%}.dropdown-item:hover{background:hsla(0,0%,100%,.08);color:#fff}.dropdown-item:active{background:hsla(0,0%,100%,.12)}.dropdown-menu::-webkit-scrollbar{width:5px}.dropdown-menu::-webkit-scrollbar-track{background:transparent;margin:6px 0}.dropdown-menu::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:10px}.dropdown-menu::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}.btn-compile{align-items:center;background:linear-gradient(135deg,var(--accent) 0,#e67e00 100%);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;gap:10px;height:40px;justify-content:center;letter-spacing:.5px;padding:0 20px;transition:opacity .35s ease,filter .35s ease}.btn-compile:hover:not(:disabled){filter:brightness(1.1)}.btn-compile:active:not(:disabled){opacity:.9;transform:scale(.98)}.btn-compile:disabled{box-shadow:none;cursor:default;filter:saturate(0) brightness(.6);opacity:.25}.btn-compile svg{fill:currentColor;height:18px;width:18px}.main-container{flex:1;gap:12px;padding:12px;position:relative}.main-container,.section-container{display:flex;flex-direction:column;min-height:0;overflow:hidden}.section-container{background:hsla(0,0%,6%,.4);border:var(--glass-border);border-radius:18px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.section-header{align-items:center;background:var(--header-overlay);border-bottom:1px solid hsla(0,0%,100%,.03);color:var(--text-dim);display:flex;flex-shrink:0;font-size:10px;font-weight:700;height:40px;justify-content:space-between;letter-spacing:1px;padding:0 16px;position:relative;text-transform:uppercase;user-select:none;z-index:5}.section-header .header-title{flex:1}.section-header .header-actions,.section-header .header-title{align-items:center;display:flex;gap:8px}.header-action-btn{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--text-dim);cursor:pointer;display:flex;padding:4px;transition:all .2s}.header-action-btn:hover{background:hsla(0,0%,100%,.08);color:#fff}.header-action-btn:active{transform:scale(.92)}.header-action-btn svg{fill:currentColor;height:16px;width:16px}#codeContainer{flex:1;min-height:100px}#editorContainer{flex:1;min-height:0;position:relative;width:100%;z-index:1}.monaco-editor .monaco-editor-overlay{z-index:20!important}#statusContainer{backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);background-color:var(--header-bg);border:var(--glass-border);border-bottom:none;border-radius:18px 18px 0 0;box-shadow:0 -4px 30px rgba(0,0,0,.3);flex-shrink:0;margin:0 12px;min-height:40px;overflow:hidden;position:relative}#statusContainer.collapsed #status{overflow:hidden}#statusContainer.resizing #status{transition:none!important}#statusResizer{cursor:ns-resize}#status{background:rgba(0,0,0,.15);color:#e0e0e0;flex:1;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5;overflow-anchor:auto;overflow-y:auto;padding:14px}.toggle-btn{align-items:center;border-radius:6px;color:var(--text-dim);cursor:pointer;display:flex;padding:6px;transition:all .2s}.toggle-btn:hover{background:hsla(0,0%,100%,.08);color:#fff}.toggle-btn:active{transform:scale(.92)}.toggle-btn svg{fill:currentColor;height:18px;transition:transform .2s cubic-bezier(.32,.72,0,1);width:18px}.collapsed .toggle-btn svg{transform:rotate(180deg)}#resizeOverlay{cursor:ns-resize;z-index:9999}#resizeOverlay,.modal-overlay{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.modal-overlay{align-items:center;backdrop-filter:blur(12px);background:rgba(0,0,0,.65);justify-content:center;pointer-events:none;z-index:1000}.modal-overlay.show{display:flex;pointer-events:auto}.modal{background:#1a1a1a;border:1px solid hsla(0,0%,100%,.12);border-radius:24px;box-shadow:0 30px 60px -12px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:85vh;overflow:hidden;text-align:center;width:420px}.modal-content{min-height:0;overflow-y:auto;padding:32px}.modal-title{color:#fff;font-size:19px;font-weight:700;letter-spacing:-.3px;margin-bottom:12px}.modal-title:empty{display:none}.modal-text{color:#bbb;font-size:13.5px;line-height:1.6}.modal-custom-content{margin-top:0;padding:0 4px}.modal-actions{display:flex;gap:12px;justify-content:center;padding:0 24px 24px}.modal-btn{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;color:#fff;cursor:pointer;flex:1;font-family:inherit;font-size:14px;font-weight:600;padding:12px 16px;transition:background .15s ease,border-color .15s ease,filter .15s ease,box-shadow .15s ease}.modal-btn:hover{background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}.modal-btn:active{background:hsla(0,0%,100%,.15);transform:scale(.98)}.modal-btn.bold{background:var(--ui-blue);border-color:transparent}.modal-btn.bold:hover{box-shadow:0 4px 15px rgba(0,122,255,.3);filter:brightness(1.1)}.modal-btn.danger{background:var(--ui-red);border-color:transparent}.modal-btn.danger:hover{box-shadow:0 4px 15px rgba(255,69,58,.3);filter:brightness(1.1)}.device-choice-list{display:flex;flex-direction:column;gap:8px;margin-top:20px;text-align:left}.device-choice-item{align-items:center;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;cursor:pointer;display:flex;padding:14px 16px;transition:all .2s ease}.device-choice-item:hover{background:hsla(0,0%,100%,.08);border-color:var(--primary)}.device-choice-item:active{transform:scale(.98)}.device-choice-name{color:#fff;font-size:14px;font-weight:700}.modal-about-header{align-items:center;display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.modal-about-title{background:linear-gradient(135deg,#fff,#aaa);-webkit-background-clip:text;font-size:22px;font-weight:800;-webkit-text-fill-color:transparent}.modal-about-description{color:var(--text-dim);font-size:13px;line-height:1.4;margin-top:4px;opacity:.9}.modal-about-info{align-items:center;color:var(--text-dim);display:flex;flex-direction:column;gap:6px}.modal-about-info p{font-size:13px;margin:0}.modal-about-info strong{color:#fff}.modal-about-link{color:var(--ui-blue);font-weight:600;text-decoration:none;transition:all .2s}.modal-about-link:hover{color:#58a6ff;text-decoration:underline}.modal-about-tabs{background:hsla(0,0%,100%,.04);border-radius:12px;display:flex;margin:0 auto 20px;padding:3px;position:relative;width:fit-content}.modal-about-tabs-pill{background:hsla(0,0%,100%,.1);border-radius:9px;height:calc(100% - 6px);left:3px;pointer-events:none;position:absolute;top:3px;transition:left .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1)}.modal-about-tab{background:transparent;border:none;border-radius:9px;color:hsla(0,0%,100%,.5);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 20px;position:relative;transition:color .2s ease;z-index:1}.modal-about-tab:hover:not(.active){color:#ccc}.modal-about-tab.active{color:#fff}.modal-about-panel.hidden{display:none}#about-panel-about,#about-panel-credits{text-align:center}.modal-about-libs-list{justify-content:center}.modal-about-libs-section{margin-bottom:10px}.modal-about-libs-section:last-child{margin-bottom:0}.modal-about-libs-category{color:hsla(0,0%,100%,.35);font-size:10px;font-weight:700;letter-spacing:.04em;margin:0 0 6px 2px;text-transform:uppercase}.modal-about-libs-list{display:flex;flex-wrap:wrap;gap:5px}.modal-about-lib{align-items:center;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);border-radius:8px;color:var(--text-dim);display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:4px 8px;text-decoration:none;transition:all .15s ease}.modal-about-lib:hover{background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.18);color:#fff}.modal-about-lib-license{align-items:center;background:hsla(0,0%,100%,.06);border-radius:4px;color:hsla(0,0%,100%,.3);display:inline-flex;font-size:9px;font-weight:700;letter-spacing:.02em;line-height:1;padding:3px 5px;white-space:nowrap}.modal.wide{text-align:left;width:560px}.modal.wide .modal-title{text-align:center}.udev-setup{margin-top:16px;text-align:left}.udev-step{margin-bottom:16px}.udev-step:last-child{margin-bottom:0}.udev-step-label{color:#fff;font-size:13px;font-weight:700;margin-bottom:6px}.udev-step-desc{color:#888;font-size:12px;line-height:1.4;margin-bottom:6px}.udev-sub-label{color:#999;font-size:11.5px;font-weight:600;margin:8px 0 4px}.udev-code-block{background:rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;overflow-x:auto;position:relative}.udev-code-block pre{color:#ccc;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5;margin:0;padding:12px 40px 12px 14px;white-space:pre;word-break:normal}.udev-code-block.single-line .udev-copy-btn{top:50%;transform:translateY(-50%)}.udev-copy-btn{align-items:center;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:6px;color:#999;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;padding:0;position:absolute;right:8px;top:8px;transition:all .15s ease;width:28px}.udev-copy-btn:hover{background:hsla(0,0%,100%,.12);color:#fff}.udev-copy-btn svg{fill:currentColor;height:14px;width:14px}.udev-copy-btn.copied{border-color:rgba(48,209,88,.3);color:#30d158}.modal-tour-restart{align-items:center;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;justify-content:center;margin-top:12px;padding:8px 16px;text-decoration:none;transition:all .15s ease}.modal-tour-restart:hover{background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}.modal-tour-restart:active{background:hsla(0,0%,100%,.15);transform:scale(.98)}.modal-tour-restart svg{fill:currentColor;height:14px;width:14px}.tooltip{backdrop-filter:blur(10px);background:var(--tooltip-bg);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.5);color:#fff;font-size:11px;line-height:1.4;max-width:220px;opacity:0;padding:8px 14px;pointer-events:none;position:fixed;z-index:2000}.tooltip-name{font-size:11px;font-weight:700;margin-bottom:2px}.tooltip-description{color:var(--text-dim);font-size:11px}.tooltip-shortcut{align-items:center;display:inline-flex;gap:3px;margin-top:5px}.tooltip-shortcut-sep{color:#666;font-size:10px;font-weight:600}.tooltip-shortcut kbd{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.15);border-bottom-color:hsla(0,0%,100%,.25);border-radius:4px;box-shadow:inset 0 -1px 0 hsla(0,0%,100%,.1);color:#ccc;display:inline-block;font-family:JetBrains Mono,Consolas,monospace;font-size:10px;font-weight:600;line-height:1.5;padding:2px 5px}.tooltip:after{content:"";height:0;left:var(--arrow-offset,50%);position:absolute;transform:translateX(-50%);width:0}.tooltip.bottom:after{border-bottom:6px solid var(--tooltip-bg);top:-6px}.tooltip.bottom:after,.tooltip.top:after{border-left:6px solid transparent;border-right:6px solid transparent}.tooltip.top:after{border-top:6px solid var(--tooltip-bg);bottom:-6px}.success{color:#34c759;font-weight:600}.error{color:#ff3b30;font-weight:600}.info{color:var(--ui-blue)}pre{margin:0;white-space:pre-wrap;word-break:break-all}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}@media (max-width:600px){.preloader-bottom,.preloader-logos{flex-direction:column}.preloader-bottom{gap:0;height:auto;margin-top:0!important}.preloader-spinner{margin-top:45px;position:relative}.preloader-welcome{margin-top:-42px;max-width:90vw;position:relative;width:auto}.preloader-upjv-wrap{bottom:100%;flex-direction:column;gap:16px;margin-bottom:6px;margin-right:0;position:absolute;right:auto;transform:translateY(10px)}.preloader-upjv-wrap.visible{animation:preloader-upjv-fade-mobile 1.6s cubic-bezier(.16,1,.3,1) forwards}@keyframes preloader-upjv-fade-mobile{0%{opacity:0;transform:translateY(10px)}30%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.preloader-logo-divider{height:1px;width:40px}.preloader-upjv-logo{height:50px}.preloader-logo{height:60px}.preloader-welcome-text{font-size:13px;max-width:280px}}@media (max-width:1024px){h1{font-size:16px}}@media (max-width:850px){h1,header .logo-svg{display:none}.logo-svg-small{display:block}}@media (max-width:768px){body>header{border-bottom:var(--glass-border);border-left:none;border-right:none;height:56px;margin:0 8px;padding:0 16px}.info-btn,.logo-container{display:flex}.logo-svg-small{display:block}.header-left{gap:6px}.icon-btn{height:34px;width:34px}.icon-btn svg{height:16px;width:16px}.btn-compile{height:38px;justify-content:center;padding:0;width:38px}.btn-compile span{display:none}.btn-compile svg{height:20px;width:20px}.dropdown-trigger{font-size:12px;height:34px}.divider{height:18px;margin:0 2px}.modal,.modal.wide{width:90%}.main-container{gap:8px;padding:8px}#statusContainer{margin:0 8px}}@media (max-width:550px){body>header{height:50px;margin:0 6px;padding:0 16px}.icon-btn{height:32px;width:32px}#tour-save-open{gap:4px!important}.dropdown-trigger{font-size:11px;height:32px;max-width:100px}.dropdown-trigger-label{overflow:hidden;text-overflow:ellipsis}.btn-compile{height:34px;padding:0;width:34px}.main-container{gap:6px;padding:6px}.section-container{border-radius:12px}#statusContainer{border-radius:12px 12px 0 0;margin:0 6px}}@media (max-width:480px){#logoDivider,.info-btn,.logo-container,.logo-svg-small{display:none}}@media (max-width:380px){.header-left,.logo-container{gap:2px}}@media (pointer:coarse){.btn-compile,.dropdown-trigger,.icon-btn,.modal-btn{min-height:40px}.icon-btn{width:40px}@media (max-width:480px){.btn-compile,.dropdown-trigger,.icon-btn{min-height:34px}.icon-btn{width:34px}}}.driver-popover.driverjs-theme{animation:driver-popover-enter .4s cubic-bezier(.32,.72,0,1) forwards;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background-color:var(--driver-popover-bg);border-radius:20px;box-shadow:0 30px 60px -12px rgba(0,0,0,.5),0 0 0 1px hsla(0,0%,100%,.08),0 0 80px -20px rgba(59,130,246,.12);color:#fff;font-family:Montserrat,sans-serif;padding:24px}@keyframes driver-popover-enter{0%{filter:blur(4px);opacity:0;transform:scale(.92) translateY(12px)}to{filter:blur(0);opacity:1;transform:scale(1) translateY(0)}}@keyframes driver-content-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.driver-popover.driverjs-theme .driver-popover-arrow{border-width:10px}.driver-popover.driverjs-theme .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:var(--driver-popover-bg)}.driver-popover.driverjs-theme .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:var(--driver-popover-bg)}.driver-popover.driverjs-theme .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:var(--driver-popover-bg)}.driver-popover.driverjs-theme .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:var(--driver-popover-bg)}.driver-popover.driverjs-theme .driver-popover-title{animation:driver-content-slide-in .45s cubic-bezier(.32,.72,0,1) .05s both;color:#fff;font-size:17px;font-weight:700;letter-spacing:-.3px;margin-bottom:10px}.driver-popover.driverjs-theme .driver-popover-description{animation:driver-content-slide-in .45s cubic-bezier(.32,.72,0,1) .1s both;color:#bbb;font-size:13.5px;font-weight:400;line-height:1.6}.driver-overlay,.driver-popover{pointer-events:auto!important}.driver-overlay{transition:opacity .35s cubic-bezier(.32,.72,0,1)!important}.driver-popover.driverjs-theme button{background:hsla(0,0%,100%,.05)!important;border:1px solid hsla(0,0%,100%,.1)!important;border-radius:12px!important;box-shadow:none!important;color:#fff!important;cursor:pointer!important;font-family:inherit!important;font-size:12px!important;font-weight:600!important;outline:none!important;padding:8px 16px!important;text-shadow:none!important;transition:background .15s ease,border-color .15s ease,filter .15s ease,box-shadow .15s ease,transform .15s ease!important}.driver-popover.driverjs-theme button:hover:not(:disabled){background:hsla(0,0%,100%,.1)!important;border-color:hsla(0,0%,100%,.2)!important}.driver-popover.driverjs-theme button:active:not(:disabled){background:hsla(0,0%,100%,.15)!important;transform:scale(.98)}.driver-popover.driverjs-theme .driver-popover-next-btn{background:var(--ui-blue)!important;border-color:transparent!important}.driver-popover.driverjs-theme .driver-popover-next-btn:hover:not(:disabled){background:var(--ui-blue)!important;box-shadow:0 4px 15px rgba(0,122,255,.3)!important;filter:brightness(1.1)}.driver-popover.driverjs-theme .driver-popover-close-btn{align-items:center!important;background:transparent!important;border:none!important;border-radius:8px!important;box-shadow:none!important;color:#a0a0a0!important;cursor:pointer!important;display:flex!important;font-size:24px!important;height:28px!important;justify-content:center!important;line-height:28px!important;margin:0!important;opacity:.6!important;outline:none!important;padding:0!important;position:absolute!important;right:14px!important;top:14px!important;transition:opacity .15s ease,color .15s ease,background .15s ease!important;width:28px!important}.driver-popover.driverjs-theme .driver-popover-close-btn:hover{background:hsla(0,0%,100%,.08)!important;color:#fff!important;opacity:1!important}.driver-popover.driverjs-theme .driver-popover-close-btn:active{background:hsla(0,0%,100%,.15)!important;transform:scale(.98)}.driver-popover.driverjs-theme .driver-popover-footer{align-items:center;animation:driver-content-slide-in .45s cubic-bezier(.32,.72,0,1) .15s both;display:flex;justify-content:space-between;margin-top:18px}.driver-popover.driverjs-theme .driver-popover-progress-text{color:#888;font-size:11px}#statusContainer.animating #status,#statusContainer.collapsed #status,#statusContainer.resizing #status{overflow-y:hidden!important}#bootloaderMode{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(0,0,0,.65);display:none;inset:0;justify-content:center;opacity:0;position:fixed;z-index:9500}#bootloaderMode.visible{display:flex}.bl-container{background:#1a1a1a;border:1px solid hsla(0,0%,100%,.12);border-radius:24px;box-shadow:0 30px 60px -12px rgba(0,0,0,.5);max-height:88vh;max-width:92vw;overflow-y:auto;position:relative;width:520px}.bl-close{align-items:center;background:transparent;border:none;border-radius:8px;color:var(--text-dim);cursor:pointer;display:flex;height:28px;justify-content:center;opacity:.6;padding:0;position:absolute;right:14px;top:14px;transition:opacity .15s ease,color .15s ease,background .15s ease;width:28px;z-index:1}.bl-close:hover{background:hsla(0,0%,100%,.08);color:#fff;opacity:1}.bl-close:active{background:hsla(0,0%,100%,.15);transform:scale(.98)}.bl-close svg{fill:currentColor;height:18px;width:18px}.bl-header{padding:32px 32px 0;text-align:center}.bl-title{color:#fff;font-size:19px;font-weight:700;letter-spacing:-.3px;margin:0 0 12px}.bl-subtitle{color:#bbb;font-size:13.5px;line-height:1.6;margin:0}.bl-tabs{background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.06);border-radius:12px;display:flex;margin:20px 32px 0;padding:3px;position:relative}.bl-tabs-pill{background:hsla(0,0%,100%,.1);border-radius:9px;height:calc(100% - 6px);left:3px;pointer-events:none;position:absolute;top:3px;transition:left .3s cubic-bezier(.32,.72,0,1),width .3s cubic-bezier(.32,.72,0,1);z-index:0}.bl-tab{align-items:center;background:transparent;border:none;border-radius:9px;color:var(--text-dim);cursor:pointer;display:flex;flex:1;font-family:inherit;font-size:13px;font-weight:600;justify-content:center;padding:9px 16px;position:relative;transition:color .2s ease;user-select:none;z-index:1}.bl-tab:hover:not(.active){color:#ccc}.bl-tab.active{color:#fff}.bl-tab-panel{padding:24px 32px 32px}.bl-tab-panel.hidden{display:none}.bl-text{color:#bbb;font-size:13.5px;line-height:1.6;margin:0 0 20px}.bl-text strong{color:#fff}.bl-device-row{align-items:center;background:rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;display:flex;gap:12px;margin-bottom:16px;padding:14px 16px}.bl-device-label{color:var(--text-dim);flex:1;font-size:13px;font-weight:600}.bl-device-label.connected{color:#34c759}.bl-device-btn{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:12px;font-weight:600;padding:6px 14px;transition:all .15s ease}.bl-device-btn:hover{background:hsla(0,0%,100%,.12);border-color:hsla(0,0%,100%,.2)}.bl-device-btn:active{transform:scale(.98)}.bl-serial-row{align-items:center;background:rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;display:flex;gap:12px;margin-bottom:16px;padding:14px 16px}.bl-serial-label{color:#fff;font-size:13px;font-weight:700}.bl-serial-value{color:var(--primary);font-family:JetBrains Mono,Consolas,monospace;font-size:14px;font-weight:700;letter-spacing:2px}.bl-serial-char{display:inline-block;transition:color .1s ease}.bl-serial-char-spin{color:rgba(107,147,214,.5)}.bl-serial-refresh{align-items:center;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:6px;color:#999;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-left:auto;padding:0;transition:all .15s ease;width:28px}.bl-serial-refresh:hover{background:hsla(0,0%,100%,.12);color:#fff}.bl-serial-refresh:active{transform:scale(.98)}.bl-serial-refresh svg{fill:currentColor;height:14px;width:14px}.bl-btn{align-items:center;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:600;gap:10px;justify-content:center;padding:12px 16px;transition:background .15s ease,border-color .15s ease,filter .15s ease,box-shadow .15s ease;width:100%}.bl-btn:hover:not(:disabled){background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}.bl-btn:active:not(:disabled){background:hsla(0,0%,100%,.15);transform:scale(.98)}.bl-btn svg{fill:currentColor;height:18px;width:18px}.bl-btn-primary{background:var(--ui-blue);border-color:transparent}.bl-btn-primary:hover:not(:disabled){background:var(--ui-blue);box-shadow:0 4px 15px rgba(0,122,255,.3);filter:brightness(1.1)}.bl-btn-primary:active:not(:disabled){transform:scale(.98)}.bl-btn-primary:disabled{box-shadow:none;cursor:default;filter:none;opacity:.35}.bl-form-row{margin-bottom:16px}.bl-form-row .select-wrapper{display:block}.bl-form-row .select-wrapper select{width:100%}.bl-label{color:#fff;display:block;font-size:13px;font-weight:700;margin-bottom:6px}.bl-log{background:rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;margin-top:16px;max-height:200px;overflow:hidden}.bl-log.hidden{display:none}.bl-log-content{color:#ccc;font-family:JetBrains Mono,Consolas,monospace;font-size:11px;line-height:1.5;max-height:200px;overflow-y:auto;padding:12px 14px}.bl-log-line{margin-bottom:2px;word-break:break-all}.bl-log-line.error{color:#ff3b30;font-weight:600}.bl-log-line.success{color:#34c759;font-weight:600}.bl-log-line.info{color:var(--ui-blue)}@media (max-width:768px){.bl-container{width:90%}.bl-header{padding:28px 24px 0}.bl-tabs{margin:16px 24px 0}.bl-tab-panel{padding:20px 24px 28px}.bl-tab{font-size:12px;padding:8px 12px}}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(assets/fonts/fd58739f6025c931e402.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(assets/fonts/3fba7a174973e295b912.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(assets/fonts/ff36ad3fe4086112470d.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(assets/fonts/255ba4b713f1e4a3d6a1.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(assets/fonts/3b4db0dc4680141b3dd9.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(assets/fonts/f13b88db81610570999d.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(assets/fonts/be11f029bc2fff5574a8.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(assets/fonts/232606954fdbe369ca6b.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(assets/fonts/51397ece37782604acef.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(assets/fonts/daad4898d11d44017684.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(assets/fonts/d30160b75e24bbce5e90.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(assets/fonts/a3fb3c22620bddcb5a77.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(assets/fonts/9ced692b9436db6be1ff.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(assets/fonts/f6fe46730a623dc08f4c.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(assets/fonts/b0e762989c189fcce6c9.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(assets/fonts/aaddbedfdc6fc7e1a87f.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(assets/fonts/d04f8ff214f46e5409f0.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(assets/fonts/88d05d028319417e1800.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:100;src:url(assets/fonts/efc50cf7b7437f126793.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:100;src:url(assets/fonts/4ae5cc40d8ee2d390439.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:200;src:url(assets/fonts/767d308b0a5ba0eba522.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:200;src:url(assets/fonts/7af5d2d142cac9c6cb32.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:300;src:url(assets/fonts/a53bb6e9af4e38070454.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:300;src:url(assets/fonts/fc0634b183f786ae87aa.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(assets/fonts/d04352f240062b100fba.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:400;src:url(assets/fonts/76c1862325ea6f70eeff.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:500;src:url(assets/fonts/bb50084be2b43ba7b98c.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:500;src:url(assets/fonts/a63d39a1c104a2b3e87e.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(assets/fonts/d68d56cf8ab33f8cc5d0.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:600;src:url(assets/fonts/3d0e0ed266d8f55a08c8.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:700;src:url(assets/fonts/ce1e40901d7a0d88d483.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:700;src:url(assets/fonts/b659956119f91f2342bc.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:800;src:url(assets/fonts/e0bd7d0300f7162d889e.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:800;src:url(assets/fonts/e5fda9c4d1843c1e995a.woff2) format("woff2")}