:root{--bg:#15181b;--panel:#1d2125;--raise:#262b30;--line:#353b42;--deep:#0f1113;--fg:#e6e8ea;--dim:#8d969f;--accent:#f2c230;--accent-ink:#1a1500;--ok:#4fc27a;--warn:#f08a2c;--bad:#e5484d;--info:#5aa9e6;--f-display:"Chakra Petch","Arial Narrow",sans-serif;--f-body:"IBM Plex Sans",system-ui,sans-serif;--f-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:13px/1.45 var(--f-body);overflow:hidden}#root{flex-direction:column;height:100%;display:flex}button,select,input,textarea{font:inherit;color:inherit}button:disabled{opacity:.4;cursor:not-allowed!important}.mono{font-family:var(--f-mono)}.dim{color:var(--dim)}.tag{font:500 10.5px var(--f-mono);border:1px solid var(--line);color:var(--dim);white-space:nowrap;border-radius:3px;padding:1px 6px}.tag.ok{color:var(--ok);border-color:var(--ok)}.tag.warn{color:var(--warn);border-color:var(--warn)}.tag.bad{color:#fff;background:var(--bad);border-color:var(--bad)}.tag.acc{color:var(--accent);border-color:var(--accent)}.tag.info{color:var(--info);border-color:var(--info)}.menubar{background:var(--deep);border-bottom:1px solid var(--line);flex:none;align-items:stretch;gap:6px;min-width:0;height:38px;padding:0 8px;display:flex}.menubar>*{align-self:center}.menubar>.rtabs{align-self:stretch}.logo{font:700 13px var(--f-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:7px;margin-right:8px;display:flex}.logo span{color:var(--accent)}.logo svg{width:20px;height:20px}.mbr{flex:none;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.stname{font:11.5px var(--f-mono);color:var(--dim);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.robsel{position:relative}.robsel>button{background:var(--raise);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:3px;align-items:center;gap:8px;padding:3px 10px;display:flex}.robsel>button b{font-family:var(--f-display);font-size:13px}.drop{background:var(--panel);border:1px solid var(--line);z-index:30;border-radius:4px;min-width:250px;padding:4px;display:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 30px #00000080}.drop.on{display:block}.drop .it{cursor:pointer;border-radius:3px;align-items:center;gap:8px;padding:7px 9px;display:flex}.drop .it:hover{background:var(--raise)}.drop .it.off{opacity:.45;cursor:not-allowed}.drop .it.off:hover{background:0 0}.drop small{color:var(--dim);font-size:11px;display:block}.robdrop{min-width:360px;max-height:80vh;overflow:auto}.robdrop .dh{font:600 10.5px var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);border-top:1px solid var(--line);margin-top:4px;padding:8px 9px 3px}.robdrop .dh:first-child{border-top:none;margin-top:0}.robdrop .it.cur{background:color-mix(in srgb,var(--accent) 12%,transparent)}.robdrop .rlab{background:var(--raise);width:26px;height:22px;font:700 11.5px var(--f-mono);border-radius:3px;flex:none;place-items:center;display:grid}.robdrop .it.cur .rlab{background:var(--accent);color:#1a1a1a}.robdrop .it.add .rlab{color:var(--accent)}.robdrop .mini{padding:1px 6px}.status .robs{gap:4px;display:flex}.status .rchip{border:1px solid var(--line);cursor:pointer;color:inherit;font:inherit;background:0 0;border-radius:3px;padding:0 6px}.status .rchip.cur{border-color:var(--accent);color:var(--accent)}.status .rchip i{margin-left:4px;font-style:normal}.status .rchip i.ok{color:var(--ok)}.status .rchip i.warn{color:var(--warn)}.ib{cursor:pointer;color:var(--dim);background:0 0;border:1px solid #0000;border-radius:3px;padding:3px 7px}.ib:hover{color:var(--fg);border-color:var(--line)}.ib.icon{place-items:center;padding:4px;display:grid}.ribbon{background:var(--panel);border-bottom:1px solid var(--line);flex:none}.ribbon.peek{z-index:40;position:fixed;top:38px;left:0;right:0;box-shadow:0 10px 24px #00000073}.rcollapse{color:var(--dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex:none;place-items:center;width:26px;height:26px;margin-left:auto;display:grid}.rcollapse:hover{color:var(--fg);border-color:var(--line)}.rtabs .rcollapse{width:22px;height:22px;margin:auto 0 auto 4px}.rtabs{scrollbar-width:none;gap:0;min-width:0;padding:0 4px;display:flex;overflow-x:auto}.rtabs button{cursor:pointer;color:var(--dim);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 11px}.rtabs button:hover{color:var(--fg)}.rtabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.rbody{scrollbar-width:none;align-items:center;height:38px;padding:3px 6px;display:flex;overflow-x:auto}.rg{border-right:1px solid var(--line);flex:none;align-items:center;gap:1px;height:26px;padding:0 6px;display:flex}.rg:last-child{border-right:0}.rb{cursor:pointer;color:var(--fg);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:6px;height:28px;padding:3px 8px 3px 6px;font-size:12px;display:flex}.rb:hover:not(:disabled){background:var(--raise);border-color:var(--line)}.rb.on{color:var(--accent);background:#f2c2301a;border-color:#f2c23080}.rb svg{width:17px;height:17px;color:var(--accent);flex:none}.rb.run svg,.rb.go svg{color:var(--ok)}.rb.stop svg{color:var(--bad)}.rctl{color:var(--dim);white-space:nowrap;align-items:center;gap:6px;padding:0 6px;font-size:12px;display:flex}.rctl input[type=range]{width:110px;accent-color:var(--accent)}.studio-like .rctl input[type=range]{width:80px}.rctl select{background:var(--raise);border:1px solid var(--line);border-radius:3px;padding:2px 4px;font-size:11.5px}.main{flex:1;min-height:0;display:flex}.act{background:var(--deep);border-right:1px solid var(--line);flex-direction:column;flex:none;align-items:center;gap:2px;width:42px;padding-top:4px;display:flex}.act button{cursor:pointer;width:36px;height:36px;color:var(--dim);background:0 0;border:0;border-left:2px solid #0000;place-items:center;display:grid}.act button:hover{color:var(--fg)}.act button.on{color:var(--accent);border-left-color:var(--accent)}.act svg{width:20px;height:20px}.left{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;width:230px;min-height:0;display:flex}.hide{display:none!important}.ph{border-bottom:1px solid var(--line);font:600 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);flex:none;align-items:center;gap:6px;padding:7px 10px;display:flex}.ph .r{gap:2px;margin-left:auto;display:flex}.ph .r button{color:var(--dim);cursor:pointer;font:13px var(--f-body);background:0 0;border:0;padding:0 4px}.ph .r button:hover{color:var(--fg)}.pv{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.empty{color:var(--dim);padding:14px 12px;font-size:12px}.center{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.split{flex-direction:column;flex:1;min-height:0;display:flex}.split.side{flex-direction:row}.viewwrap{flex:2.1;min-width:0;min-height:120px;display:flex}.split.side>.viewwrap{flex:1.5}.dock{background:var(--panel);flex:1;min-width:0;min-height:120px;display:flex}.dock.row{flex-direction:row}.dock.col{flex-direction:column;min-width:280px}.dock.full{flex:1}.dock.row.nocode{flex:0 0 170px;min-height:100px}.dock.col.nocode{flex:0 0 300px}.codewrap{flex:1.8;min-width:0;min-height:0;display:flex}.dock .bottom{border-top:0;flex:1;min-width:200px;height:auto;min-height:80px}.dock.row>.bottom{border-left:1px solid var(--line)}.dock.col>.bottom{border-top:1px solid var(--line)}.dock.row>.codewrap.hide+.bottom{border-left:0}.view{background:#121416;flex:1;min-width:0;position:relative;overflow:hidden}.view canvas{touch-action:none;display:block}.gutter{background:var(--line);cursor:row-resize;flex:none;height:4px}.gutter[aria-orientation=vertical]{cursor:col-resize;width:4px;height:auto}.gutter:hover{background:var(--accent)}.vtools{flex-wrap:wrap;gap:3px;max-width:calc(100% - 90px);display:flex;position:absolute;top:8px;left:8px}.vtools button{border:1px solid var(--line);cursor:pointer;color:var(--dim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1d2125e0;border-radius:3px;padding:3px 8px;font-size:11.5px}.vtools button:hover{color:var(--fg)}.vtools button svg{display:block}.vtools button.on{color:var(--accent);border-color:var(--accent)}.vtools .vsep{background:var(--line);width:1px;margin:2px 3px}.fhLabel{pointer-events:none;font:600 11px var(--f-mono);color:var(--accent);border:1px solid var(--accent);white-space:nowrap;z-index:5;background:#0f1113e0;border-radius:3px;padding:2px 6px;position:absolute}.dimLbl{z-index:4;font:600 11px var(--f-mono);color:#f2c230;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#0f1113db;border:1px solid #f2c2308c;border-radius:3px;padding:1px 5px;position:absolute;top:0;left:0}.dimLbl.nb{color:#9fdcff;border-color:#4fc3f78c}.dimLbl.ed{cursor:text}.dimLbl.ed:hover{background:#0f1113f5;border-color:currentColor}.dimLbl input{width:52px;color:inherit;font:inherit;text-align:center;background:0 0;border:0;outline:none;padding:0}.dimLbl.rb{color:#9fd3ff;border-color:#5aa9e6b3}.dimLbl.rb i{opacity:.75;margin-right:2px;font-style:normal}.dimLbl.rb.zero{color:#06121a;background:#5aa9e6eb}.clrLbl{z-index:4;font:600 11px var(--f-mono);color:#d5dde6;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#0f1113db;border:1px dashed #b8c4d299;border-radius:9px;padding:1px 5px;position:absolute;top:0;left:0}.clrLbl.warn{color:#ffb54d;border:1px solid #ff9f1abf}.clrLbl.near{color:#fff;background:#e5484deb;border:1px solid #e5484d}.clrLbl.rob i{opacity:.7;margin-right:4px;font-style:normal;font-weight:500}.subsec{color:var(--dim);padding:2px 10px 0;font-size:11px}.place-check{gap:3px;padding:2px 10px 8px;font-size:11.5px;line-height:1.45;display:grid}.place-check .ok{color:var(--ok)}.place-check .bad{color:var(--bad)}.dimChip{z-index:3;font:11px var(--f-mono);color:var(--fg);border:1px solid var(--line);white-space:nowrap;pointer-events:none;background:#0f1113cc;border-radius:3px;padding:1px 6px;position:absolute;top:0;left:0}.fhHint{max-width:min(520px,100% - 16px);color:var(--dim);border:1px solid var(--line);pointer-events:none;text-align:center;background:#0f1113c7;border-radius:3px;padding:4px 10px;font-size:11.5px;position:absolute;bottom:8px;right:8px}.hud{font:11px/1.5 var(--f-mono);border:1px solid var(--line);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f1113b8;border-radius:3px;padding:4px 8px;position:absolute;bottom:8px;left:8px}.hud b{color:var(--accent);font-weight:500}.run-ind{font:600 11px var(--f-mono);letter-spacing:.06em;border:1px solid var(--ok);color:var(--ok);background:#0f1113d1;border-radius:3px;align-items:center;gap:6px;padding:4px 9px;display:none;position:absolute;top:10px;right:76px}.run-ind.on{display:flex}.run-ind.paused{border-color:var(--warn);color:var(--warn)}.run-ind i{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1s infinite blink}@keyframes blink{50%{opacity:.25}}.estop{border:3px solid var(--accent);background:radial-gradient(circle at 40% 35%,#ff6a6e,var(--bad) 60%,#9e1d22);color:#fff;width:48px;height:48px;font:700 9px var(--f-display);cursor:pointer;border-radius:50%;position:absolute;top:8px;right:10px;box-shadow:0 4px 14px #00000080}.estop:active{transform:scale(.95)}.estop.active{box-shadow:0 0 0 4px #e5484d80,0 0 24px var(--bad)}.toast{border:1px solid var(--line);border-left:3px solid var(--bad);background:#1d2125f2;border-radius:3px;max-width:min(560px,100% - 160px);padding:8px 12px;font-size:12.5px;display:none;position:absolute;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.toast.on{display:block}.toast b{font-family:var(--f-mono);color:var(--bad);margin-right:6px;font-weight:500}.loading{color:var(--dim);background:#121416;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.editor{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.etabs{border-bottom:1px solid var(--line);background:var(--deep);scrollbar-width:none;flex:none;align-items:stretch;display:flex;overflow-x:auto}.etab{border-right:1px solid var(--line);font:12px var(--f-mono);color:var(--dim);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 10px 6px 12px;display:flex}.etab.on{background:var(--panel);color:var(--fg);box-shadow:inset 0 2px 0 var(--accent)}.etab i{color:#111;background:var(--accent);border-radius:2px;padding:0 4px;font-size:9.5px;font-style:normal}.etab .x{color:var(--dim);border-radius:2px;padding:0 2px}.etab .x:hover{background:var(--raise);color:var(--fg)}.etab.new{color:var(--accent)}.etool{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:flex}.etool .sp{align-items:center;gap:6px;margin-left:auto;display:flex}.lsel{background:var(--raise);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:12px}.btn{background:var(--raise);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:3px;padding:5px 11px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn.sm{padding:2px 8px;font-size:12px}.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.code{flex:1;min-width:0;min-height:0;display:flex}.code .cm-editor{flex:1;min-width:0}.code .cm-editor.cm-focused{outline:0}.soon{text-align:center;color:var(--dim);flex:1;place-items:center;padding:20px;display:grid}.right{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;width:270px;min-height:0;display:flex}.ptabs{border-bottom:1px solid var(--line);flex:none;display:flex}.ptabs button{cursor:pointer;color:var(--dim);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:7px 4px;font-size:12px}.ptabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.ptabs .close{flex:none;padding:7px 9px}.props{grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;padding:10px;font-size:12px;display:grid}.props label{color:var(--dim)}.props .v{font-family:var(--f-mono)}.props select{background:var(--raise);border:1px solid var(--line);width:100%;font:12px var(--f-mono);border-radius:3px;padding:3px 6px}.sec.span{grid-column:1/-1;padding:0}.sec{font:600 10.5px var(--f-mono);color:var(--dim);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;padding:8px 10px 4px;display:flex}.seg{background:var(--raise);border-radius:3px;gap:2px;margin:8px 10px;padding:2px;display:flex}.seg button{cursor:pointer;color:var(--dim);background:0 0;border:0;border-radius:2px;flex:1;padding:4px 2px;font-size:11.5px}.seg button.on{background:var(--panel);color:var(--accent)}.jog{grid-template-columns:38px 1fr 38px;align-items:center;gap:5px;padding:0 10px 5px;display:grid}.jog .k{background:var(--raise);border:1px solid var(--line);height:32px;font:600 17px var(--f-mono);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:3px}.jog .k:hover{border-color:var(--accent)}.jog .k.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.lcd{background:var(--deep);border:1px solid var(--line);font:12px var(--f-mono);border-radius:3px;justify-content:space-between;padding:4px 8px;display:flex;position:relative;overflow:hidden}.lcd span{color:var(--dim)}.lcd i{background:var(--ok);height:2px;position:absolute;bottom:0;left:0}.lcd i.near{background:var(--warn)}.jlcd{grid-template-columns:1fr 1fr;gap:4px;padding:0 10px 6px;display:grid}.cfg{text-align:center;font:12px var(--f-mono);grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 10px 10px;display:grid}.cfg div{background:var(--raise);border-radius:3px;padding:3px}.cfg small{color:var(--dim);font-size:10px;display:block}.jrow{color:var(--dim);flex-wrap:wrap;align-items:center;gap:6px;padding:2px 10px 8px;font-size:12px;display:flex}.jrow select{background:var(--raise);border:1px solid var(--line);border-radius:3px;padding:2px 4px;font-size:12px}.jrow input[type=range]{accent-color:var(--accent);flex:1;width:60px;min-width:40px}.io{font:12px var(--f-mono);grid-template-columns:1fr auto auto;align-items:center;gap:6px 8px;padding:10px;display:grid}.led{vertical-align:-1px;background:#333a41;border-radius:50%;width:10px;height:10px;margin-right:7px;display:inline-block}.led.on{background:var(--ok);box-shadow:0 0 7px var(--ok)}.io button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:1px 8px;font-size:11px}.io .note{color:var(--dim);font:11.5px var(--f-body);grid-column:1/-1}.tree{margin:0;padding:4px 0;list-style:none}.tree li{padding:4px 10px 4px calc(10px + var(--d,0)*14px);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;display:flex}.tree li:hover{background:var(--raise)}.tree li.head{cursor:default}.tree li.head:hover{background:0 0}.tree li.sel{color:var(--accent);background:#f2c2301a}.tree .k{width:10px;color:var(--dim);flex:none;font-size:10px}.tree .t{align-items:center;gap:4px;margin-left:auto;display:flex}.tree .nm{text-overflow:ellipsis;overflow:hidden}.tree .nmEdit{background:var(--bg,#111);min-width:0;color:inherit;border:1px solid var(--accent);font:inherit;border-radius:3px;flex:1;padding:1px 4px}.tree .mini{border:1px solid var(--line);cursor:pointer;color:var(--dim);background:0 0;border-radius:3px;padding:0 6px;font-size:11px}.tree .mini:hover{color:var(--fg);border-color:var(--accent)}.tree li .mini{visibility:hidden}.tree li:hover .mini,.tree li.sel .mini{visibility:visible}.tree.files li .mini{display:none}.tree.files li:hover .mini,.tree.files li:focus-within .mini{visibility:visible;display:inline-block}.tree.files li .k{color:var(--accent)}.tree.files li.active .nm{color:var(--fg);font-weight:600}.tree li:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.empty.hint{padding:6px 12px;font-size:11px}.bottom{border-top:1px solid var(--line);background:var(--panel);flex-direction:column;flex:none;height:170px;display:flex}.btabs{border-bottom:1px solid var(--line);scrollbar-width:none;flex:none;align-items:center;gap:2px;padding:0 8px;display:flex;overflow-x:auto}.btabs button{cursor:pointer;color:var(--dim);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:5px 10px;font-size:12px}.btabs button.on{color:var(--fg);border-bottom-color:var(--accent)}.btabs .r{gap:2px;margin-left:auto;display:flex}.bv{flex:1;display:block;overflow:auto}.log{font:12px/1.65 var(--f-mono);padding:4px 10px}.log>div{white-space:pre-wrap}.log .w{color:var(--warn)}.log .o{color:var(--ok)}.log .e{color:var(--bad)}.log .tp{color:#cfe5f7}.log span{color:var(--dim);margin-right:8px}.log a{color:inherit;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.log a:hover{color:var(--accent)}.tlempty{padding:10px 12px}.tl{flex-direction:column;gap:6px;min-width:0;padding:6px 10px 8px;display:flex}.tlhead{flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.tlhead .btn{margin-left:auto}.gantt{background:var(--deep);border:1px solid var(--line);border-radius:3px;flex:none;height:16px;position:relative;overflow:hidden}.gantt i{background:var(--info);cursor:pointer;border-radius:1px;position:absolute;top:2px;bottom:2px}.gantt i.w{background:var(--warn)}.gantt i:hover{background:var(--accent)}.tltbl tbody tr{cursor:pointer}.tltbl tbody tr:hover td{background:var(--raise)}.tltbl td.code{text-overflow:ellipsis;max-width:320px;overflow:hidden}.tltbl .bar{width:30%;min-width:80px}.tltbl td.bar i{background:var(--info);border-radius:2px;min-width:2px;height:8px;display:block}.tltbl td.bar i.w{background:var(--warn)}.tbl{border-collapse:collapse;width:100%;font:12px var(--f-mono)}.tbl td,.tbl th{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:4px 10px}.tbl th{color:var(--dim);font:500 11px var(--f-body);background:var(--panel);position:sticky;top:0}.uav-lab{color:#dceaf2;--uav:#56d6ff;--uavline:#234050;background:#09131d;flex-direction:column;height:100vh;display:flex;overflow:hidden}.uav-head{border-bottom:1px solid var(--uavline);background:#0d1923;flex:none;align-items:center;gap:18px;height:62px;padding:0 14px;display:flex}.uav-head .logo{white-space:nowrap}.uav-head .logo span{color:var(--uav)}.uav-title{flex-direction:column;flex:1;min-width:0;display:flex}.uav-title b{font:600 14px var(--f-display);letter-spacing:.02em}.uav-title small{color:#7f9dac;margin-top:2px}.uav-main{flex:1;grid-template-columns:300px minmax(420px,1fr) 300px;min-height:0;display:grid}.uav-panel{border-color:var(--uavline);scrollbar-color:#315164 #0d1923;background:#0d1923;min-height:0;padding:12px;overflow:auto}.uav-panel.controls{border-right:1px solid var(--uavline)}.uav-side{border-left:1px solid var(--uavline);background:#0d1923;flex-direction:column;min-width:0;min-height:0;display:flex}.uav-side[hidden]{display:none}.uav-side>.uav-panel.telemetry{flex:1 1 0;min-height:120px}.uav-guide{border-top:2px solid var(--uavline);background:#0b161f;flex-direction:column;flex:none;min-height:0;max-height:46%;display:flex}.uav-guide.open{flex-basis:40%}.uav-guide>.uav-tabs{gap:4px;margin:0;padding:6px 8px 0;display:flex}.uav-guide>.uav-tabs button{white-space:nowrap;flex:1;padding-left:4px;padding-right:4px;font-size:11.5px}.uav-guide>.uav-tabs button.fold{flex:0 0 30px}.uav-guide-body{color:#b9cdd8;scrollbar-color:#315164 #0b161f;padding:4px 12px 12px;font-size:12px;line-height:1.5;overflow:auto}.uav-guide details{border-bottom:1px solid #1a3241;padding:4px 0}.uav-guide summary{cursor:pointer;color:#e3f1f8;padding:4px 0;font-weight:600}.uav-guide ol,.uav-guide ul{margin:4px 0 6px;padding-left:18px}.uav-guide li{margin:3px 0}.uav-guide kbd{color:#fff;min-width:16px;font:600 10.5px var(--f-mono);text-align:center;background:#132733;border:1px solid #3b5d70;border-bottom-width:2px;border-radius:3px;margin:0 1px;padding:0 4px;display:inline-block}.uav-guide code{font:11px var(--f-mono);color:#9fe6ff;background:#132733;border-radius:3px;padding:0 3px}.uav-guide .dim{color:#7f9dac;font-size:11px}.uav-zc{border-radius:3px;padding:0 5px}.uav-zc.red{color:#ff8a80;background:#ff3b3033}.uav-zc.yellow{color:#ffe082;background:#ffc21a33}.uav-zc.green{color:#a5f2c0;background:#2ecc7133}.uav-panel h2{font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--uav);border-bottom:1px solid var(--uavline);margin:7px 0 10px;padding:7px 0}.uav-panel h2:first-child{margin-top:0}.uav-panel h3{font:600 10.5px var(--f-mono);color:#7f9dac;text-transform:uppercase;letter-spacing:.08em;margin:12px 0 4px}.uav-panel label{color:#a6bbc6;flex-direction:column;gap:5px;margin:9px 0;font-size:12px;display:flex}.uav-panel label b{color:#fff}.uav-panel select,.uav-panel input[type=number]{color:#e8f5fb;font:12px var(--f-mono);background:#142633;border:1px solid #315164;border-radius:4px;min-width:0;padding:6px 8px}.uav-panel input[type=range]{width:100%;accent-color:var(--uav)}.uav-spec{grid-template-columns:1fr 1fr;gap:6px;display:grid}.uav-spec span{color:#7997a6;background:#132430;border:1px solid #203b4b;border-radius:4px;padding:7px;font-size:10.5px}.uav-spec b{color:#e9f7fd;font:12px var(--f-mono);margin-top:2px;display:block}.uav-seg{background:#142633;border-radius:4px;padding:3px;display:flex}.uav-seg button{color:#8aa6b5;cursor:pointer;background:0 0;border:0;border-radius:3px;flex:1;padding:6px}.uav-seg button.on{color:var(--uav);background:#1d4558;box-shadow:inset 0 0 0 1px #34728e}.uav-note{color:#7895a4;margin:7px 1px;font-size:11px;line-height:1.45}.uav-goal{border:1px solid var(--uavline);color:#7f9dac;background:#10212c;border-radius:4px;padding:8px;font-size:11px}.uav-goal div{grid-template-columns:repeat(3,1fr);gap:4px;margin:5px 0;display:grid}.uav-goal .btn{width:100%;padding:5px;font-size:11px}.uav-actions{grid-template-columns:1fr 1fr;gap:6px;margin-top:14px;display:grid}.uav-actions button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:8px}.uav-actions button:disabled{opacity:.35;cursor:default}.uav-actions .run{color:#fff;background:#177b60;border-color:#32c793;grid-column:1/-1;font-weight:700}.uav-view{flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.uav-stagebox{flex:1;min-height:0;position:relative}.uav-prog{border-top:1px solid var(--uavline);background:#0b1720;flex-direction:column;flex:0 0 46%;min-height:0;display:flex}.uav-prog[hidden]{display:none}.uav-progbar{border-bottom:1px solid var(--uavline);background:#0d1923;align-items:center;gap:8px;padding:6px 10px;display:flex}.uav-progbar b{font:600 11px var(--f-mono);color:var(--uav);letter-spacing:.06em;text-transform:uppercase;margin-right:auto}.uav-progbar select{color:#e8f5fb;background:#142633;border:1px solid #315164;border-radius:4px;max-width:280px;padding:4px 6px;font-size:12px}.uav-progbar button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:5px 10px}.uav-progbar button:disabled{opacity:.4;cursor:default}.uav-progbar .run{color:#fff;background:#177b60;border-color:#32c793;font-weight:700}.uav-progbody{flex:1;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);min-height:0;display:grid}.uav-code{min-height:0;overflow:hidden}.uav-code .cm-editor{height:100%}.uav-console{border-left:1px solid var(--uavline);min-height:0;font:11.5px/1.5 var(--f-mono);white-space:pre-wrap;color:#cfe3ee;padding:8px 10px;overflow:auto}.uav-console .err{color:#ff8a8f}.uav-console .hint{color:#f2d27a;border-left:2px solid #f2c2308c;margin-left:2px;padding-left:6px}.uav-console .info{color:#63e6a5}.uav-console .dim{color:#56717f}.uav-api code{font:11px var(--f-mono);color:#9fe6ff}.uav-canvas,.uav-canvas canvas{width:100%;height:100%;display:block}.uav-viewtools{gap:4px;display:flex;position:absolute;top:10px;left:10px}.uav-viewtools button{color:#88a7b7;cursor:pointer;background:#09131de0;border:1px solid #315164;border-radius:3px;padding:5px 9px}.uav-viewtools button.on{color:var(--uav);border-color:var(--uav)}.uav-legend{background:#09131dcc;border-radius:3px;gap:12px;padding:5px 8px;font-size:10.5px;display:flex;position:absolute;top:49px;left:10px}.uav-legend .plan{color:#56d6ff}.uav-legend .real{color:#63e6a5}.uav-legend .obs{color:#ff5a63}.uav-legend .zr{color:#ff6b61}.uav-legend .zy{color:#ffc21a}.uav-legend .zg{color:#3fd47f}.uav-flight{color:#8ba4b1;font:700 10.5px var(--f-mono);letter-spacing:.06em;background:#09131de0;border:1px solid #526c79;border-radius:3px;padding:6px 10px;position:absolute;top:12px;right:12px}.uav-flight.flying,.uav-flight.done{color:#63e6a5;border-color:#63e6a5}.uav-flight.crash{color:#ff5a63;border-color:#ff5a63}.uav-flight.timeout{color:#ffb454;border-color:#ffb454}.uav-types{grid-template-columns:1fr 1fr;gap:4px;display:grid}.uav-types button{color:#8aa6b5;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:8px 6px;font-weight:600}.uav-types button.on{color:var(--uav);border-color:var(--uav);background:#1d4558}.uav-note .pro{color:#ff7b7b}.uav-note .con{color:#56b4ff}.uav-mode{color:#cfe6f1;font:11px var(--f-mono);background:#09131de0;border:1px solid #294859;border-radius:3px;padding:5px 10px;position:absolute;top:44px;right:12px}.uav-acts{flex-direction:column;gap:5px;display:flex}.uav-act{color:#7f9dac;grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;font-size:10.5px;display:grid}.uav-act i{background:#0a151e;border:1px solid #203b4b;border-radius:2px;height:8px;position:relative;overflow:hidden}.uav-act em{opacity:.8;background:#56d6ff;position:absolute;top:0;bottom:0}.uav-act b{font:10.5px var(--f-mono);color:#e9f7fd;text-align:right;min-width:58px}.uav-mini{float:right;color:#bfd3de;font:10px var(--f-mono);cursor:pointer;text-transform:none;letter-spacing:0;background:#142633;border:1px solid #315164;border-radius:3px;padding:2px 8px}.uav-runs{max-height:220px;overflow:auto}.uav-runs th{white-space:normal}.uav-warn{color:#ff8a8f;margin:6px 0 0;font-size:11px;line-height:1.4}.uav-rotors{align-items:stretch;gap:4px;height:58px;display:flex}.uav-rotors div{background:#0a151e;border:1px solid #203b4b;border-radius:3px;flex-direction:column;flex:1;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.uav-rotors i{opacity:.75;background:#56d6ff;display:block}.uav-rotors span{text-align:center;font:10px var(--f-mono);color:#7f9dac;position:absolute;top:2px;left:0;right:0}.uav-hud{font:11px/1.55 var(--f-mono);color:#8ba9b8;background:#09131dd6;border:1px solid #294859;border-radius:3px;padding:6px 9px;position:absolute;bottom:10px;left:10px}.uav-hud b{color:#eaf8ff}.uav-kpis{grid-template-columns:1fr 1fr;gap:6px;display:grid}.uav-kpis div{background:#132430;border:1px solid #203b4b;border-radius:4px;padding:7px}.uav-kpis span{color:#73909f;font-size:10.5px;display:block}.uav-kpis b{color:#e9f7fd;font:13px var(--f-mono);margin-top:3px;display:block}.uav-panel table{border-collapse:collapse;width:100%;font:11.5px var(--f-mono)}.uav-panel th,.uav-panel td{border-bottom:1px solid #1d3442;padding:3px 7px}.uav-panel th{color:#718e9e;text-align:left;font-weight:400}.uav-panel td{text-align:right;color:#edf9ff}.uav-chart{background:#0a151e;border:1px solid #203b4b;border-radius:3px;width:100%;height:66px;display:block}.uav-chart line{stroke:#294554;stroke-width:1px}.uav-chart polyline{fill:none;stroke-width:2.2px;vector-effect:non-scaling-stroke}.uav-metrics{grid-template-columns:1fr 1fr;gap:5px;display:grid}.uav-metrics span{color:#718e9e;background:#132430;padding:6px;font-size:10.5px}.uav-metrics b{color:#f0fbff;font:11.5px var(--f-mono);margin-top:2px;display:block}@media (max-width:1050px){.uav-main{grid-template-columns:260px 1fr}.uav-side,.uav-title small{display:none}}.status{background:var(--deep);border-top:1px solid var(--line);height:24px;font:11.5px var(--f-mono);color:var(--dim);white-space:nowrap;flex:none;align-items:center;gap:14px;padding:0 10px;display:flex;overflow:hidden}.status b{color:var(--fg);font-weight:500}.status .ok{color:var(--ok)}.status .bad{color:var(--bad)}.status .warn{color:var(--warn)}.status .r{align-items:center;gap:14px;margin-left:auto;display:flex}.status .ib{font:inherit;padding:0 6px}.modal{z-index:60;background:#0000008c;place-items:center;padding:16px;display:none;position:fixed;inset:0}.modal.on{display:grid}.dlg{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:min(560px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #00000080}.dlg header{border-bottom:1px solid var(--line);align-items:center;padding:12px 14px;display:flex}.dlg header h3{font:600 15px var(--f-display);letter-spacing:.03em;margin:0}.dlg header button{color:var(--dim);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:16px}.dlg .bd{padding:14px}.dlg .bd p{margin:0 0 10px}.dlg .ft{border-top:1px solid var(--line);justify-content:flex-end;gap:6px;padding:10px 14px;display:flex}.dlg input[type=text]{background:var(--raise);border:1px solid var(--line);width:100%;font:13px var(--f-mono);border-radius:3px;padding:6px 8px}.opt{border:1px solid var(--line);cursor:pointer;border-radius:4px;align-items:flex-start;gap:10px;margin-bottom:6px;padding:9px 10px;display:flex}.opt:hover,.opt.on{border-color:var(--accent)}.opt.off{opacity:.5;cursor:not-allowed}.opt.off:hover{border-color:var(--line)}.opt .lg{width:30px;height:30px;font:700 11px var(--f-mono);border-radius:4px;flex:none;place-items:center;display:grid}.opt p{color:var(--dim);font-size:12px;margin:2px 0 0!important}.ogh{font:600 10.5px var(--f-mono);color:var(--dim);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 6px}.keys{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;font-size:13px;display:grid}.keys .kbd{justify-self:start}.keys .note{grid-column:1/-1;font-size:12px}.kbd{font:11px var(--f-mono);border:1px solid var(--line);color:var(--fg);border-bottom-width:2px;border-radius:3px;padding:0 5px}@media (max-width:1100px){.left{width:200px}.right{width:240px}.rb span{display:none}.rb{padding:3px 6px}}@media (max-width:760px){body{height:auto;overflow:auto}#root{height:auto}.main{flex-direction:column}.act{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;width:auto;padding:0 4px}.act button{border-bottom:2px solid #0000;border-left:0}.act button.on{border-bottom-color:var(--accent)}.left,.right{border:0;border-bottom:1px solid var(--line);width:auto;max-height:320px}.split,.split.side{flex-direction:column}.viewwrap{height:56vh;min-height:360px;flex:none!important}.editor{min-height:360px}.gutter{display:none}.dock,.dock.row{flex-direction:column;flex:none}.codewrap{min-height:360px}.dock.row>.bottom{border-left:0;border-top:1px solid var(--line);min-height:160px}.stname,.status .r{display:none}.menubar{overflow:hidden}.menubar>.ib,.robsel>button .dim,.mbr .ib{display:none}.logo{margin-right:0;font-size:12px}}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){.run-ind i{animation:none}}.lib{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;padding:8px;display:grid}.libItem{background:var(--raise);border:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;text-align:center;color:var(--fg);border-radius:4px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;display:flex}.libItem:hover{border-color:var(--accent)}.libItem:active{cursor:grabbing}.libItem svg{color:var(--accent)}.libItem b{font-size:12px;font-weight:500}.libItem small{font:10px var(--f-mono);color:var(--dim)}.libSec{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:8px 10px 0;font-size:11px;font-weight:600}.libItem.mine{position:relative}.libDel{width:18px;height:18px;color:var(--dim);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:3px;padding:0;font-size:11px;position:absolute;top:2px;right:2px}.libItem.mine:hover .libDel,.libDel:focus-visible{opacity:1}.libDel:hover{color:var(--fg);background:var(--line)}.libItem.mine b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.libImport{border-bottom:1px solid var(--line);padding:4px 8px 8px}.libImport .btn{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.libImport p{margin:6px 0 0;font-size:11.5px}.libHelp{flex-direction:column;gap:3px;padding:8px 10px;font-size:11.5px;display:flex}.libHelp b{color:var(--fg);font-weight:500}.marquee{border:1px dashed var(--accent);pointer-events:none;z-index:4;background:#f2c23014;position:absolute}.dropHint{border:1px solid var(--accent);color:var(--accent);pointer-events:none;white-space:nowrap;background:#0f1113e0;border-radius:3px;padding:5px 12px;font-size:12px;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.ctx{z-index:70;background:var(--panel);border:1px solid var(--line);border-radius:4px;flex-direction:column;min-width:220px;padding:4px;display:flex;position:fixed;box-shadow:0 12px 30px #00000080}.ctx button{text-align:left;cursor:pointer;color:var(--fg);background:0 0;border:0;border-radius:3px;align-items:center;gap:8px;padding:6px 10px;display:flex}.ctx button:hover:not(:disabled){background:var(--raise)}.ctx button.danger{color:var(--bad)}.ctx kbd{font:10.5px var(--f-mono);color:var(--dim);margin-left:auto}.ctx hr{border:0;border-top:1px solid var(--line);margin:4px 0}.ctxHead{font:600 11px var(--f-mono);color:var(--dim);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;max-width:260px;padding:4px 10px 6px;overflow:hidden}.nums{grid-template-columns:1fr 1fr;gap:6px;padding:4px 10px 8px;display:grid}.num{background:var(--deep);border:1px solid var(--line);border-radius:3px;align-items:center;gap:6px;min-width:0;padding:0 6px;display:flex}.num.wide{grid-column:1/-1}.num>span{color:var(--dim);white-space:nowrap;font-size:11.5px}.num input,.num select{min-width:0;font:12px var(--f-mono);color:var(--fg);text-align:right;background:0 0;border:0;outline:none;flex:1;padding:4px 0}.num input[type=text]{text-align:left;font-family:var(--f-body)}.num input[type=color]{flex:0 0 40px;height:24px;margin-left:auto;padding:0}.num input:disabled{color:var(--dim)}.num:focus-within{border-color:var(--accent)}.num i{font:normal 10.5px var(--f-mono);color:var(--dim)}.mount{grid-template-columns:1fr 1fr;gap:4px;padding:4px 10px 8px;display:grid}.mount button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:5px;font-size:12px}.mount button.on{border-color:var(--accent);color:var(--accent);background:#f2c23014}.tools{flex-direction:column;gap:4px;padding:4px 10px 8px;display:flex}.tools button{text-align:left;background:var(--raise);border:1px solid var(--line);cursor:pointer;color:inherit;border-radius:3px;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 8px;font-size:12px;display:flex}.tools button span{opacity:.75;font-size:11px}.tools button i{opacity:.55;font-size:10.5px;font-style:normal}.tools button.on{border-color:var(--accent);background:#f2c23014}.tools button.on b{color:var(--accent)}.tools button:disabled{cursor:not-allowed;opacity:.6}.checks{flex-direction:column;gap:4px;padding:2px 10px 8px;font-size:12px;display:flex}.checks input{accent-color:var(--accent)}.acts{flex-wrap:wrap;gap:4px;padding:2px 10px 8px;display:flex}.btn.danger{color:var(--bad)}.btn.danger:hover:not(:disabled){border-color:var(--bad)}.pv>.note{color:var(--dim);margin:0 10px 8px;font-size:11.5px}.pv>.note.warn{color:var(--warn)}.lockset{border:0;min-width:0;margin:0;padding:0}.note.lockbar{border:1px solid var(--warn);color:var(--warn);border-radius:4px;justify-content:space-between;align-items:center;gap:8px;margin:8px 10px;padding:6px 8px;font-size:12px;display:flex}.tree.mini-list{border-bottom:1px solid var(--line);max-height:150px;overflow:auto}.pdbox{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.pdqr{background:#fff;border-radius:4px;flex:none;place-items:center;width:200px;height:200px;display:grid}.pdqr img{image-rendering:pixelated;display:block}.pdinfo{flex:1;min-width:220px;font-size:13px}.pdinfo p{margin:0 0 8px}.pdcode{font:700 34px/1.1 var(--f-mono);letter-spacing:.18em;color:var(--accent);margin:4px 0 10px}.pdwarn{color:var(--warn)}.pdst{color:var(--dim);font-size:12px}.pdst.ok{color:var(--ok)}.arpick{align-items:center;gap:10px;margin:10px 0;display:flex}.arpick .btn{min-width:150px}.arpick span{font-size:12px}.arov{pointer-events:none;font:14px var(--f-body);color:#fff;flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:fixed;inset:0}.arhint{text-align:center;background:#0000008c;border-radius:6px;align-self:center;max-width:420px;padding:8px 12px}.arbtns{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.arbtns button{pointer-events:auto;color:#fff;background:#141619cc;border:1px solid #ffffff59;border-radius:22px;padding:10px 16px;font-size:14px}.view.surfpick canvas{cursor:crosshair}.recent{margin:0;padding:0;list-style:none}.recent li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:7px 0;display:flex}.recent li>div{flex:1;min-width:0}.recent small{font-size:11px;display:block}.wz{flex:1;grid-template-columns:170px minmax(0,1fr) minmax(0,.8fr);min-height:0;display:grid;overflow:hidden}.wzpal,.wzprog,.wzgen{min-height:0;padding:8px;overflow:auto}.wzpal{border-right:1px solid var(--line);background:var(--deep)}.wzgh{font:500 11px var(--f-body);color:var(--dim);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px}.wzpb{text-align:left;background:var(--raise);border:1px solid var(--line);cursor:grab;border-left:4px solid;border-radius:3px;width:100%;margin-bottom:4px;padding:5px 8px;font-size:12px;display:block}.wzpb:hover:not(:disabled){border-color:var(--accent)}.wznote{margin-top:10px;font-size:11px}.wzhead{font:600 12px var(--f-display);letter-spacing:.04em;margin-bottom:4px}.wzb{background:var(--raise);border:1px solid var(--line);cursor:grab;border-left:4px solid;border-radius:4px;padding:5px 8px}.wzb.sel{border-color:var(--accent)}.wzb.run{box-shadow:0 0 0 2px var(--accent);background:#3a3420}.wzrow{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.wzrow b{margin-right:2px;font-weight:600}.wzrow select,.wzrow input{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:1px 4px;font-size:12px}.wzrow input[type=number]{width:62px}.wzrow input[type=text]{flex:1;min-width:140px}.wzpt{color:var(--dim);font-size:11px}.wzpt.bad{color:var(--bad)}.wzx{color:var(--dim);cursor:pointer;background:0 0;border:0;margin-left:auto}.wzx:hover{color:var(--bad)}.wzbody{border-left:2px dashed var(--line);margin:6px 0 2px 10px;padding-left:6px}.wzhint{padding:4px;font-size:11px}.wzgap{border-radius:2px;height:6px}.wzgap.last{height:18px}.wzgap.on{background:var(--accent);height:8px}.wzgen{border-left:1px solid var(--line)}.wzgen pre{font:11.5px/1.55 var(--f-mono);color:#cfd5da;margin:0}.wzgen pre div.on{color:var(--accent);background:#3a3420}@media (max-width:900px){.wz{grid-template-columns:130px 1fr}.wzgen{display:none}}.acct{flex-direction:column;height:100%;display:flex;overflow:auto}.acctbar{background:var(--deep);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;height:46px;padding:0 16px;display:flex}.acctbar nav{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.acctbar nav a{color:var(--dim);border-bottom:2px solid #0000;padding:4px 6px;text-decoration:none}.acctbar nav a.on,.acctbar nav a:hover{color:var(--fg);border-bottom-color:var(--accent)}.acctmain{flex:1;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:min(400px,100%);padding:20px 22px}.card.wide{width:min(1100px,100%)}.card h1{font:600 20px var(--f-display);letter-spacing:.02em;margin:0 0 6px}.login{flex-direction:column;gap:10px;margin-top:6vh;display:flex}.login label,.formcol label{color:var(--dim);flex-direction:column;gap:4px;font-size:12px;display:flex}.login input,.formcol input,.newuser input,.newuser select,.vrow input{background:var(--deep);border:1px solid var(--line);color:var(--fg);border-radius:4px;padding:7px 9px;font-size:13px}.login .btn{padding:8px}.formcol{flex-direction:column;gap:10px;display:flex}.small{font-size:11.5px}.ferr{color:var(--bad);margin:4px 0}.fok{color:var(--ok);margin:4px 0}.phead{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.phead .sp{flex:1}.ptbl td{white-space:normal}.ptbl .acts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.ptbl a.btn{color:inherit;text-decoration:none}.ptbl a.btn.pri{color:var(--accent-ink)}.pname{color:var(--fg);font-weight:600;text-decoration:none}.pname:hover{color:var(--accent)}.ptbl tr.locked td{opacity:.6}.offer{background:#2a2614;border:1px solid #5a4d12;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;display:flex}.newuser{flex-wrap:wrap;gap:8px;margin:8px 0 12px;display:flex}.newuser input{flex:1;min-width:140px}.vrow{gap:8px;margin-bottom:10px;display:flex}.vrow input{flex:1}.pbadge{position:relative}.pbadge>button{background:var(--raise);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:3px;align-items:center;gap:6px;padding:3px 10px;display:flex}.pbadge>button b{font-family:var(--f-display);font-size:13px}.pbadge b{text-overflow:ellipsis;max-width:180px;overflow:hidden}.savest{font:500 10.5px var(--f-mono);border:1px solid var(--line);color:var(--dim);border-radius:3px;padding:1px 6px}.savest.saved{color:var(--ok);border-color:#2d5a3b}.savest.dirty,.savest.saving{color:var(--warn);border-color:#6b4a1d}.savest.conflict,.savest.error{color:#fff;background:var(--bad);border-color:var(--bad)}.robar{color:#f2dc8c;background:#2a2614;border-bottom:1px solid #5a4d12;flex:none;padding:5px 12px;font-size:12px}.bootErr{text-align:center;padding:40px}@media (max-width:700px){.stname{display:none}.pbadge b{max-width:90px}}.bld{z-index:50;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.bldLoading{color:var(--dim);place-items:center;display:grid}.bldTop{background:var(--deep);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;height:44px;padding:0 8px;display:flex}.bldTop .logo{margin-right:2px}.bldBack{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;align-items:center;gap:4px;padding:3px 9px;display:flex}.bldBack svg{transform:rotate(90deg)}.bldName{background:var(--panel);border:1px solid var(--line);width:220px;font-family:var(--f-display);border-radius:3px;padding:4px 8px;font-size:14px}.bldTop .drop{min-width:300px;max-height:70vh;left:0;right:auto;overflow:auto}.bldTop .drop hr{border:0;border-top:1px solid var(--line);margin:4px 0}.bldTop .drop .it svg{flex:none;width:16px;height:16px}.bldTop .rg{border:0;height:30px}.seg{border:1px solid var(--line);border-radius:4px;flex:none;display:flex;overflow:hidden}.seg button{white-space:nowrap;cursor:pointer;color:var(--dim);background:0 0;border:0;align-items:center;gap:6px;padding:5px 12px;display:flex}.seg button svg{width:15px;height:15px}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.bldMain{flex:1;min-height:0;display:flex}.bldLib{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;width:286px;min-height:0;display:flex}.bldSide{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;width:318px;min-height:0;display:flex}.bldLib .ph,.bldSide .ph{font:600 11px var(--f-display);text-transform:uppercase;letter-spacing:.06em;color:var(--dim);border-bottom:1px solid var(--line);padding:7px 10px;display:flex}.bldLib .ph .r{margin-left:auto}.bldView{flex:1;min-width:0;position:relative}.bldCanvas{position:absolute;inset:0}.bldCanvas canvas{display:block}.bldHint{border:1px solid var(--line);color:var(--dim);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#0f1113d1;border-radius:4px;max-width:calc(100% - 24px);padding:5px 12px;font-size:12px;position:absolute;bottom:12px;left:50%;overflow:hidden;transform:translate(-50%)}.bldHint.hold{color:var(--accent);border-color:var(--accent)}.bldIssues{flex-direction:column;gap:4px;max-width:min(520px,70%);display:flex;position:absolute;top:10px;left:10px}.bldIssues>div{border:1px solid var(--line);border-left:3px solid var(--warn);cursor:pointer;background:#0f1113e0;border-radius:3px;padding:4px 8px;font-size:12px}.bldIssues>div.err{border-left-color:var(--bad)}.bldScroll{flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow:auto}.bldCard{background:var(--raise);border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.bldCard p{margin:2px 0}.bldCard.selfHit{border-color:var(--bad);color:var(--bad)}.bldCard.selfHit b{color:var(--bad)}.bldCard .small,.bldCard p.small{font-size:11px}.bldCard .kv{justify-content:space-between;gap:10px;font-size:12px;display:flex}.bldCard .kv span{color:var(--dim)}.bldCard .kv b{text-align:right;font-weight:500}.bldCard .row{justify-content:space-between;align-items:center;gap:8px;display:flex}.bldBtns{gap:6px;margin-top:4px;display:flex}.bldBtns button,.mini{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:3px 9px;font-size:12px}.bldBtns button:hover,.mini:hover{border-color:var(--info)}.bldBtns .bad{color:var(--bad)}.chk{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;margin-right:8px;font-size:11.5px;display:inline-flex}.legend i{border-radius:50%;width:9px;height:9px;display:inline-block}.legend p{font-size:11.5px}.sl{grid-template-columns:24px 1fr 56px;align-items:center;gap:6px;font-size:12px;display:grid}.sl input{width:100%;accent-color:var(--accent)}.sl .mono{text-align:right}.tcpRd{color:var(--dim);font-size:11.5px}.tq{grid-template-columns:24px 1fr 42px;align-items:center;gap:6px;font-size:12px;display:grid}.tq .bar{background:var(--deep);border-radius:4px;height:8px;position:relative;overflow:hidden}.tq .bar i{border-radius:4px;position:absolute;top:0;bottom:0;left:0}.tq .bar em{background:#fff;width:2px;margin-left:-1px;position:absolute;top:-1px;bottom:-1px}.tq i.ok{background:var(--ok)}.tq i.warn{background:var(--warn)}.tq i.bad{background:var(--bad)}.tq .ok{color:var(--ok)}.tq .warn{color:var(--warn)}.tq .bad{color:var(--bad)}.tq .mono{text-align:right}.pay{color:var(--dim);align-items:center;gap:4px;font-size:12px;display:flex}.pay input{background:var(--deep);border:1px solid var(--line);border-radius:3px;width:60px;padding:1px 4px}@media (max-width:900px){.bldLib{width:200px}.bldSide{width:240px}.bldName{width:130px}.bldTop .logo{display:none}}.bldLib{width:270px}.ttools{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:6px 8px;display:flex}.ttools .robsel .drop,.bldBtns .robsel .drop{min-width:270px;left:0;right:auto}.drop .grp{color:var(--dim);text-transform:uppercase;letter-spacing:.05em;padding:6px 9px 2px;font-size:10.5px;display:block}.bldTree{flex:1;padding:4px 0;overflow:auto}.trow{cursor:pointer;white-space:nowrap;border-left:2px solid #0000;align-items:center;gap:6px;padding:3px 8px;font-size:12.5px;display:flex}.trow:hover{background:var(--raise)}.trow.on{border-left-color:var(--accent);background:#3a3420}.trow i{text-align:center;width:14px;color:var(--dim);font-style:normal}.trow.joint i{color:var(--accent)}.trow.tcp i{color:var(--bad)}.trow span{text-overflow:ellipsis;overflow:hidden}.trow small{color:var(--dim)}.trow em{color:var(--dim);margin-left:auto;font-size:11px;font-style:normal}.tsep{color:var(--warn);text-transform:uppercase;padding:6px 8px 2px;font-size:11px}.tnote{border-top:1px solid var(--line);margin:0;padding:6px 10px;font-size:11.5px}.bvtools{border:1px solid var(--line);background:#0f1113d1;border-radius:4px;flex-direction:column;gap:2px;padding:3px;display:flex;position:absolute;top:10px;right:10px}.bvtools .rb{justify-content:center;padding:4px}.num{align-items:center;gap:5px;min-width:0;font-size:12px;display:flex}.num span{color:var(--dim);white-space:nowrap}.num input,.num select{background:var(--deep);border:1px solid var(--line);border-radius:3px;flex:1;width:100%;min-width:0;padding:2px 5px}.num em{color:var(--dim);font-size:11px;font-style:normal}.v3{align-items:center;gap:6px;display:flex}.v3 .num{flex:1}.bldCard .sub{color:var(--dim);margin-top:4px;font-size:11.5px;font-weight:500}.bldCard p.lim{color:var(--dim);margin:2px 0 0}.bldCard p.lim.warn{color:var(--warn)}.bldCard p.lim.bad{color:var(--bad)}.mini.wide{text-align:left;width:100%}.mini.on{border-color:var(--accent);color:var(--accent)}.warnTxt{color:var(--warn);font-size:12px}.skEd{background:var(--panel);border-right:2px solid var(--accent);z-index:5;flex-direction:column;width:min(62%,900px);display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:8px 0 24px #0006}.skHead{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 8px;display:flex}.skTools{gap:2px;display:flex}.skTools button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;min-width:32px;height:28px}.skTools button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.skTools button.hole.on{background:var(--bad);color:#fff;border-color:var(--bad)}.skOp{align-items:center;gap:8px;display:flex}.skOp .num input{width:70px}.skHead .pri,.dlgBtns .pri{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:3px;margin-left:auto;padding:5px 14px;font-weight:600}.skBody{flex:1;min-height:0;display:flex}.skSvg{touch-action:none;-webkit-user-select:none;user-select:none;background:#14171a;flex:1}.skSvg .g1{stroke:#22272c;stroke-width:1px}.skSvg .g2{stroke:#2f363d;stroke-width:1px}.skSvg .ax{stroke-width:1.4px}.skSvg .ax.x{stroke:#a8423f}.skSvg .ax.y{stroke:#3f8a4f}.skSvg .ax.rev{stroke-width:2.4px;stroke-dasharray:6 4}.skSvg .noRev{fill:#e5484d0f}.skSvg .sk.solid{fill:#5aa9e647;stroke:#5aa9e6;stroke-width:1.5px}.skSvg .sk.hole{fill:#14171a;stroke:#e5484d;stroke-width:1.5px;stroke-dasharray:5 3}.skSvg .sk.on{stroke:var(--accent);stroke-width:2.4px}.skSvg .sk.draft{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3}.skSvg .vtx{fill:var(--accent)}.skSvg .hdl{fill:var(--accent);stroke:#000}.skSide{border-left:1px solid var(--line);flex-direction:column;flex:none;gap:8px;width:250px;padding:8px;display:flex;overflow:auto}.skInfo{font:11.5px var(--f-mono)}.skList{flex-direction:column;display:flex}.dhdlg{width:min(880px,94vw);max-height:90vh;padding:14px;overflow:auto}.dhdlg h3{font:600 15px var(--f-display);margin:0 0 6px}.dht{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.dht th{color:var(--dim);text-align:left;padding:3px;font-weight:500}.dht td{padding:2px 3px}.dht .num input{width:64px}.dht select{background:var(--deep);border:1px solid var(--line);border-radius:3px;padding:2px}.dlgBtns{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.dlgBtns button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:5px 14px}.dlgBtns .pri{margin-left:0}.dynbar{flex-wrap:wrap;justify-content:flex-start;gap:4px}.dynbar select{background:var(--deep);border:1px solid var(--line);border-radius:3px;padding:2px}.sl.dyn{grid-template-columns:24px 1fr 56px 24px}.sl span.acc{color:var(--accent);font-weight:600}.sl span:first-child{cursor:pointer}.stepb{padding:1px 4px!important}.pri2{color:var(--accent);border-color:var(--accent)!important}.scope{border:1px solid var(--line);z-index:4;background:#0f1113eb;border-radius:4px;flex-direction:column;height:300px;display:flex;position:absolute;bottom:10px;left:10px;right:58px}.scope.min{height:auto}.scopeH{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.scopeH select{background:var(--deep);border:1px solid var(--line);border-radius:3px;padding:1px 4px}.scopeH .mini:last-child{margin-left:auto}.scope canvas{flex:1;width:100%;min-height:0}.servoDlg{width:min(1180px,96vw)}.svOff{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.svOff .pri,.servoDlg .ft .pri{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:3px;padding:5px 14px;font-weight:600}.servoDlg .ft{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.servoDlg .ft button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:3px;padding:5px 14px}.svFlow{background:var(--deep);border:1px solid var(--line);white-space:nowrap;border-radius:4px;padding:8px 10px;font-size:11.5px;line-height:1.7;overflow-x:auto}.svFlow b{color:var(--accent);font-weight:600}.svFlow .ff{color:#c77dff}.svFF{justify-content:flex-start;gap:14px;margin:6px 0}.svT{border-collapse:collapse;width:100%;font-size:12px}.svT th{color:var(--dim);text-align:left;border-bottom:1px solid var(--line);vertical-align:bottom;padding:4px;font-weight:500}.svT td{border-bottom:1px solid #262b30;padding:3px 4px}.svT tr{cursor:pointer}.svT tr.on{background:#3a3420}.svT .ok{color:var(--ok)}.svT .warn{color:var(--warn)}.svT .bad{color:var(--bad)}.svIn{gap:3px;display:flex}.sv{background:var(--deep);border:1px solid var(--line);width:46px;font:inherit;border-radius:3px;padding:1px 4px}.svScope{margin-top:8px}.svScope canvas{border:1px solid var(--line);background:#14171a;border-radius:4px;width:100%;height:300px;display:block}.svRes{color:var(--accent);font-size:11.5px}.designApp .robar{z-index:60;position:fixed;top:0;left:0;right:0}.designApp:has(.robar) .bld.alone{top:30px}.designToast{z-index:70;height:0;position:fixed;bottom:0;left:0;right:0}.bld .bldTop .mbr{align-items:center;gap:8px;display:flex}.kindPick{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:4px 0 2px;display:grid}.kindPick button{text-align:left;border:1px solid var(--line);background:var(--raise);color:inherit;cursor:pointer;font:inherit;border-radius:4px;flex-direction:column;gap:4px;padding:12px;display:flex}.kindPick button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.kindPick b{font-family:var(--f-display);font-size:14px}.kindPick span{color:var(--dim);font-size:12px}.tag.kd{color:#b48cf2;border-color:#b48cf2}.tag.uv{color:#4fd1c5;border-color:#4fd1c5}.ptabs{gap:4px;margin:0 0 8px;display:flex}.ptabs button{border:1px solid var(--line);color:var(--dim);cursor:pointer;font:inherit;background:0 0;border-radius:3px;padding:3px 10px}.ptabs button.on{color:var(--fg);border-color:var(--accent)}.dlist{max-height:52vh;margin:0;padding:0;list-style:none;overflow:auto}.dlist>li{border:1px solid var(--line);border-radius:4px;margin-bottom:8px}.dlist .dp{cursor:pointer;align-items:center;gap:8px;padding:8px 10px;display:flex}.dlist .dp small{color:var(--dim)}.dlist .dd{border-top:1px solid var(--line);align-items:center;gap:8px;padding:6px 10px 6px 26px;display:flex}.dlist .dd>div{flex:1;min-width:0}.dlist .dd small{color:var(--dim);font-size:11px;display:block}.uav-lab{--ph-bg:#09131d;--ph-paper:#0f1e29;--ph-ink:#dceaf2;--ph-muted:#86a3b2;--ph-line:#23404f;--ph-back:#ff8a3d;--ph-front:#4aa3ff;--ph-accent:#3ddc97;--ph-warn:#ff6b6b;--ph-soft:#132a39;--ph-fill:#2a3f4d}.uav-tabs{background:#142633;border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:3px;margin-bottom:12px;padding:3px;display:grid}.uav-tabs button{color:#8aa6b5;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 6px;font-size:12.5px;font-weight:700}.uav-tabs button.on{color:var(--uav);background:#1d4558;box-shadow:inset 0 0 0 1px #34728e}.uav-main.physics{grid-template-columns:300px minmax(0,1fr)}.uav-view[hidden],.uav-panel[hidden]{display:none!important}.uav-physics{min-height:0;padding:20px 26px 40px;overflow:auto}.phys{color:var(--ph-ink);font-family:var(--f-body)}.phys-nav{flex-direction:column;gap:8px;display:flex}.phys-nav button{text-align:left;border:1px solid var(--ph-line);background:var(--ph-paper);color:var(--ph-ink);cursor:pointer;font:500 13px/1.4 var(--f-body);border-radius:8px;padding:10px 12px}.phys-nav button small{font:600 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ph-muted);margin-bottom:3px;display:block}.phys-nav button.on{border-color:var(--uav);background:var(--ph-soft);box-shadow:inset 3px 0 0 var(--uav)}.phys3d-wrap{background:#0f2230;border-radius:10px;position:relative;overflow:hidden}.phys3d{position:absolute;inset:0}.phys3d canvas{width:100%;height:100%;display:block}.phys3d-labels{pointer-events:none;position:absolute;inset:0}.phys3d-label{font:700 12.5px var(--f-mono);white-space:nowrap;text-shadow:0 1px 3px #000,0 0 6px #000;position:absolute;top:0;left:0}.phys3d-tag{border:1px solid var(--ph-line);color:var(--ph-ink);pointer-events:none;background:#09131dc7;border-radius:8px;padding:6px 10px;font-size:12.5px;position:absolute;top:12px;left:14px}.phys3d-tag b{font:700 17px var(--f-mono);display:block}.phys3d-tag.right{text-align:right;left:auto;right:14px}.phys3d-tag.back{color:var(--ph-back)}.phys3d-tag.front{color:var(--ph-front)}.phys3d-tag.mid{top:auto;bottom:12px}.phys3d-tag.mid b{font-size:13px;display:inline}.phys3d-tag small{color:var(--ph-muted);margin-top:2px;font-size:11px;display:block}.phys3d-tag.warn{color:var(--ph-warn);border-color:var(--ph-warn)}.phys3d-hint{color:var(--ph-muted);pointer-events:none;font-size:11px;position:absolute;bottom:10px;right:12px}.phys-lesson{flex-direction:column;gap:14px;max-width:1040px;margin:0 auto;display:flex}.phys-lesson h1{font:700 26px/1.25 var(--f-body);text-wrap:balance;letter-spacing:-.01em;margin:0}.phys-sub{color:var(--ph-muted);margin:0;font-size:13.5px}.phys-stage{background:var(--ph-paper);border:1px solid var(--ph-line);border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.phys-scene{width:100%;height:auto;display:block}.phys-two{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.phys svg text{font-family:var(--f-body);fill:var(--ph-ink)}.phys .ct{font-size:13px;font-weight:700}.phys .note{fill:var(--ph-muted);font-size:12px}.phys .val{font-size:13px;font-weight:600}.phys .lbl{font-size:14px;font-weight:700}.phys .big{font-size:19px;font-weight:700;font-family:var(--f-mono)}.phys .back{color:var(--ph-back);fill:var(--ph-back)}.phys .front{color:var(--ph-front);fill:var(--ph-front)}.phys .accent{color:var(--ph-accent);fill:var(--ph-accent)}.phys .warn{color:var(--ph-warn);fill:var(--ph-warn)}.phys .ground{stroke:var(--ph-muted);stroke-width:2px}.phys .level{stroke:var(--ph-muted);stroke-dasharray:5 5}.phys .arc{fill:none;stroke:var(--ph-muted);stroke-width:1.5px}.phys .body{fill:var(--ph-fill);stroke:var(--ph-ink);stroke-width:2px}.phys .nose{fill:var(--ph-front)}.phys .glass{fill:#3d6f8e;stroke:var(--ph-ink);stroke-width:1.5px}.phys .wing{fill:var(--ph-front);opacity:.75}.phys .mast{stroke:var(--ph-ink);stroke-width:3px}.phys .prop{stroke-width:5px;stroke-linecap:round}.phys .prop.back{stroke:var(--ph-back)}.phys .prop.front{stroke:var(--ph-front)}.phys .prop.off{stroke:var(--ph-muted);opacity:.5}.phys .disc{fill:var(--ph-front);fill-opacity:.07;stroke:var(--ph-front);stroke-opacity:.4}.phys .blade{stroke:var(--ph-ink);stroke-width:5px;stroke-linecap:round;opacity:.75}.phys .spinarrow{fill:none;stroke:var(--ph-muted);stroke-width:2px}.phys .airfoil{fill:var(--ph-fill);stroke:var(--ph-ink);stroke-width:2px}.phys .flow{fill:none;stroke:var(--ph-front);stroke-opacity:.55;stroke-width:1.6px}.phys .flow.sep{stroke:var(--ph-warn);stroke-dasharray:4 4}.phys .stallzone{fill:var(--ph-warn);fill-opacity:.08}.phys .need{stroke:var(--ph-accent);stroke-dasharray:6 4}.phys-explain{background:var(--ph-soft);border-radius:10px;padding:10px 14px}.phys-explain b{margin-bottom:2px;font-size:15px;display:block}.phys-explain p{margin:0;font-size:14px;line-height:1.55}.phys-eq{font:14px/1.9 var(--f-mono);overflow-x:auto}.phys-eq b{font-size:15px}.phys-eq small{font:12px var(--f-body);color:var(--ph-muted);margin-left:8px}.phys-player{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.phys-player input{min-width:140px;accent-color:var(--ph-front);flex:1}.phys-player button,.phys-player select,.phys-controls button{border:1px solid var(--ph-line);background:var(--ph-paper);color:var(--ph-ink);cursor:pointer;border-radius:6px;padding:5px 11px;font-size:13px}.phys-controls{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.phys-controls label{align-items:center;gap:10px;font-size:13.5px;display:flex}.phys-controls input{accent-color:var(--ph-front);width:200px}.phys-toggle{border:1px solid var(--ph-line);border-radius:8px;display:flex;overflow:hidden}.phys-toggle button{border:0;border-radius:0}.phys-toggle button.on{background:var(--ph-front);color:#06121b}.phys-row{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:14px;display:grid}.phys-fbd{background:var(--ph-paper);border:1px solid var(--ph-line);border-radius:14px;width:100%}.phys-charts{gap:10px;display:grid}.phys-charts.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.phys-fig{background:var(--ph-paper);border:1px solid var(--ph-line);border-radius:12px;margin:0;padding:8px 10px}.phys-fig figcaption{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;margin-bottom:2px;font-size:12.5px;display:flex}.phys-fig figcaption b{margin-right:auto}.phys-chart{width:100%;height:auto;display:block}.phys .grid{stroke:var(--ph-line)}.phys .ax{fill:var(--ph-muted);font-size:10.5px}.phys .cur{stroke:var(--ph-ink);stroke-opacity:.35}.phys-share{border:1px solid var(--ph-line);height:26px;font:600 12px var(--f-mono);border-radius:8px;display:flex;overflow:hidden}.phys-share span{color:#fff;white-space:nowrap;justify-content:center;align-items:center;transition:width .1s;display:flex;overflow:hidden}.phys-share .back{background:var(--ph-back)}.phys-share .front{background:var(--ph-front)}.phys-status{margin:0;font-size:14.5px;font-weight:700}.phys-status.warn{color:var(--ph-warn)}.phys-takeaway{background:var(--ph-paper);border:1px solid var(--ph-line);border-left:4px solid var(--ph-accent);border-radius:10px;margin:0;padding:12px 16px;font-size:14.5px;line-height:1.6}@media (max-width:1050px){.uav-main.physics{grid-template-columns:260px minmax(0,1fr)}.uav-physics{padding:14px}}@media (max-width:900px){.phys-two,.phys-row,.phys-charts.wide{grid-template-columns:1fr}}.uav-main.prog{grid-template-columns:300px minmax(380px,1fr) 520px}.uav-panel.telemetry.prog{flex-direction:column;display:flex;overflow:hidden}.uav-progpane{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.uav-progpane[hidden]{display:none!important}.uav-progtop{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.uav-progtop select{color:#e8f5fb;background:#142633;border:1px solid #315164;border-radius:4px;flex:1;min-width:0;padding:6px 8px;font-size:12px}.uav-progbtns{gap:6px;display:flex}.uav-progbtns button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:7px 12px}.uav-progbtns button:disabled{opacity:.4;cursor:default}.uav-progbtns .run{color:#fff;background:#177b60;border-color:#32c793;flex:1;font-weight:700}.uav-progpane .uav-code{border:1px solid var(--uavline);border-radius:6px;flex:1;min-height:220px;overflow:hidden}.uav-progpane .uav-console{border:1px solid var(--uavline);border-left:1px solid var(--uavline);background:#0b1720;border-radius:6px;flex:none;height:150px}.uav-link{color:var(--uav);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.uav-scene{flex-direction:column;gap:6px;display:flex}.uav-scene-bar{gap:4px;display:flex}.uav-scene-bar button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:6px 10px;font-size:12px}.uav-scene-bar button:first-child{flex:1;font-weight:700}.uav-scene-bar button.on{color:#fff;background:#7a5a17;border-color:#e0a83a}.uav-tools{grid-template-columns:1fr 1fr;gap:4px;display:grid}.uav-tools button{color:#bfd3de;cursor:pointer;text-align:left;background:#142633;border:1px solid #315164;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.uav-tools button i{text-align:center;width:16px;color:var(--uav);font-style:normal}.uav-tools button.on{border-color:var(--uav);color:#fff;background:#1d4558}.uav-tools.zones{grid-template-columns:1fr;margin-top:6px}.uav-tools.zones button.z-red i{color:#ff6b61}.uav-tools.zones button.z-yellow i{color:#ffc21a}.uav-tools.zones button.z-green i{color:#3fd47f}.uav-tools.zones button.z-red.on{border-color:#ff6b61}.uav-tools.zones button.z-yellow.on{border-color:#ffc21a}.uav-tools.zones button.z-green.on{border-color:#3fd47f}.uav-goto{margin:6px 0}.uav-goto label{flex-direction:column;gap:4px;display:flex}.uav-goto .uav-where{margin:0}.uav-objform{background:#10212c;border:1px solid #e0a83a;border-radius:6px;padding:8px}.uav-objform .hd{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.uav-objform .hd button{color:#ffb3b3;cursor:pointer;background:#3a1d1d;border:1px solid #8a3a3a;border-radius:4px;padding:3px 9px;font-size:11px}.uav-objform label{margin:4px 0}.uav-objform input{color:#e8f5fb;font:12px var(--f-mono);background:#142633;border:1px solid #315164;border-radius:4px;width:100%;min-width:0;padding:5px 7px}.uav-objform .grid{grid-template-columns:1fr 1fr;gap:0 6px;display:grid}.uav-objlist summary{cursor:pointer;color:#a6bbc6;padding:4px 0;font-size:12px}.uav-objlist ul{max-height:180px;margin:0;padding:0;list-style:none;overflow:auto}.uav-objlist button{color:#cfe3ee;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;width:100%;padding:4px 6px;font-size:12px;display:flex}.uav-objlist button:hover{background:#132430}.uav-objlist button.on{background:#1d4558}.uav-objlist i{width:16px;color:var(--uav);font-style:normal}.uav-objlist small{color:#6f8b99;font:10.5px var(--f-mono);margin-left:auto}ul.uav-warn{margin:4px 0;padding-left:16px}.uav-stagebox.placing{cursor:crosshair}.uav-stagebox.editing{cursor:pointer}.uav-edithint{color:#fff;pointer-events:none;background:#7a5a17eb;border-radius:4px;padding:5px 12px;font-size:12px;position:absolute;bottom:56px;left:50%;transform:translate(-50%)}.uav-dlg-back{z-index:50;background:#03080da8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.uav-dlg{border:1px solid var(--uavline);color:#dceaf2;background:#0d1923;border-radius:10px;flex-direction:column;width:min(980px,100%);height:min(86vh,900px);display:flex;overflow:hidden}.uav-dlg header{border-bottom:1px solid var(--uavline);align-items:center;gap:10px;padding:12px 14px;display:flex}.uav-dlg header b{white-space:nowrap}.uav-dlg header input{color:#e8f5fb;background:#142633;border:1px solid #315164;border-radius:4px;flex:1;padding:7px 10px}.uav-dlg header button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:5px 10px}.uav-dlg nav{border-bottom:1px solid var(--uavline);flex-wrap:wrap;gap:6px;padding:8px 14px;display:flex}.uav-dlg nav a{color:var(--uav);border:1px solid #234050;border-radius:999px;padding:3px 10px;font-size:12.5px;text-decoration:none}.uav-dlg-body{flex:1;padding:14px 18px 30px;overflow:auto}.uav-dlg-body h3{color:var(--uav);margin:18px 0 4px;font-size:15px}.uav-dlg-body .intro{color:#9db4c0;margin:0 0 8px;font-size:13px}.uav-dlg-body article{background:#0f1e29;border:1px solid #1d3442;border-radius:8px;margin:8px 0;padding:10px 12px}.uav-dlg-body .sig{justify-content:space-between;align-items:center;gap:10px;display:flex}.uav-dlg-body .sig code{font:600 13px var(--f-mono);color:#9fe6ff}.uav-dlg-body .sig button{color:#c9f5e4;cursor:pointer;background:#123b30;border:1px solid #32c793;border-radius:4px;padding:3px 10px;font-size:12px}.uav-dlg-body p{margin:6px 0;font-size:13.5px;line-height:1.5}.uav-dlg-body .note{color:#ffd29c;font-size:12.5px}.uav-dlg-body pre{font:12.5px/1.5 var(--f-mono);color:#d6e4ec;background:#0b1720;border:1px solid #1d3442;border-radius:6px;margin:6px 0 0;padding:8px 10px;overflow-x:auto}.uav-api-start{background:#10261f;border:1px solid #2a6a52;border-radius:8px;padding:10px 12px}@media (max-width:1300px){.uav-main.prog{grid-template-columns:270px minmax(320px,1fr) 440px}}.uav-dim{color:#6f8c9b;margin-left:4px;font-size:11px;font-weight:500}.uav-dot{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.uav-fleet{flex-direction:column;gap:4px;display:flex}.uav-drone{cursor:pointer;color:#dceaf2;background:#132430;border:1px solid #203b4b;border-radius:5px;grid-template-columns:24px 1fr auto auto auto;align-items:center;gap:8px;padding:6px 6px 6px 8px;font-size:12px;display:grid}.uav-drone:hover{border-color:#34728e}.uav-drone.on{border-color:var(--uav);background:#16323f}.uav-drone.bad{border-color:#7a3a3f}.uav-drone>i{width:22px;height:22px;font:700 12px var(--f-mono);color:#08131c;border-radius:50%;place-items:center;font-style:normal;display:grid}.uav-drone small{color:#7f9dac;font-size:10.5px}.uav-drone small.m{color:#9fe8c5}.uav-drone.bad small.m{color:#ff8a8f}.uav-drone em{color:var(--uav)}.uav-drone .num{font:11px var(--f-mono);text-align:right;color:#e9f7fd}.uav-drone em{font-style:normal}.uav-drone .x{color:#6f8c9b;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 4px}.uav-drone .x:hover{color:#ff8a8f;background:#22313b}.uav-add{gap:4px;margin-top:6px;display:flex}.uav-add select{flex:1;min-width:0}.uav-add .btn{white-space:nowrap;padding:5px 8px;font-size:11.5px}.uav-allcmd{color:#7f9dac;flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;font-size:11px;display:flex}.uav-allcmd button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:4px 7px;font-size:11px}.uav-modebox{background:#10212c;border:1px solid #2c6e57;border-left:3px solid #63e6a5;border-radius:4px;flex-direction:column;gap:2px;margin-bottom:6px;padding:7px 9px;display:flex}.uav-modebox b{color:#9fe8c5;font-size:13px}.uav-modebox small{color:#ffb454;font-size:11px}.uav-modebox small.dim{color:#7f9dac}.uav-modebox.warn{border-color:#7a5a2c #7a5a2c #7a5a2c #ffb454}.uav-modebox.warn b{color:#ffd08a}.uav-cmds{grid-template-columns:1fr 1fr;gap:5px;display:grid}.uav-cmds button{color:#d4e5ee;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:8px 6px;font-size:12px;font-weight:600}.uav-cmds button:disabled{opacity:.35;cursor:default}.uav-cmds button.go{color:#fff;background:#177b60;border-color:#32c793;grid-column:1/-1}.uav-cmds button.on{color:#ffe2a8;background:#5a4613;border-color:#ffb454}.uav-phone{color:#bfeaff;cursor:pointer;background:#15394a;border:1px solid #34728e;border-radius:5px;width:100%;margin-top:8px;padding:9px;font-size:12.5px;font-weight:700}.uav-phone:hover{background:#1b4a60}.uav-keys{color:#a9c2cf;margin-top:12px;font-size:12px}.uav-keys summary{cursor:pointer;color:var(--uav);font-weight:600}.uav-keys table{border-collapse:collapse;width:100%;margin:6px 0}.uav-keys th{text-align:left;font:600 11px var(--f-mono);color:#e9f7fd;white-space:nowrap;vertical-align:top;padding:3px 8px 3px 0}.uav-keys td{color:#9bb4c1;padding:3px 0;font-size:11.5px}.uav-real th{width:38%;font-family:var(--f-body)!important;white-space:normal!important}.uav-toast{color:#ffe8b5;text-align:center;pointer-events:none;z-index:3;background:#5a4613f2;border:1px solid #ffb454;border-radius:4px;max-width:70%;padding:6px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.uav-vsticks{pointer-events:none;z-index:2;justify-content:space-between;display:flex;position:absolute;bottom:84px;left:12px;right:12px}.uav-vstick{pointer-events:auto;touch-action:none;cursor:grab;background:#0e1e288c;border:1px solid #56d6ff59;border-radius:50%;width:118px;height:118px;position:relative}.uav-vstick:before{content:"";border:1px dashed #56d6ff40;border-radius:50%;position:absolute;inset:25%}.uav-vstick i{background:radial-gradient(circle at 35% 30%,#9be6ff,#2c9fd0 60%,#1b6f96);border-radius:50%;width:40%;height:40%;position:absolute;top:30%;left:30%;box-shadow:0 3px 10px #0008}.uav-vstick span{white-space:nowrap;color:#a9c2cf;text-shadow:0 1px 2px #000;font-size:10.5px;position:absolute;bottom:-17px;left:50%;transform:translate(-50%)}.uav-dlg.small{width:min(680px,100%);height:auto;max-height:86vh}@media (max-width:700px){.uav-vstick{width:92px;height:92px}}.fwPanel .tag{font-size:11px}.fwEstop{background:var(--bad);color:#fff;font:700 11px var(--f-display);letter-spacing:.04em;cursor:pointer;border:2px solid #7a1418;border-radius:999px;padding:6px 12px}.fwEstop.on{background:#7a1418;box-shadow:inset 0 2px 6px #00000080}.fwTerm{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:4px;height:200px;padding:6px 8px;font-size:11.5px;line-height:1.45;overflow:auto}.fwTerm .tx{color:var(--info)}.fwTerm .err{color:var(--bad)}.fwTerm .done{color:var(--ok)}.fwTerm .note{color:var(--dim)}.fwIn{gap:6px;display:flex}.fwIn input{flex:1;min-width:0}.fwQuick{flex-wrap:wrap;gap:4px;display:flex}.fwKind{border:1px solid var(--line);border-radius:4px;flex:none;display:flex;overflow:hidden}.fwKind button{background:var(--raise);color:var(--dim);font:600 11.5px var(--f-ui);cursor:pointer;border:0;flex:1;padding:6px 4px}.fwKind button+button{border-left:1px solid var(--line)}.fwKind button.on{background:var(--accent);color:#06121a}.fwPanel .lamp.on{color:var(--ok)}.fwLed{font:700 10.5px var(--f-mono);border:1px solid var(--line);color:var(--dim);background:rgba(79,194,122,calc(var(--lv,0) * .9));box-shadow:0 0 calc(var(--lv,0) * 12px) rgba(79,194,122,calc(var(--lv,0)));border-radius:9px;padding:1px 6px}.fwLed[data-led]:not([data-led="0"]){color:#06121a}.fwBoot.on{background:var(--accent);color:#06121a}.fwPot{align-items:center;gap:8px;font-size:12px;display:flex}.fwPot input{flex:1;min-width:0}.fwWiring summary{cursor:pointer}.fwWiring td:first-child{white-space:nowrap;padding-right:8px}.fwDock{background:var(--panel);border-top:2px solid var(--accent);z-index:4;flex-direction:column;height:46%;min-height:220px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #00000059}.fwDock.tall{height:calc(100% - 56px)}.fwDockBar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 6px 0;display:flex}.fwDockTitle{font:600 11px var(--f-display);text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.fwDockTitle .dim{text-transform:none;letter-spacing:0;font-weight:400}.fwTools{margin-left:auto}.fwTabs{flex:100%;align-items:flex-end;gap:2px;min-width:0;display:flex;overflow-x:auto}.fwTab{font:12px var(--f-mono);color:var(--dim);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-bottom:0;border-radius:4px 4px 0 0;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.fwTab.on{color:var(--text);border-color:var(--line);background:#0b1720}.fwTab.bad{color:var(--bad)}.fwTab .x{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:13px;line-height:1}.fwTab .x:hover{opacity:1}.fwTools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fwTools select{max-width:200px}.fwDockBody{flex:1;min-height:0;display:flex}.fwCodeEd{flex:1;min-width:0;overflow:hidden}.fwCodeEd .cm-editor{height:100%}.fwDiags{border-left:1px solid var(--line);flex-direction:column;flex:none;gap:3px;width:min(38%,420px);padding:6px;font-size:11.5px;display:flex;overflow:auto}.fwMsg{background:var(--raise);color:var(--text);border-radius:3px;padding:4px 6px}.fwMsg.bad{color:var(--bad)}.fwMsg.pause{color:#06121a;background:var(--warn)}.fwDbgChk{white-space:nowrap;font-size:12px}.fwWatch{border-collapse:collapse;width:100%;margin:2px 0 4px;font-size:11.5px}.fwWatch th{text-align:left;color:var(--dim);padding:2px 4px;font-weight:500}.fwWatch td{border-top:1px solid var(--line);padding:2px 4px}.fwDiag{text-align:left;border:0;border-left:3px solid var(--line);color:var(--text);cursor:pointer;font:inherit;background:0 0;padding:3px 6px}.fwDiag:hover{background:var(--raise)}.fwDiag.error{border-left-color:var(--bad)}.fwDiag.warning{border-left-color:var(--warn)}.fwDiag .mono{color:var(--dim);margin-right:4px}@media (max-width:900px){.fwDiags{display:none}}.fwSens{border-collapse:collapse;width:100%;font-size:11.5px}.fwSens th{text-align:left;color:var(--dim);padding:2px 4px;font-weight:500}.fwSens td{border-top:1px solid var(--line);padding:3px 4px}.fwSens td.bad{color:var(--bad);font-weight:600}.fwSens .lamp{text-align:center;border:1px solid var(--line);min-width:38px;color:var(--dim);border-radius:3px;padding:0 4px;display:inline-block}.fwSens .lamp.on{background:var(--warn);border-color:var(--warn);color:#000;font-weight:700}.fwSens .lamp.was{border-color:var(--warn);color:var(--warn)}.fwProg{resize:vertical;background:var(--bg);width:100%;color:inherit;border:1px solid var(--line);border-radius:4px;padding:6px;font-size:11.5px}.uav-viewtools{flex-wrap:wrap;max-width:calc(100% - 300px)}.uav-viewtools .sep{width:8px}.uav-keyhelp{color:#cfe3ee;z-index:2;background:#060e14db;border:1px solid #2c4e60;border-radius:8px;max-width:min(760px,100% - 300px);padding:7px 30px 7px 12px;font-size:11.5px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.uav-keyhelp b{color:var(--uav);margin-bottom:4px;font-size:11px;display:block}.uav-keyhelp span{flex-wrap:wrap;gap:4px 12px;display:flex}.uav-keyhelp i{white-space:nowrap;font-style:normal}.uav-keyhelp kbd{text-align:center;min-width:18px;font:600 10.5px var(--f-mono);color:#fff;background:#1b3443;border:1px solid #3c6478;border-bottom-width:2px;border-radius:4px;margin-right:4px;padding:1px 5px;display:inline-block}.uav-keyhelp button{color:#7f9dac;cursor:pointer;background:0 0;border:0;position:absolute;top:6px;right:6px}.uav-hud{z-index:1}.uav-attrib{color:#dfe9ef;pointer-events:none;background:#060e1499;border-radius:3px;padding:2px 6px;font-size:10px;position:absolute;bottom:6px;right:8px}.uav-attrib.error{color:#ffb454}.uav-attrib.loading{color:#a9c2cf}.uav-ground{flex-direction:column;gap:6px;margin:8px 0;display:flex}.uav-ground .chk,.uav-panel .chk{color:#bcd2de;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.uav-map{border:1px solid var(--uavline);background:#10212c;border-radius:4px;flex-direction:column;gap:5px;padding:7px;display:flex}.uav-map form{gap:4px;display:flex}.uav-map form input{flex:1;min-width:0}.uav-where{gap:4px;margin:2px 0 6px;display:flex}.uav-where input{flex:1;min-width:0}.uav-where button{color:#bfeaff;cursor:pointer;background:#15394a;border:1px solid #34728e;border-radius:4px;padding:5px 10px;font-size:11.5px;font-weight:600}.uav-where button:disabled{opacity:.5}.uav-map button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:5px 8px;font-size:11.5px}.uav-map button.osm{color:#bfeaff;background:#15394a;border-color:#34728e;font-weight:600}.uav-map button:disabled{opacity:.5}.uav-add .cnt{color:#9bb4c1;flex:1;align-items:center;gap:6px;font-size:11.5px;display:flex}.uav-add .cnt input{width:64px}@media (max-width:1050px){.uav-keyhelp,.uav-viewtools{max-width:calc(100% - 24px)}}.uav-tabs{grid-template-columns:1fr 1fr}.uav-showsec{min-width:0;min-height:0;position:relative}.show-view{background:#02050c;position:absolute;inset:0}.show-canvas{position:absolute;inset:0}.show-canvas canvas{width:100%;height:100%;display:block}.show-status{color:#bfeaff;background:#0d1e2aeb;border:1px solid #34728e;border-radius:4px;padding:6px 14px;font-size:12.5px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.show-status.err{color:#ffd6d6;background:#5a1e1eeb;border-color:#ff6b6b}.show-stats{color:#9bb4c1;background:#060c14d6;border:1px solid #23404f;border-radius:6px;grid-template-columns:1fr 1fr;gap:5px;width:250px;padding:8px;font-size:11px;display:grid;position:absolute;top:12px;right:12px}.show-stats span{background:#0f1e29;border-radius:3px;padding:5px 6px}.show-stats small{font-size:10px;display:block}.show-stats b{color:#eaf6fc;font:12px var(--f-mono)}.show-stats .ok b{color:#63e6a5}.show-stats .bad b{color:#ffb454}.show-stats ul{color:#ffd08a;grid-column:1/-1;margin:2px 0 0;padding-left:16px;font-size:11px}.show-bar{color:#cfe3ee;background:#060c14db;border:1px solid #23404f;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.show-bar button{color:#e2f2fb;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:4px 10px}.show-bar .play{background:#177b60;border-color:#32c793;min-width:40px}.show-bar input[type=range]{flex:1;min-width:120px}.show-bar .t{font:12px var(--f-mono);white-space:nowrap}.show-bar .ph{color:var(--uav);white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.show-bar .marks{height:5px;position:absolute;top:-6px;left:0;right:0}.show-bar .marks i{cursor:pointer;background:#56d6ff88;border-radius:2px;height:5px;position:absolute;top:0}.show-forms{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.show-forms li{border:1px solid var(--uavline);background:#10212c;border-radius:5px;flex-direction:column;gap:5px;padding:6px 7px;font-size:12px;display:flex}.show-forms .hd{color:#dceaf2;justify-content:space-between;align-items:center;display:flex}.show-forms .hd button{color:#7f9dac;cursor:pointer;background:0 0;border:0;padding:1px 5px}.show-forms .hd button:hover:not(:disabled){color:#fff}.show-forms .hd button:disabled{opacity:.3}.show-forms textarea{resize:vertical;min-height:28px;font:600 13px var(--f-body);color:#e8f5fb;background:#142633;border:1px solid #315164;border-radius:4px;padding:4px 6px}.show-forms .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.show-forms .row select{flex:1;min-width:90px}.show-forms .row img{object-fit:contain;background:#fff;border-radius:3px;max-width:70px;height:34px}.show-forms .row img.dark{background:#000}.show-forms .num{color:#9bb4c1;align-items:center;gap:3px;font-size:11px;display:flex}.show-forms .num input{width:46px}.show-forms input[type=color]{background:0 0;border:0;width:30px;height:24px;padding:0}.show-forms .file,.show-forms .row>button{color:#bfd3de;cursor:pointer;background:#142633;border:1px solid #315164;border-radius:4px;padding:4px 8px;font-size:11.5px}.show-add{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.show-add button{color:#9fd8ee;cursor:pointer;background:0 0;border:1px dashed #3c6478;border-radius:4px;padding:4px 7px;font-size:11.5px}.drawtools{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.drawtools button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px}.drawtools button.on{border-color:#fff}.drawtools button.txt{color:#bfd3de;background:#142633;border:1px solid #315164;border-radius:4px;width:auto;padding:0 8px}.drawpad{aspect-ratio:3/2;touch-action:none;cursor:crosshair;background:#05080d;border:1px solid #315164;border-radius:6px;width:100%;max-width:480px;display:block}.show-forms label.num,.show-forms label.chk{align-items:center;gap:4px;font-size:11px;flex-direction:row!important;margin:0!important;display:flex!important}.show-forms label.num input{width:48px;margin:0}.uav-panel .uav-add label.cnt{flex-direction:row;align-items:center;margin:0}.uav-lab.studio-like{background:var(--bg);color:var(--fg);--uav:var(--accent);--uavline:var(--line)}.studio-like .menubar .logo{text-transform:uppercase}.studio-like .main{flex:1;min-height:0;display:flex}.studio-like .split[hidden]{display:none}.studio-like .viewwrap{flex:2.4}.studio-like .viewwrap>.uav-view{flex:1;min-width:0}.studio-like .uav-panel{background:var(--panel)}.studio-like .uav-left{width:300px}.studio-like .uav-left>.pv.uav-panel{padding:10px 12px 16px}.studio-like .ribbon .rbody{gap:0}.studio-like .rg{height:30px}.studio-like .rsel{background:var(--raise);color:var(--fg);border:1px solid var(--line);border-radius:3px;max-width:260px;padding:3px 6px;font-size:12px}.studio-like .rctl b{color:var(--fg)}.studio-like .ribbon .uav-seg{gap:2px;margin:0;display:flex}.studio-like .ribbon .uav-seg button{color:var(--fg);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;height:28px;padding:3px 9px;font-size:12px}.studio-like .ribbon .uav-seg button.on{color:var(--accent);background:#f2c2301a;border-color:#f2c23080}.studio-like .ribbon .uav-add{align-items:center;gap:4px;margin:0;display:flex}.studio-like .ribbon .uav-add select,.studio-like .ribbon .uav-add input{background:var(--raise);color:var(--fg);border:1px solid var(--line);border-radius:3px;padding:3px 5px;font-size:12px}.studio-like .ribbon .uav-add input.cnt{flex:none;width:48px}.studio-like .ribbon .uav-add select{flex:none;width:auto;max-width:180px}.studio-like .ribbon .uav-add .btn{white-space:nowrap;height:26px;padding:0 10px}.studio-like .ribbon .uav-allcmd{background:0 0;border:0;align-items:center;gap:2px;margin:0;padding:0;display:flex}.studio-like .ribbon .uav-allcmd span{color:var(--dim);margin-right:4px;font-size:12px}.studio-like .ribbon .uav-allcmd button{color:var(--fg);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:3px 8px;font-size:12px}.studio-like .ribbon .uav-allcmd button:hover,.studio-like .ribbon .uav-seg button:hover{background:var(--raise);border-color:var(--line)}.studio-like .rb[role=radio]{padding:3px 9px}.studio-like .uav-dock{flex:1;min-height:180px}.studio-like .uav-dock.hide{display:none}.studio-like .uav-codewrap{background:var(--panel);flex-direction:column;flex:1.8;min-width:0;min-height:0;display:flex}.studio-like .uav-codewrap .uav-progtop{border-bottom:1px solid var(--line);padding:5px 10px}.studio-like .uav-codewrap .uav-progbtns{padding:5px 10px}.studio-like .uav-progbtns{flex-wrap:wrap;align-items:center}.uav-progbtns .sep{background:var(--line,#315164);align-self:stretch;width:1px;margin:0 4px}.uav-flightbtns{gap:6px;display:flex}.uav-flightbtns button{align-items:center;gap:6px;display:flex}.uav-flightbtns svg{width:15px;height:15px;color:var(--accent,#f2c230);flex:none}.uav-flightbtns .go svg{color:var(--ok,#32c793)}.uav-flightbtns .go:not(:disabled){color:#e8fff6;border-color:#32c793}.studio-like .uav-codewrap .uav-code{border:0;border-top:1px solid var(--line);border-radius:0;flex:1;min-height:0;overflow:hidden}.studio-like .btabs .r{gap:2px;margin-left:auto;display:flex}.studio-like .uav-dock .bottom{flex-direction:column;display:flex}.studio-like .uav-dock .bottom .uav-console{background:var(--panel);border:0;flex:1}.studio-like .right.uav-side{border-left:1px solid var(--line);background:var(--panel);width:300px}.studio-like .right.uav-side .ptabs .close{flex:0 0 30px}.studio-like .uav-guide{background:var(--deep)}.studio-like .center>.uav-physics,.studio-like .center>.uav-showsec{flex:1;min-height:0}@media (max-width:1050px){.studio-like .right.uav-side{display:none}.studio-like .uav-left{width:250px}}.studio-like .uav-legend{inset:auto 10px 10px auto}.studio-like .uav-viewtools{flex-wrap:wrap;right:200px}.studio-like .rbody{flex-wrap:wrap;row-gap:2px;height:auto;min-height:38px}.studio-like .rb.ico{padding:3px 6px}.studio-like .rg.tall{height:auto}.studio-like .rb.model{flex-direction:column;align-items:flex-start;gap:0;height:34px;padding:2px 10px;line-height:1.15}.studio-like .rb.model small{color:var(--dim);font-size:10px}.studio-like .rb.model b{font-size:12px;font-weight:600}.studio-like .rb.model.on small{color:var(--accent)}.studio-like .uav-panel label.chk{flex-direction:row;align-items:flex-start;gap:7px}.studio-like .uav-panel label.chk input{flex:none;margin-top:2px}.studio-like .split>.gutter{height:6px}.studio-like .uav-dock>.gutter{width:6px}.gutter:focus-visible{background:var(--accent);outline:none}html.clean3d,html.clean3d body{background:#000;overflow:hidden}html.clean3d .clean-on{z-index:2147483000!important;border:0!important;border-radius:0!important;flex:none!important;width:auto!important;height:auto!important;margin:0!important;position:fixed!important;inset:0!important}html.clean3d .clean-on>:not(canvas){display:none!important}html.clean3d .clean-on>canvas{display:block}
