:root{--bg0: #0a0d12;--bg1: #0f131a;--bg2: #151b24;--bg3: #1c2430;--bg4: #242e3d;--line: #1e2736;--line-strong: #2a3548;--text: #e8edf6;--muted: #8b95a8;--faint: #5d6678;--accent: #5b8cff;--accent-strong: #7ba4ff;--accent-dim: rgba(91, 140, 255, .14);--orange: #ff9f43;--green: #3ddc97;--red: #ff5d6c;--yellow: #ffce5c;--radius: 8px;--radius-sm: 6px;--font: "Inter Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--shadow-pop: 0 12px 36px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg0);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:auto}.mono{font-family:var(--mono)}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,select{font-family:inherit;font-size:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:6px;border:2.5px solid var(--bg1)}::-webkit-scrollbar-thumb:hover{background:#2f3b4e}.app{display:flex;flex-direction:column;height:100%;min-width:1260px;min-height:620px}.main{flex:1;display:grid;grid-template-columns:var(--left-w, 262px) minmax(0,1fr) 348px;min-height:0}.center{position:relative;min-width:0}.panel{background:var(--bg1);display:flex;flex-direction:column;min-height:0}.panel-left{border-right:1px solid var(--line);position:relative}.col-resizer{position:absolute;top:0;right:-3px;bottom:0;width:6px;cursor:col-resize;z-index:6;touch-action:none}.col-resizer:after{content:"";position:absolute;top:0;right:2px;bottom:0;left:2px;border-radius:2px;background:transparent;transition:background .12s ease}.col-resizer:hover:after,body.resizing-col .col-resizer:after{background:var(--accent, #3b82f6)}body.resizing-col{cursor:col-resize;-webkit-user-select:none;user-select:none}.panel-right{border-left:1px solid var(--line)}.panel-content{flex:1;overflow-y:auto;min-height:0}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px}.panel-header h2{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);font-weight:500;white-space:nowrap;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.btn:disabled{opacity:.38;cursor:default}.btn-ghost{color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--bg3);color:var(--text)}.btn-icon{padding:6px}.btn-primary{background:linear-gradient(180deg,#6493ff,#4a7af0);color:#fff;font-weight:600;box-shadow:0 1px #ffffff26 inset,0 2px 10px #4a7af059}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#74a0ff,#5685f5)}.btn-danger{background:#ff565629;color:#ff6b6b;border-color:#ff565666}.sim-status-badge{flex:1;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700;color:#3ddc97}.sim-status-badge.nav-reached{color:#4ade80}.pose-row-nav .nav-coord{width:3.9rem;flex:0 0 auto;padding:3px 6px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font-family:var(--mono);font-size:11px;outline:none;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.pose-row-nav .nav-coord::-webkit-outer-spin-button,.pose-row-nav .nav-coord::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pose-row-nav .nav-coord:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.pose-row-nav .pose-name{display:inline-flex;align-items:center;gap:4px}.sim-displays{padding:8px 12px;border-top:1px solid var(--border, #1b2434)}.sim-display-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.sim-display-chips .chip{font-size:10px;padding:2px 7px}.camera-view{position:absolute;right:12px;bottom:12px;background:#080b10d1;border:1px solid #2b3a58;border-radius:6px;padding:4px;z-index:5;pointer-events:none}.camera-view-label{display:block;font-family:var(--font-mono, monospace);font-size:9px;color:#7dd3fc;margin-bottom:3px}.camera-view-canvas{display:block;width:200px;height:150px;image-rendering:pixelated;border-radius:3px}.btn .danger,.btn.danger{color:var(--red)}.toolbar{display:flex;align-items:center;gap:8px;height:48px;padding:0 10px;background:linear-gradient(180deg,#121722,#0f131a);border-bottom:1px solid var(--line);z-index:20}.toolbar-group{display:flex;align-items:center;gap:6px}.toolbar-spacer{flex:1}.toolbar-divider{width:1px;height:20px;background:var(--line-strong);margin:0 4px}.toolbar-brand{gap:8px;padding-right:6px}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#5b8cff,#7c5bff);box-shadow:0 2px 10px #5b8cff66}.brand-name{font-size:14px;letter-spacing:.01em;color:var(--muted)}.brand-name b{color:var(--text);font-weight:700}.robot-name{width:126px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 9px;color:var(--text);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.robot-name:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.segmented{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.seg-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;color:var(--muted);font-weight:500;transition:background .12s ease,color .12s ease}.seg-btn:hover{color:var(--text)}@media (max-width: 1500px){.seg-btn span{display:none}.seg-btn{padding:5px 8px}}.seg-btn.active{background:var(--bg4);color:var(--text);box-shadow:0 1px 3px #00000059}.seg-pose.active{background:#ff9f4329;color:var(--orange)}.seg-attach.active{background:#4dd9ff24;color:#4dd9ff}.seg-sim.active{background:#3ddc9729;color:#3ddc97}.seg-world.active{background:#ffb45429;color:#ffb454}.explorer-pane{flex:0 0 44%;display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--line-strong)}.hierarchy-pane{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.explorer{display:flex;flex-direction:column;min-height:0;height:100%}.panel-header-actions{display:inline-flex;gap:2px}.fx-rows{flex:1;overflow-y:auto;min-height:0;padding-bottom:6px}.fx-empty{padding:12px;color:var(--muted);font-size:12px}.fx-empty p{margin:0 0 8px}.fx-row{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 6px;cursor:pointer;font-size:12px;color:var(--text)}.fx-row:hover{background:var(--bg3)}.fx-row.selected{background:#6493ff29}.fx-indent{width:13px;flex:0 0 auto}.fx-folder{color:#ffb454;flex:0 0 auto}.fx-file{color:var(--muted);flex:0 0 auto}.fx-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-actions{display:none;gap:2px}.fx-row:hover .fx-actions{display:inline-flex}.fx-actions button{color:var(--faint);padding:1px;display:inline-flex}.fx-actions button:hover{color:var(--text)}.dock-btn{z-index:7;padding:3px;border-radius:var(--radius-sm);color:var(--muted);display:inline-flex;transition:opacity .12s ease,color .12s ease,background .12s ease}.dock-btn:hover{color:var(--text);background:var(--bg3)}.dock-btn-left{position:absolute;top:50%;right:2px;transform:translateY(-50%);padding:8px 1px;background:var(--bg2);border:1px solid var(--line);opacity:.45}.panel-left:hover .dock-btn-left{opacity:.8}.dock-btn-left:hover{opacity:1}.dock-btn-right{margin-left:auto;align-self:center;opacity:.6}.dock-btn-right:hover{opacity:1}.panel-rail{align-items:center;padding-top:8px;gap:10px;overflow:hidden}.panel-left.panel-rail{border-right:1px solid var(--line)}.panel-right.panel-rail{border-left:1px solid var(--line)}.rail-expand{padding:5px;border-radius:var(--radius-sm);color:var(--muted)}.rail-expand:hover{color:var(--text);background:var(--bg3)}.rail-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none}.center-view-switch{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:50;display:flex;gap:2px;padding:2px;border-radius:8px;background:var(--bg2);border:1px solid var(--line);box-shadow:0 2px 10px #00000040}.cvs-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;border-radius:6px;color:var(--muted)}.cvs-btn:hover{color:var(--text)}.cvs-btn.active{color:#fff;background:linear-gradient(180deg,#6493ff,#4a7af0)}.ide-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg0);display:flex}.ide-layer.hidden{display:none}.ide-frame-wrap{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.ide-frame-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--line);background:var(--bg1)}.ide-frame-title{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.ide-frame-actions{display:inline-flex;gap:2px}.ide-frame{flex:1;width:100%;border:0;background:#1e1e1e}.ide-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:var(--muted)}.ide-empty h3{margin:0;font-size:14px;color:var(--text)}.ide-empty p{margin:0;max-width:360px;font-size:12.5px;line-height:1.5}.ide-empty-actions{display:flex;gap:8px;margin-top:6px}.ide-error,.ide-error h3{color:var(--red)}.twin-panel{border-top:1px solid var(--line);margin-top:6px;padding-top:4px}.twin-beta{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--accent, #5b8cff);border-radius:4px;padding:1px 5px;margin-left:6px}.twin-hint{margin:2px 12px 8px;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}.twin-actions{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}.twin-install{display:block;margin:0 12px 8px;padding:8px 10px;font-size:11px;background:var(--bg0);border:1px solid var(--line);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;color:var(--text)}.twin-code-note{margin-top:6px}.twin-devices{list-style:none;margin:0;padding:0 12px 8px}.twin-devices li{display:flex;align-items:center;gap:8px;padding:3px 0}.twin-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.twin-dot.online{background:#4ade80;box-shadow:0 0 6px #4ade80b3}.twin-name{flex:1;font-size:12px;color:var(--text)}.twin-meta{font-size:10.5px;color:var(--muted)}.map-build{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;margin:2px 0}.map-build-hint{margin:4px 2px 0;font-size:11px;color:var(--muted)}.main.with-editor{grid-template-columns:var(--left-w, 262px) 380px minmax(0,1fr) 348px}.panel-editor{border-right:1px solid var(--line)}.editor-sidebar{display:flex;flex-direction:column;min-height:0;height:100%}.editor-head{border-bottom:1px solid var(--line)}.editor-path{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-save-btn,.editor-run-btn{font-size:11px;padding:3px 8px;display:inline-flex;align-items:center;gap:4px}.editor-run-btn{color:var(--accent, #4ade80)}.editor-area{flex:1;resize:none;border:0;outline:0;background:transparent;color:var(--text);font-size:12.5px;line-height:1.5;padding:10px 14px;white-space:pre;-moz-tab-size:4;tab-size:4;min-height:0}.editor-console{border-top:1px solid var(--line);display:flex;flex-direction:column;max-height:38%;background:var(--bg1, rgba(0, 0, 0, .2))}.editor-console-head{padding:4px 12px;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}.editor-console-body{overflow:auto;padding:6px 12px;font-size:11.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.editor-console-body .log-error{color:#f87171}.editor-console-body .log-info{color:var(--text)}.menu-anchor{position:relative}.menu{position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:var(--bg2);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-pop);padding:5px;z-index:60;animation:pop-in .12s ease}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:8px 10px;border-radius:7px}.menu-item:hover{background:var(--accent-dim)}.menu-title{font-weight:600}.menu-desc{font-size:11.5px;color:var(--muted)}.menu-divider{padding:7px 10px 3px;font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.menu-right{left:auto;right:0}.shortcuts-menu{min-width:290px;padding-bottom:9px}.shortcut-row{display:flex;align-items:center;gap:10px;padding:4px 10px;font-size:11.5px;color:var(--muted)}.shortcut-row kbd{flex:none;min-width:86px;text-align:center;font-family:var(--mono);font-size:10px;color:var(--text);background:var(--bg3);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;padding:2.5px 7px}.tree-panel{display:flex;flex-direction:column;min-height:0;flex:1}.tree-rows{flex:1;overflow-y:auto;padding:2px 6px 10px}.tree-row{display:flex;align-items:center;gap:6px;padding:4px 6px;margin:1px 0;border-radius:6px;cursor:pointer;border:1px solid transparent}.tree-row:hover{background:var(--bg2)}.tree-row.selected{background:var(--accent-dim);border-color:#5b8cff59}.tree-link-icon{display:grid;place-items:center;flex:none}.tree-link-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:12px}.joint-chip{display:grid;place-items:center;width:18px;height:18px;flex:none;border-radius:5px;background:var(--bg3);color:var(--faint);border:1px solid var(--line-strong);transition:all .12s ease}.joint-chip.movable{color:var(--orange);border-color:#ff9f4359;background:#ff9f4314}.joint-chip:hover{transform:scale(1.12);color:var(--text)}.joint-chip.selected{box-shadow:0 0 0 2px #ff9f4373;color:var(--orange)}.tree-actions{display:none;align-items:center;gap:2px}.tree-row:hover .tree-actions{display:flex}.tree-actions button{display:grid;place-items:center;width:20px;height:20px;border-radius:5px;color:var(--muted)}.tree-actions button:hover{background:var(--bg4);color:var(--text)}.tree-actions button.danger:hover{background:#ff5d6c26;color:var(--red)}.joint-row{display:flex;align-items:center;gap:5px;padding:2.5px 6px;margin:1px 0 0;border-radius:6px;cursor:pointer;border:1px solid transparent;color:var(--faint)}.joint-row:hover{background:var(--bg2);color:var(--muted)}.joint-row.selected{background:#ff9f431a;border-color:#ff9f4366;color:var(--orange)}.joint-row-elbow{flex:none;opacity:.55}.joint-row-icon{display:grid;place-items:center;flex:none}.joint-row.movable .joint-row-icon,.joint-row.selected .joint-row-icon{color:var(--orange)}.joint-row-name{font-family:var(--mono);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.joint-row-type{margin-left:auto;flex:none;font-style:normal;font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:4px;background:var(--bg3);color:var(--faint)}.joint-row.movable .joint-row-type{background:#ff9f431f;color:var(--orange)}.tree-empty{text-align:center;padding:30px 14px;color:var(--muted)}.tree-footer{border-top:1px solid var(--line);padding:8px 12px;font-size:11px;color:var(--faint)}.tree-footer p{margin:0}.tree-footer b{color:var(--muted)}.viewport{position:absolute;top:0;right:0;bottom:0;left:0}.viewport canvas{display:block}.viewport-overlay{position:absolute;display:flex;gap:6px;align-items:center;z-index:5}.viewport-overlay-tl{top:10px;left:10px}.viewport-overlay-bl{bottom:10px;left:12px;gap:8px;font-size:11px;color:var(--faint);pointer-events:none}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;font-size:11.5px;font-weight:500;color:var(--muted);background:#0f131ad1;border:1px solid var(--line-strong);border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .12s ease}.chip:hover{color:var(--text);border-color:var(--accent)}.chip-active{color:var(--accent-strong);border-color:#5b8cff80;background:#5b8cff1f}.attach-cursor canvas{cursor:crosshair!important}.attach-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:8px 10px 8px 14px;background:#0d161eeb;border:1px solid rgba(77,217,255,.45);border-radius:999px;color:#cfeeff;font-size:12.5px;font-weight:500;box-shadow:0 6px 24px #00000073,0 0 0 3px #4dd9ff12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:8;animation:rise-down .16s ease}.attach-banner svg:first-child{color:#4dd9ff}@keyframes rise-down{0%{opacity:0;transform:translate(-50%) translateY(-8px)}}.attach-step{flex:none;font-family:var(--mono);font-size:10px;font-weight:700;color:#061018;background:#4dd9ff;border-radius:999px;padding:2px 7px}.hover-label{position:absolute;top:0;left:0;display:flex;align-items:center;gap:6px;padding:3.5px 9px;font-size:11px;font-family:var(--mono);color:var(--text);background:#0d1118eb;border:1px solid var(--line-strong);border-radius:6px;pointer-events:none;white-space:nowrap;z-index:9;transition:opacity .1s ease}.hover-dot{width:7px;height:7px;border-radius:50%;flex:none}.hover-dot.link{background:var(--accent-strong)}.hover-dot.joint{background:var(--orange)}.drop-overlay{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:grid;place-content:center;text-align:center;gap:4px;background:#5b8cff14;border:2px dashed rgba(91,140,255,.55);border-radius:14px;z-index:12;pointer-events:none}.drop-overlay p{margin:0;font-size:17px;font-weight:700;color:var(--accent-strong)}.drop-overlay span{font-size:12px;color:var(--muted)}.legend-axis{font-weight:700;font-family:var(--mono)}.legend-x{color:#ff6471}.legend-y{color:#51d273}.legend-z{color:#5b8cff}.legend-note{margin-left:4px}.tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line)}.tab{padding:7px 13px 8px;border-radius:7px 7px 0 0;color:var(--muted);font-weight:500;border:1px solid transparent;border-bottom:none;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{background:var(--bg1);color:var(--text);border-color:var(--line);position:relative}.tab.active:after{content:"";position:absolute;top:-1px;left:10px;right:10px;height:2px;border-radius:2px;background:var(--accent)}.inspector{padding:6px 0 30px}.inspector-section{border-bottom:1px solid var(--line);padding:10px 14px 14px}.inspector-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.inspector-section-header h3{margin:0;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-strong)}.inspector-section-body{display:flex;flex-direction:column;gap:9px}.inspector-empty{padding:26px 18px;color:var(--muted)}.inspector-empty h3{margin:0 0 6px;color:var(--text)}.inspector-empty ul{margin:14px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:8px;font-size:12px}.inspector-empty b{color:var(--text)}.inspector-hint{padding:0 14px}.field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.field-label{font-size:11px;font-weight:500;color:var(--muted);display:flex;align-items:baseline;gap:5px}.field-label-unit{font-style:normal;color:var(--faint);font-size:10px}.field-box{display:flex;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .12s ease,box-shadow .12s ease}.field-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field-box input,.field-box select{flex:1;min-width:0;background:none;border:none;outline:none;padding:6px 8px;color:var(--text)}.field-box input[type=number]{font-family:var(--mono);font-size:12px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.field-box input::-webkit-outer-spin-button,.field-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-unit{padding-right:8px;font-size:10.5px;color:var(--faint);-webkit-user-select:none;user-select:none}.field-disabled{opacity:.55}.field-select select{cursor:pointer;background:transparent}.field-select option{background:var(--bg2)}.field-row{display:flex;gap:8px}.field-hint{margin:0;font-size:11px;color:var(--faint);display:flex;align-items:center;gap:5px}.vec3-field{display:flex;flex-direction:column;gap:4px}.vec3-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.vec3-inputs .field-label{font-size:10px;color:var(--faint);text-transform:uppercase}.inertia-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.inertia-grid .field-label{font-family:var(--mono);font-size:10px}.checkbox-field{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text);font-size:12.5px}.checkbox-field input{accent-color:var(--accent);width:14px;height:14px}.color-field{display:flex;align-items:center;gap:9px}.color-field input[type=color]{width:34px;height:26px;padding:2px;background:var(--bg2);border:1px solid var(--line);border-radius:6px;cursor:pointer}.color-field code{color:var(--muted);font-family:var(--mono);font-size:11.5px}.mesh-attach{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg2);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:6px 6px 6px 10px}.mesh-filename{font-family:var(--mono);font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-filename em{color:var(--orange);font-style:normal}.child-link-btn{align-self:flex-start;font-family:var(--mono);font-size:12px;color:var(--accent-strong)}.code-panel{display:flex;flex-direction:column;height:100%;min-height:0}.code-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.code-filename{font-size:12px;color:var(--text)}.code-meta{font-size:10.5px;color:var(--faint)}.code-actions{margin-left:auto;display:flex;gap:2px}.code-access-note{margin:0;padding:8px 10px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--bg1);font-size:11.5px}.code-access-note.error{color:#ffd5d9;background:#ff5d6c1a}.code-view{flex:1;overflow:auto;margin:0;padding:12px 14px 30px;font-size:11.5px;line-height:1.6;white-space:pre;color:#c9d4e6;background:var(--bg0)}.tok-tag{color:#7ba4ff}.tok-attr{color:#9ecbff}.tok-value{color:#a8e2a1}.tok-punct{color:#5d6678}.tok-comment{color:#586274;font-style:italic}.tok-decl{color:#8a93a6}.pose-panel{position:absolute;left:50%;bottom:14px;transform:translate(-50%);width:min(520px,calc(100% - 28px));background:#0f131aeb;border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;animation:rise-in .16s ease}@keyframes rise-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}}.floating-panel{transform:none;animation:none}.floating-handle{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.pose-header{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line)}.pose-header h3{margin:0;font-size:12px}.pose-sub{font-size:10.5px;color:var(--faint);flex:1}.pose-rows{max-height:200px;overflow-y:auto;padding:8px 12px 12px;display:flex;flex-direction:column;gap:7px}.pose-row{display:grid;grid-template-columns:130px 1fr 58px;align-items:center;gap:10px}.pose-name{text-align:left;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pose-name:hover{color:var(--accent-strong)}.pose-value{font-size:11px;color:var(--orange);text-align:right}.pose-empty{margin:0;padding:14px;color:var(--muted);font-size:12px}.sim-dataplane{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:9px 12px 11px;border-top:1px solid var(--line)}.sim-stat{display:flex;align-items:center;gap:6px;font-size:11px}.sim-stat-label{color:var(--faint)}.sim-stat .mono{color:#3ddc97}.sim-topics{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;width:100%}.sim-topics li{font-size:10.5px;color:var(--muted);background:var(--bg3);border-radius:5px;padding:1px 7px}.map-panel{left:auto;right:14px;transform:none;width:min(360px,calc(100% - 28px))}.map-row{display:grid;grid-template-columns:22px 1fr auto 28px 28px;align-items:center;gap:8px}.map-primary{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;color:var(--faint);background:var(--bg3)}.map-primary.active{color:#ffb454;background:#ffb45429}.map-name{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-meta{font-size:10.5px;color:var(--faint)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--bg4);border-radius:4px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-strong);border:2px solid #0f131a;box-shadow:0 1px 4px #00000080;cursor:grab;transition:transform .1s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--accent-strong);border:2px solid #0f131a;cursor:grab}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#05070b9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:9100;animation:fade-in .14s ease}.upgrade-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}@keyframes fade-in{0%{opacity:0}}.modal{width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 60px);display:flex;flex-direction:column;background:var(--bg1);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-pop);animation:pop-in .16s ease}.modal-header{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--accent-strong)}.modal-header h2{flex:1;margin:0;font-size:14px;color:var(--text)}.modal-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:13px}.cloud-delete-input{width:100%;background:var(--bg1);border:1px solid var(--line);border-radius:6px;padding:7px 9px;color:var(--text);font-size:12.5px;outline:none}.cloud-delete-input:focus{border-color:var(--red)}.modal-footer{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.modal-footer-spacer{flex:1}.format-cards{display:flex;flex-direction:column;gap:7px}.format-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:11px 13px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;transition:all .12s ease}.format-card:hover{border-color:var(--line-strong)}.format-card.active{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 3px #5b8cff1f}.format-title{font-weight:600;display:flex;align-items:center;gap:8px}.badge{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);background:#3ddc971f;padding:2px 6px;border-radius:999px}.license-pill{color:var(--yellow);background:#ffce5c14;border:1px solid rgba(255,206,92,.22)}.license-pill:hover:not(:disabled){color:#ffe49b;background:#ffce5c21}.license-pro{color:var(--green);background:#3ddc9717;border-color:#3ddc9740}.license-pro:hover:not(:disabled){color:#7cf0bf;background:#3ddc9724}.license-upgrade{font-weight:600}.license-status,.license-status:hover{cursor:default;color:var(--green);background:#3ddc9717}.ws-source{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 2px 4px}.ws-source-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.ws-source-btn{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);background:transparent}.ws-source-btn:hover:not(:disabled){color:var(--text);background:var(--accent-dim)}.ws-source-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.ws-source-save{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:10.5px;color:var(--muted)}.format-desc{font-size:11.5px;color:var(--muted)}.upgrade-modal{width:min(520px,calc(100vw - 40px))}.upgrade-lede{margin:0;color:var(--text);font-size:13px}.upgrade-grid{display:grid;gap:8px}.upgrade-grid div,.upgrade-current,.upgrade-section{background:var(--bg2);border:1px solid var(--line);border-radius:10px}.upgrade-grid div{display:flex;flex-direction:column;gap:2px;padding:10px 12px}.upgrade-grid b,.upgrade-current b,.upgrade-section h3{color:var(--text);font-size:12px}.upgrade-grid span,.upgrade-current span{color:var(--muted);font-size:11.5px}.upgrade-current{display:flex;align-items:center;gap:10px;padding:12px;color:var(--green)}.upgrade-current div{display:flex;flex-direction:column;gap:2px}.upgrade-buy{justify-content:center;width:100%}.upgrade-section{display:grid;gap:9px;padding:12px}.upgrade-section h3{margin:0;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-strong)}.upgrade-account-row{display:flex;align-items:center;gap:9px;color:var(--muted)}.upgrade-footer-inline{margin:3px -16px -16px}.upgrade-error{margin:0;padding:9px 11px;border-radius:8px;color:#ffd5d9;background:#ff5d6c1f;border:1px solid rgba(255,93,108,.28)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.export-note{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;color:var(--orange)}.export-note.ok{color:var(--green)}.export-issues{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.export-issues ul{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.export-issues li{font-size:11.5px;color:var(--muted);cursor:pointer;padding:2px 0}.export-issues li:hover{color:var(--text)}.issues-summary{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600}.issues-summary.error{color:var(--red)}.issues-summary.warning{color:var(--yellow)}.issue-error{border-left:2px solid var(--red);padding-left:8px!important}.issue-warning{border-left:2px solid var(--yellow);padding-left:8px!important}.issue-info{border-left:2px solid var(--faint);padding-left:8px!important}.statusbar{display:flex;align-items:center;gap:14px;height:28px;padding:0 12px;background:var(--bg1);border-top:1px solid var(--line);font-size:11px;color:var(--faint);z-index:20}.status-stat{color:var(--muted);font-variant-numeric:tabular-nums}.status-hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-spacer{flex:1}.status-badge{color:var(--faint)}.status-issues-anchor{position:relative}.status-chip{display:inline-flex;align-items:center;gap:5px;padding:2.5px 9px;border-radius:999px;font-size:10.5px;font-weight:600;border:1px solid transparent}.chip-ok{color:var(--green);background:#3ddc971a;border-color:#3ddc9740}.chip-warning{color:var(--yellow);background:#ffce5c1a;border-color:#ffce5c4d}.chip-error{color:var(--red);background:#ff5d6c1f;border-color:#ff5d6c59}.issues-popover{position:absolute;bottom:calc(100% + 10px);right:0;width:360px;max-height:320px;overflow-y:auto;background:var(--bg2);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-pop);padding:10px 12px;z-index:80;animation:pop-in .12s ease}.issues-popover header{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:7px}.issues-popover ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.issues-popover li{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;color:var(--muted);cursor:pointer;line-height:1.4}.issues-popover li:hover{color:var(--text)}.issues-popover li.issue-error svg{color:var(--red);flex:none;margin-top:1px}.issues-popover li.issue-warning svg{color:var(--yellow);flex:none;margin-top:1px}.issues-popover li.issue-info svg{color:var(--faint);flex:none;margin-top:1px}.issues-clean{margin:0;color:var(--green);font-size:12px}.toasts{position:fixed;top:58px;right:14px;display:flex;flex-direction:column;gap:8px;z-index:9500;width:340px}.toast{display:flex;gap:9px;padding:11px 12px;background:var(--bg2);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-pop);animation:toast-in .18s cubic-bezier(.2,.9,.3,1.2)}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}}.toast-icon{flex:none;margin-top:1px}.toast-info .toast-icon{color:var(--accent-strong)}.toast-success .toast-icon{color:var(--green)}.toast-warning .toast-icon{color:var(--yellow)}.toast-error .toast-icon{color:var(--red)}.toast-body{flex:1;min-width:0}.toast-body p{margin:0;font-size:12.5px;font-weight:500}.toast-detail{margin-top:3px!important;font-size:11.5px!important;font-weight:400!important;color:var(--muted)}.toast-close{flex:none;color:var(--faint);align-self:flex-start}.toast-close:hover{color:var(--text)}.learn-btn{color:var(--accent-strong);position:relative}.learn-btn:hover:not(:disabled){background:var(--accent-dim);color:var(--accent-strong)}.learn-pulse:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:8px;border:1.5px solid var(--accent);animation:learn-glow 2s ease-in-out infinite;pointer-events:none}@keyframes learn-glow{0%,to{opacity:.15;box-shadow:0 0 #5b8cff4d}50%{opacity:.9;box-shadow:0 0 14px 2px #5b8cff40}}.shortcuts-more{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 7px 7px}.shortcuts-more .menu-title{color:var(--accent-strong);font-size:12px}.help-modal{width:min(940px,calc(100vw - 36px));height:min(640px,calc(100vh - 56px))}.help-body{flex:1;display:grid;grid-template-columns:252px 1fr;min-height:0}.help-rail{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0}.help-search{display:flex;align-items:center;gap:7px;margin:10px 10px 6px;padding:0 9px;background:var(--bg2);border:1px solid var(--line);border-radius:7px;color:var(--faint)}.help-search:focus-within{border-color:var(--accent)}.help-search input{flex:1;min-width:0;background:none;border:none;outline:none;padding:7px 0;color:var(--text);font-size:12.5px}.help-rail-scroll{flex:1;overflow-y:auto;padding:2px 10px 14px}.help-group-label{padding:12px 4px 4px;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.help-topic-item,.help-tour-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 8px;border-radius:7px;color:var(--muted);font-size:12.5px}.help-topic-item:hover,.help-tour-item:hover{background:var(--bg3);color:var(--text)}.help-topic-item.active{background:var(--accent-dim);color:var(--accent-strong);font-weight:600}.help-topic-item svg{flex:none;opacity:.75}.help-tour-item{color:var(--accent-strong)}.help-tour-item svg{flex:none}.help-tour-item em{margin-left:auto;font-style:normal;font-size:10px;color:var(--faint)}.help-no-results{padding:14px 6px;color:var(--faint);font-size:12px}.help-content{overflow-y:auto;padding:20px 26px 28px;min-height:0}.help-topic-header{display:flex;gap:13px;align-items:flex-start;margin-bottom:16px}.help-topic-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:10px;color:var(--accent-strong);background:var(--accent-dim);border:1px solid rgba(91,140,255,.25)}.help-topic-header h3{margin:0 0 3px;font-size:17px;letter-spacing:-.01em}.help-topic-header p{margin:0;color:var(--muted);font-size:12.5px}.help-blocks{display:flex;flex-direction:column;gap:12px;max-width:560px}.help-p{margin:0;font-size:13px;line-height:1.65;color:#c6cfdf}.help-steps{margin:0;padding-left:0;list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:8px}.help-steps li{counter-increment:step;position:relative;padding-left:32px;font-size:12.8px;line-height:1.55;color:#c6cfdf}.help-steps li:before{content:counter(step);position:absolute;left:0;top:1px;width:20px;height:20px;display:grid;place-items:center;font-size:10.5px;font-weight:700;font-family:var(--mono);color:var(--accent-strong);background:var(--accent-dim);border:1px solid rgba(91,140,255,.3);border-radius:6px}.help-callout{display:flex;gap:9px;padding:10px 12px;border-radius:9px;font-size:12.5px;line-height:1.55}.help-callout p{margin:0}.help-callout svg{flex:none;margin-top:2px}.help-tip{background:#3ddc9712;border:1px solid rgba(61,220,151,.22);color:#b9ecd4}.help-tip svg{color:var(--green)}.help-warn{background:#ffce5c12;border:1px solid rgba(255,206,92,.25);color:#f3e3b4}.help-warn svg{color:var(--yellow)}.help-content code,.tour-card code{font-family:var(--mono);font-size:.92em;color:#9ecbff;background:#5b8cff1a;border:1px solid rgba(91,140,255,.18);border-radius:4px;padding:.5px 5px}.help-content kbd,.tour-card kbd{font-family:var(--mono);font-size:.85em;color:var(--text);background:var(--bg3);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;padding:1px 6px;margin:0 1px}.help-topic-actions{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.help-try{border:1px dashed var(--line-strong)}.tour-spotlight{position:fixed;z-index:250;border-radius:11px;box-shadow:0 0 0 6000px #04070c9e,0 0 24px 2px #5b8cff59;outline:1.5px solid var(--accent);pointer-events:none;transition:all .28s cubic-bezier(.3,.9,.3,1)}.tour-card{position:fixed;z-index:251;background:var(--bg2);border:1px solid var(--line-strong);border-radius:13px;box-shadow:var(--shadow-pop);padding:12px 14px;transition:left .28s cubic-bezier(.3,.9,.3,1),top .28s cubic-bezier(.3,.9,.3,1);animation:pop-in .18s ease}.tour-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.tour-tag{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-dim);padding:2.5px 8px;border-radius:999px}.tour-card h3{margin:0 0 6px;font-size:14.5px}.tour-card p{margin:0 0 12px;font-size:12.5px;line-height:1.6;color:#c6cfdf}.tour-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-dots{display:flex;gap:5px}.tour-dots span{width:6px;height:6px;border-radius:50%;background:var(--bg4);transition:all .2s ease}.tour-dots span.done{background:#5b8cff73}.tour-dots span.active{background:var(--accent-strong);transform:scale(1.35)}.tour-nav{display:flex;align-items:center;gap:6px}.cap-row{display:flex;align-items:center;gap:6px;padding:2px 0}.plugins-panel{border-top:1px solid #1b2434}.plugin-list{list-style:none;margin:0;padding:4px 8px}.plugin-row,.plugin-node-row{display:flex;align-items:center;gap:6px;font-size:11px}.plugin-tier{font-size:9px;text-transform:uppercase;color:#7dd3fc;border:1px solid #2b3a58;border-radius:3px;padding:0 4px}.plugin-status{margin-left:auto;color:#4ade80}.plugin-status-icon{display:inline-flex;align-items:center}.plugin-status-icon.ok{color:#4ade80}.plugin-status-icon.failed{color:#f87171}.plugin-row>.btn{margin-left:auto}.plugin-error{margin:2px 0 6px 22px;font-size:10.5px;color:#f87171}.instance-boot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#080b10b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.instance-boot-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 26px;border-radius:12px;background:#0f131af5;border:1px solid var(--line-strong);box-shadow:var(--shadow-pop);font-size:13px;max-width:420px;text-align:center}.instance-boot-error{color:#f87171;font-size:11px;word-break:break-word}.cloud-panel{border-top:1px solid #1b2434}.cloud-create{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px}.cloud-list{list-style:none;margin:0;padding:4px 8px}.cloud-list li{display:flex;align-items:center;gap:6px;font-size:11px}.cloud-state{margin-left:auto;color:#7dd3fc}.cloud-burn{color:var(--muted);font-size:10px}.cloud-credits{margin-left:auto;font-size:10.5px;color:var(--green);background:#3ddc971a;border:1px solid rgba(61,220,151,.22);border-radius:999px;padding:1px 8px}.cloud-credits-empty{color:var(--yellow);background:#ffce5c1a;border-color:#ffce5c3d}.cloud-estimate{display:flex;flex-direction:column;gap:6px;padding:11px 13px;background:var(--bg2);border:1px solid var(--line);border-radius:10px}.cloud-estimate-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}.cloud-estimate-label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.cloud-estimate-warn{display:flex;align-items:center;gap:7px;margin:0;font-size:11.5px;color:var(--yellow)}.launch-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.launch-progress li{display:flex;align-items:center;gap:6px;min-width:0;color:var(--faint);font-size:11px}.launch-progress li[data-done=true],.launch-progress li[data-active=true]{color:var(--text)}.launch-step-dot{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:var(--bg4);box-shadow:0 0 0 1px var(--line-strong)}.launch-progress li[data-done=true] .launch-step-dot{background:var(--green)}.launch-progress li[data-active=true] .launch-step-dot{background:var(--accent-strong)}.launch-step-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-ws-modal{width:min(1120px,calc(100vw - 32px));height:min(760px,calc(100vh - 40px))}.cloud-ws-modal .modal-header{gap:10px;flex-wrap:wrap}.cloud-ws-tabs{display:inline-flex;align-items:center;gap:2px;padding:2px;background:#03081075;border:1px solid var(--line);border-radius:8px}.cloud-ws-tabs button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:4px 9px;background:transparent;border:0;border-radius:6px;color:var(--muted);font-size:11px;cursor:pointer}.cloud-ws-tabs button:hover{color:var(--text);background:#7ba4ff14}.cloud-ws-tabs button.active{color:#e6f6ff;background:#3e8cff38}.cloud-ws-warn{margin:10px 14px 0;display:flex;align-items:center;gap:8px}.cloud-ws-body{flex:1;min-height:0;padding:0;gap:0}.cloud-ws-files{display:grid;grid-template-columns:minmax(250px,32%) minmax(0,1fr);min-height:0;height:100%}.cloud-ws-tree{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--line)}.cloud-ws-toolbar,.cloud-ws-editor-head,.cloud-ws-search,.cloud-ws-log-row{display:flex;align-items:center;gap:6px;min-height:40px;padding:7px 10px;border-bottom:1px solid var(--line)}.cloud-ws-path,.cloud-ws-editor-head .mono{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.cloud-ws-tree .admin-file-list,.cloud-ws-packages .admin-file-list{flex:1;min-height:0;max-height:none;margin:0;border:0;border-radius:0}.cloud-ws-tree .admin-file-list li{display:flex;align-items:center;border-bottom:1px solid var(--border, #161e2b)}.cloud-ws-tree .admin-file-row{min-width:0;border-bottom:0}.cloud-ws-tree .admin-file-row .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-ws-tree .danger{color:#f87171;margin-right:4px}.cloud-ws-editor{display:flex;flex-direction:column;min-width:0;min-height:0}.cloud-ws-editor .editor-area{background:#060a12}.cloud-ws-noopen{margin:auto}.cloud-ws-packages,.cloud-ws-plugins{display:flex;flex-direction:column;min-height:0;height:100%}.cloud-ws-search input{flex:1;min-width:0;background:var(--bg1);border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--text);font-size:12.5px;outline:none}.cloud-ws-search input:focus{border-color:var(--accent-strong)}.cloud-ws-pkg{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border, #161e2b)}.cloud-ws-pkg-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cloud-ws-desc{color:var(--muted);font-size:11.5px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-ws-ver{color:#7dd3fc;font-size:10px}.cloud-ws-installed,.cloud-ws-installed:disabled{color:#3ddc97;opacity:1}.cloud-ws-pkg button[disabled]{white-space:nowrap}.cloud-ws-log-row{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.cloud-ws-plugins{padding:14px;gap:12px;overflow:auto}.cloud-ws-deploy{border:1px solid var(--line);border-radius:8px;padding:12px;background:#7ba4ff0f;display:flex;align-items:center;gap:12px;justify-content:space-between}.cloud-ws-deploy p{margin:0;min-width:0;overflow-wrap:anywhere;color:var(--text)}@media (max-width: 760px){.cloud-ws-modal{width:calc(100vw - 16px);height:calc(100vh - 16px)}.cloud-ws-tabs{order:3;width:100%}.cloud-ws-tabs button{flex:1;justify-content:center}.cloud-ws-files{grid-template-columns:1fr;grid-template-rows:minmax(170px,38%) minmax(0,1fr)}.cloud-ws-tree{border-right:0;border-bottom:1px solid var(--line)}.cloud-ws-toolbar,.cloud-ws-editor-head,.cloud-ws-search,.cloud-ws-log-row{padding:7px}.cloud-ws-pkg,.cloud-ws-deploy{align-items:stretch;flex-direction:column}}.admin-page{height:100vh;overflow-y:auto;background:linear-gradient(180deg,#151b24e6,#0a0d1200 220px),var(--bg0, #0b1018);color:var(--text);padding:22px clamp(16px,3vw,40px) 64px;display:flex;flex-direction:column;gap:16px}.admin-page>*{width:100%;max-width:1440px;margin-left:auto;margin-right:auto}.admin-topbar{display:flex;align-items:center;gap:14px;min-height:52px;padding-bottom:14px;border-bottom:1px solid var(--line)}.admin-title-block{display:flex;align-items:center;gap:12px;min-width:0}.admin-title-block h1{font-size:18px;letter-spacing:-.01em;line-height:1.1;margin:0}.admin-title-block p,.admin-section-head p,.admin-metric p,.admin-gate p{margin:3px 0 0;color:var(--muted);font-size:12px}.admin-title-block p{font-family:var(--mono);font-size:11px}.admin-title-block p span{color:var(--faint);margin-left:8px}.admin-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;color:#dbe7ff;background:linear-gradient(160deg,#22304a,#131a26);border:1px solid var(--line-strong);box-shadow:inset 0 1px #ffffff0f;flex:0 0 auto}.admin-header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.admin-error{display:flex;align-items:center;gap:8px;background:#ff5d6c1a;border:1px solid rgba(255,93,108,.45);color:#ffb0b9;padding:9px 12px;border-radius:var(--radius);font-size:12.5px}.admin-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-metric{display:flex;align-items:center;gap:12px;min-height:76px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg1);transition:border-color .15s ease}.admin-metric:hover{border-color:var(--line-strong)}.admin-metric>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--accent-strong);background:var(--accent-dim)}.admin-metric strong{display:block;font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1}.admin-metric p{text-transform:uppercase;letter-spacing:.07em;font-size:10.5px;font-weight:600}.tone-green>span{color:var(--green);background:#3ddc971f}.tone-yellow>span{color:var(--yellow);background:#ffce5c1f}.tone-red>span{color:var(--red);background:#ff5d6c1f}.tone-muted>span{color:var(--muted);background:#8b95a81a}.admin-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:14px}.admin-surface{border:1px solid var(--line);border-radius:10px;background:var(--bg1)}.admin-tabs{display:flex;gap:4px;padding:0;border-bottom:1px solid var(--line)}.admin-tabs button{position:relative;border:0;background:transparent;color:var(--muted);padding:9px 14px 11px;font-size:12.5px;font-weight:500;border-radius:6px 6px 0 0}.admin-tabs button:hover{color:var(--text);background:#5b8cff0f}.admin-tabs button.active{color:var(--text)}.admin-tabs button.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.admin-cluster,.admin-provision,.admin-instances,.plans-features{padding:16px 18px}.plans-features .policy-matrix{overflow-x:auto}.plans-features table{width:100%;border-collapse:collapse}.plans-features th,.plans-features td{border-bottom:1px solid var(--line);padding:10px;vertical-align:middle}.plans-features td span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.plans-features input[type=number]{width:90px}.plans-features th{text-align:left;vertical-align:bottom}.plans-features input:not([type=checkbox]){width:100%;min-width:80px;background:#070a10;border:1px solid var(--line);border-radius:6px;color:var(--text);padding:5px 7px;font-size:12px}.policy-plan-label{font-weight:700}.policy-plan-reorder{display:flex;gap:4px;margin-top:5px}.policy-plan-reorder button{border:1px solid var(--line);background:var(--bg2);color:var(--muted);border-radius:5px;padding:2px 5px;line-height:0}.policy-plan-reorder button:disabled{opacity:.4}.policy-plan-delete:not(:disabled):hover{border-color:var(--red);color:var(--red)}.policy-section-row td{background:var(--bg2);color:var(--accent-strong);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.policy-subhead{margin:22px 0 2px;font-size:13px;color:var(--text)}.policy-subnote{margin:0 0 10px;font-size:12px;color:var(--muted)}.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-section-head h2{display:flex;align-items:center;gap:7px;margin:0;color:var(--text);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em}.admin-section-head h2 svg{color:var(--accent-strong)}.admin-pct{font-family:var(--mono);font-size:18px;color:var(--accent-strong)}.admin-pct.hot{color:var(--red)}.quota-grid{display:grid;gap:8px}.quota-row{display:grid;grid-template-columns:minmax(140px,220px) minmax(120px,1fr) minmax(118px,160px);align-items:center;gap:10px;font-size:11.5px}.quota-label{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quota-bar{height:6px;background:#070a10;border:1px solid var(--line);border-radius:4px;overflow:hidden}.quota-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .4s ease}.quota-fill.hot{background:linear-gradient(90deg,#ffce5c,#ff5d6c)}.quota-val{text-align:right;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-create{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.admin-select-wrap{display:grid;gap:6px}.admin-distro{width:100%}.admin-create-btn{height:35px}.admin-table-head{align-items:center}.admin-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:min(590px,100%)}.admin-search{display:flex;align-items:center;gap:7px;width:min(260px,100%);height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#070a10;color:var(--muted)}.admin-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.admin-filter{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#070a10}.admin-filter button{min-width:72px;height:26px;padding:0 9px;border-radius:6px;color:var(--muted);font-size:12px}.admin-filter button:hover,.admin-filter button.active{color:var(--text);background:var(--bg3)}.admin-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#070a10}.admin-table{width:100%;min-width:900px;border-collapse:collapse;font-size:12px}.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:#5b8cff0e}.admin-table th{position:sticky;top:0;z-index:1;color:var(--muted);background:#0b0f16;font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em}.admin-id,.admin-user span{display:inline-block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user span{max-width:180px;color:var(--muted)}.admin-distro-pill,.admin-state,.admin-pod{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;line-height:1;white-space:nowrap}.admin-distro-pill{color:#93c5fd;background:#5b8cff1f}.admin-state{text-transform:capitalize;color:var(--muted);background:#8b95a81a}.state-running{color:#4ade80}.state-suspended{color:#fbbf24}.admin-pod{color:var(--green);background:#3ddc971c}.admin-pod.attention{color:var(--yellow);background:#ffce5c1c}.admin-seen{color:var(--muted)}.admin-actions{display:flex;align-items:center;gap:3px;min-width:174px}.admin-empty{padding:18px;color:var(--muted);text-align:center}.admin-logs-modal,.admin-terminal-modal{width:min(980px,94vw)}.admin-logs{background:#05080d;color:#cfe3ff;padding:12px;border-radius:8px;font-size:11.5px;line-height:1.5;max-height:60vh;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:0}.dev-plan-switcher{position:fixed;left:12px;bottom:12px;z-index:9000;display:flex;align-items:center;gap:8px;padding:6px 8px;background:#080c14eb;border:1px solid #243049;border-radius:10px;box-shadow:0 8px 24px #0006;font-size:11px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dev-plan-switcher .dev-plan-tag{color:#ffce5c;font-weight:700;letter-spacing:.06em}.dev-plan-switcher .dev-plan-group{display:flex;border:1px solid #243049;border-radius:7px;overflow:hidden}.dev-plan-switcher button{background:transparent;border:0;color:#9fb2d0;padding:4px 9px;cursor:pointer;font-size:11px}.dev-plan-switcher .dev-plan-group button+button{border-left:1px solid #243049}.dev-plan-switcher button.active{background:#2c5cff;color:#fff}.dev-plan-switcher .dev-plan-admin{display:inline-flex;align-items:center;gap:4px;border:1px solid #243049;border-radius:7px}.dev-plan-switcher .dev-plan-admin.active{background:#3ddc97;color:#04110b}.admin-file-list{list-style:none;margin:8px 0 0;padding:0;max-height:56vh;overflow:auto;border:1px solid var(--border, #1b2433);border-radius:8px}.admin-file-list .admin-empty{padding:14px}.admin-file-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;background:transparent;border:0;border-bottom:1px solid var(--border, #161e2b);color:inherit;cursor:pointer;text-align:left;font-size:12.5px}.admin-file-row:hover{background:#7ba4ff14}.admin-file-row .admin-file-size{margin-left:auto;opacity:.5;font-size:11px}.admin-terminal{height:min(62vh,620px);min-height:360px;padding:8px;background:#05080d}.admin-terminal .xterm{height:100%}.admin-terminal-state{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted)}.admin-terminal-state.connected{color:var(--green)}.admin-terminal-state.error{color:var(--red)}.admin-terminal-state.closed{color:var(--yellow)}.admin-gate-page{align-items:center;justify-content:center}.admin-gate{width:min(420px,calc(100vw - 32px));padding:30px 26px;border:1px solid var(--line-strong);border-radius:12px;background:var(--bg1);box-shadow:var(--shadow-pop);text-align:center}.admin-gate .admin-mark{margin:0 auto 14px}.admin-gate h1{margin:0;font-size:21px}.admin-gate-actions{display:flex;justify-content:center;gap:8px;margin-top:18px}.spin{animation:admin-spin .9s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}@media (max-width: 980px){.admin-overview,.admin-grid{grid-template-columns:1fr}.admin-topbar,.admin-table-head,.admin-tools{align-items:stretch;flex-direction:column}.admin-topbar{display:grid;grid-template-columns:minmax(0,1fr);min-height:92px}.admin-header-actions,.admin-tools{margin-left:0;justify-content:flex-start;width:100%}.admin-search{width:100%}.admin-filter{overflow-x:auto}.quota-row{grid-template-columns:1fr;gap:5px}.quota-val{text-align:left}}.error-boundary{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg0);color:var(--text);font-family:var(--font);z-index:9999}.error-boundary__card{max-width:460px;width:100%;background:var(--bg2);border:1px solid var(--border, #1b2434);border-radius:var(--radius);padding:24px}.error-boundary__card h1{margin:0 0 8px;font-size:18px}.error-boundary__card p{margin:0 0 12px;color:var(--muted);font-size:14px}.error-boundary__detail{margin:0 0 16px;padding:10px 12px;background:var(--bg1);border-radius:var(--radius-sm);font-family:var(--mono);font-size:12px;color:var(--muted);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.error-boundary__actions{display:flex;gap:8px}.error-boundary__actions button{padding:8px 14px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent);color:#fff;font-family:inherit;font-size:14px;cursor:pointer}.error-boundary__actions .error-boundary__secondary{background:var(--bg3);color:var(--text);border-color:var(--border, #1b2434)}.admin-capacity{padding:13px 16px}.admin-capacity-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px}.admin-capacity-head svg{color:var(--accent-strong)}.admin-capacity-head span{margin-left:auto;color:var(--muted);font-size:11px}.admin-capacity-warn{margin:6px 0 0;font-size:11.5px;color:var(--red)}.admin-observability{padding:16px 18px}.admin-observability .admin-overview{margin-bottom:12px}.admin-events{overflow-x:auto}.admin-events table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-events th,.admin-events td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #1b2434);white-space:nowrap}.admin-events tbody tr:hover{background:#5b8cff0d}.admin-events td:first-child{font-family:var(--mono);font-size:11.5px;color:var(--muted)}.admin-events th{color:var(--muted);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em}.admin-events td:last-child{white-space:normal;color:var(--muted)}.admin-events-empty{text-align:center;color:var(--muted);padding:18px}.evt-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-family:var(--mono);font-size:11px;background:var(--bg3);color:var(--text)}.evt-badge.evt-warn{background:#eab30829;color:#f5d76e}.evt-badge.evt-error{background:#ef444429;color:#f7a4a4}.admin-audit-modal{width:min(960px,94vw);max-height:88vh}.admin-audit-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border, #1b2434)}.admin-audit-filters select,.admin-audit-filters input[type=search]{background:var(--bg2);color:var(--text);border:1px solid var(--border, #1b2434);border-radius:var(--radius-sm);padding:6px 10px;font-family:inherit;font-size:13px}.admin-audit-filters form{flex:1;min-width:160px;margin:0}.admin-audit-filters input[type=search]{width:100%}.admin-audit-more{margin:12px auto 0;display:block}.admin-audit-actorchip{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border, #1b2434);background:var(--accent-dim)}.admin-audit-actorchip .admin-audit-owned{margin-right:auto}.linklike{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--accent-strong, #7ba4ff);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.linklike:hover{color:var(--accent, #5b8cff)}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}
