:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;--bg: #1e1e1e;--bg-panel: #252526;--bg-elev: #2d2d30;--border: #3c3c3c;--text: #d4d4d4;--text-dim: #858585;--accent: #0e7acc;--accent-hover: #1f8cdb;--danger: #d16969;--warn: #d7ba7d}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden}button{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);padding:4px 10px;font-size:12px;border-radius:3px;cursor:pointer;font-family:inherit}button:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:4px 6px;font-size:12px;border-radius:2px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#5a5a5a}::-webkit-scrollbar-track{background:transparent}.app-root{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;font-size:12px}.toolbar-sep{width:1px;height:18px;background:var(--border);margin:0 4px}.toolbar-spacer{flex:1}.toolbar-info{color:var(--text-dim);margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.toolbar-error{color:var(--danger);margin-left:10px;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot-dirty{color:var(--warn)}.main-area{flex:1;min-height:0}.panel{display:flex;flex-direction:column;background:var(--bg-panel);overflow:hidden}.panel-header{padding:4px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);background:var(--bg-elev);border-bottom:1px solid var(--border);flex-shrink:0}.panel-body{flex:1;overflow:auto;min-height:0}.panel-empty{padding:20px;color:var(--text-dim);font-size:12px;line-height:1.6}.panel-error{color:var(--danger)}.resize-h{width:4px;background:var(--border);cursor:col-resize;transition:background .15s}.resize-h:hover,.resize-h[data-resize-handle-active]{background:var(--accent)}.resize-v{height:4px;background:var(--border);cursor:row-resize}.resize-v:hover{background:var(--accent)}.bottom-area{height:280px;display:flex;flex-direction:column;border-top:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.yaml-body{padding:0}.panel-tabs{display:flex;background:var(--bg-elev);border-bottom:1px solid var(--border);flex-shrink:0}.panel-tab{flex:1;padding:6px 10px;font-size:11px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.panel-tab:hover{color:var(--text)}.panel-tab.active{color:var(--text);border-bottom-color:var(--accent)}.template-list{padding:6px;display:flex;flex-direction:column;gap:4px}.template-item{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:3px;color:var(--text);cursor:pointer;text-align:left;font-family:inherit}.template-item:hover:not(:disabled){border-color:var(--accent);background:var(--bg-elev)}.template-item:disabled{opacity:.5;cursor:not-allowed}.template-item-head{display:flex;align-items:center;gap:6px;font-size:12px}.template-item-label{flex:1}.template-item-kind{font-size:9px;padding:1px 5px;background:var(--warn);color:#000;border-radius:2px;text-transform:uppercase}.template-item-busy{font-size:11px}.template-item-trigger{font-size:10px;color:var(--text-dim)}.file-tree{padding:4px 0;-webkit-user-select:none;user-select:none;font-size:12px}.tree-row{display:flex;align-items:center;gap:4px;padding:2px 6px 2px 4px;cursor:pointer;white-space:nowrap}.tree-row:hover{background:var(--bg-elev)}.tree-row.selected{background:var(--accent);color:#fff}.tree-row.dim{color:var(--text-dim);cursor:default}.tree-caret{display:inline-block;width:10px;text-align:center;color:var(--text-dim)}.tree-icon{display:inline-block;width:14px;text-align:center}.tree-name{overflow:hidden;text-overflow:ellipsis}.stage-wrap{display:flex;flex-direction:column;height:100%;background:#0d0d0d}.stage-bar{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--bg-elev);border-bottom:1px solid var(--border);flex-shrink:0}.stage-bar-spacer{flex:1}.stage-label{display:inline-flex;align-items:center;color:var(--text-dim);font-size:12px}.resolution-custom{display:inline-flex;align-items:center;gap:2px;margin-left:4px}.resolution-input{width:60px;text-align:center}.stage-viewport{flex:1;position:relative;overflow:hidden;background:repeating-linear-gradient(45deg,#0a0a0a 0,#0a0a0a 8px,#0e0e0e 8px,#0e0e0e 16px)}.stage-canvas{position:absolute;left:16px;top:16px;background:#202020;outline:1px solid #3a3a3a;box-shadow:0 0 30px #00000080;overflow:hidden}.stage-window-outline{position:absolute;border:1px dashed rgba(14,122,204,.6);pointer-events:none;z-index:0}.snap-guide{position:absolute;background:#ff4081;pointer-events:none;z-index:9999;box-shadow:0 0 4px #ff408199}.snap-guide-v{width:1px}.snap-guide-h{height:1px}.stage-scale-badge{position:absolute;right:8px;bottom:8px;padding:3px 8px;background:#0009;border:1px solid var(--border);border-radius:3px;color:var(--text-dim);font-size:11px;font-family:monospace;pointer-events:none}.part{position:absolute;cursor:pointer;overflow:hidden;box-sizing:border-box}.part.part-selected{outline:2px solid #0e7acc!important;outline-offset:0}.part.part-bad-expr{outline:2px solid var(--danger)!important;outline-offset:0;background:#ff000014!important}.part.part-bad-expr.part-selected{outline:2px solid var(--danger)!important;box-shadow:inset 0 0 0 2px #0e7acc}.part:hover:not(.part-selected){outline:1px dashed rgba(255,255,255,.4)}.part-texture img{width:100%;height:100%;object-fit:fill;pointer-events:none;image-rendering:pixelated}.texture-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);color:var(--text-dim);font-size:10px;padding:4px;text-align:center;box-sizing:border-box}.texture-icon{font-size:20px;opacity:.6}.texture-path{word-break:break-all;margin-top:2px;max-height:2.4em;overflow:hidden}.texture-tint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:multiply}.part-label{color:#fff;white-space:nowrap;text-shadow:1px 1px 0 #3f3f3f;font-family:Courier New,monospace;line-height:1;pointer-events:auto}.part-button{position:absolute;display:flex;align-items:center;justify-content:center;color:#fff;font-family:Courier New,monospace;text-shadow:1px 1px 0 #000}.part-button img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none;image-rendering:pixelated}.button-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0e7acc26;border:1px solid rgba(14,122,204,.4);font-size:10px;color:#9cdcfe;padding:2px;box-sizing:border-box}.button-text{position:relative;z-index:2;font-weight:700;pointer-events:none}.button-hover-tint{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:overlay;pointer-events:none}.part-canvas{background:#569cd60d;border:1px dashed rgba(86,156,214,.5);overflow:visible}.part-scroll{background:#c586c00f;border:1px dashed rgba(197,134,192,.55)}.container-label{position:absolute;top:0;left:0;padding:1px 5px;background:#0000008c;color:#cdcdcd;font-size:9px;font-family:monospace;pointer-events:none;z-index:1}.scroll-content{pointer-events:auto}.part-slot{display:flex;align-items:center;justify-content:center;background:#4ec9b00f}.slot-frame{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(78,201,176,.7);background:#4ec9b01a;pointer-events:none}.slot-item{position:relative;font-size:16px;z-index:1}.slot-id{position:absolute;bottom:0;left:0;right:0;padding:0 2px;background:#0000008c;color:#4ec9b0;font-size:8px;font-family:monospace;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.slot-subscript{position:absolute;right:1px;bottom:8px;font-size:9px;color:#fff;text-shadow:1px 1px 0 #000;pointer-events:none}.part-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#dcdcaa0f;border:1px dashed rgba(220,220,170,.5);color:#dcdcaa;font-size:9px;text-align:center}.item-icon{font-size:16px;line-height:1}.item-label{margin-top:1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.part-frame img{width:100%;height:100%;object-fit:fill;pointer-events:none;image-rendering:pixelated}.frame-badge{position:absolute;right:1px;top:1px;padding:0 4px;background:#000000a6;color:#d7ba7d;font-size:8px;font-family:monospace;border-radius:2px;pointer-events:none}.part-gif img{width:100%;height:100%;object-fit:fill;pointer-events:none}.part-entity{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ce917814;border:1px dashed rgba(206,145,120,.55);color:#ce9178;font-size:9px;text-align:center}.entity-icon{font-size:18px;line-height:1}.entity-model{margin-top:1px;font-family:monospace}.entity-name{font-size:8px;opacity:.85}.part-particle{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffd7000f;border:1px dashed rgba(255,215,0,.5);color:#f5d77a;font-size:9px;text-align:center}.particle-icon{font-size:16px;line-height:1}.particle-path{margin-top:1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.part-unknown{background:#d7ba7d1f;border:1px dashed rgba(215,186,125,.6);display:flex;align-items:center;justify-content:center;color:#d7ba7d;font-size:10px}.unknown-label{text-align:center}.unknown-sub{opacity:.7;font-size:9px}.inspector{padding:0;font-size:12px}.inspector-header{padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.inspector-key{font-weight:700;color:#9cdcfe;font-size:14px}.inspector-type{color:var(--text-dim);margin-top:2px}.inspector-desc{color:var(--text-dim);margin-top:4px;font-size:11px;line-height:1.4}.badge-warn{margin-left:6px;padding:1px 5px;background:var(--warn);color:#000;border-radius:2px;font-size:10px}.inspector-group{padding:4px 0 6px;border-bottom:1px solid var(--border)}.inspector-group-title{padding:6px 12px 4px;color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:.8px}.inspector-row{display:flex;padding:3px 12px;gap:8px;align-items:baseline}.inspector-row:hover{background:var(--bg-elev)}.inspector-row-name{width:100px;flex-shrink:0;color:var(--text-dim);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector-row-name .req{color:var(--danger);margin-left:2px}.inspector-row-value{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.inspector-row-value code{font-family:Consolas,Courier New,monospace;font-size:11px;color:#ce9178;word-break:break-all}.inspector-evaled{color:#4ec9b0;font-size:11px;font-family:monospace}.inspector-err{color:var(--danger);font-size:11px}.field-row{display:flex;padding:4px 12px;gap:8px;align-items:flex-start}.field-row:hover{background:var(--bg-elev)}.field-label{width:90px;flex-shrink:0;color:var(--text-dim);font-size:11px;padding-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-label .req{color:var(--danger);margin-left:2px}.field-control{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.field-input{width:100%;padding:3px 6px;font-size:11px;font-family:Consolas,Courier New,monospace;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:2px}.field-input:focus{outline:none;border-color:var(--accent)}.field-input.has-err{border-color:var(--danger)}.field-hint{font-size:10px;color:var(--text-dim)}.field-err{font-size:10px;color:var(--danger)}.field-expr{display:flex;align-items:center;gap:6px;width:100%}.field-expr-input{flex:1;min-width:0}.field-expr-eval{flex-shrink:0;color:#4ec9b0;font-size:10px;font-family:monospace;white-space:nowrap}.field-expr-eval.has-err{color:var(--danger)}.field-bool{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding-top:3px;font-size:11px;color:var(--text-dim)}.field-color{display:flex;align-items:center;gap:4px}.field-color-picker{width:22px;height:22px;padding:0;border:1px solid var(--border);background:transparent;cursor:pointer;flex-shrink:0}.field-color-swatch{width:22px;height:22px;flex-shrink:0;border:1px solid var(--border);background-image:linear-gradient(45deg,#888 25%,transparent 25%),linear-gradient(-45deg,#888 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#888 75%),linear-gradient(-45deg,transparent 75%,#888 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.field-color-text{flex:1;min-width:0}.field-array{display:flex;flex-direction:column;gap:2px;width:100%}.field-array-row{display:flex;gap:4px}.field-array-del{padding:0 6px;font-size:14px;line-height:1}.field-array-add{font-size:10px;align-self:flex-start;padding:2px 8px;margin-top:2px}.dos-field{display:flex;flex-direction:column;gap:4px;width:100%}.dos-row{border:1px solid var(--border);background:var(--bg);border-radius:3px;padding:4px}.dos-row-head{display:flex;align-items:center;gap:4px}.dos-tag-select{flex:1;min-width:0;font-size:11px;padding:2px 4px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text);border-radius:2px;font-family:Consolas,Courier New,monospace}.dos-mini{flex-shrink:0;width:20px;height:20px;padding:0;font-size:11px;line-height:1;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:2px}.dos-mini:hover:not(:disabled){background:var(--border)}.dos-mini:disabled{opacity:.3;cursor:not-allowed}.dos-del{color:var(--danger)}.dos-params{display:flex;flex-direction:column;gap:3px;margin-top:4px;padding-left:4px}.dos-param{display:flex;align-items:center;gap:6px}.dos-param-name{flex-shrink:0;width:70px;font-size:10px;color:var(--text-dim);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dos-param-opt{color:var(--warn);margin-left:2px}.dos-param .field-input{flex:1;min-width:0}.dos-desc{font-size:10px;color:var(--text-dim);line-height:1.4;padding:2px 0 0}.dos-desc-warn{color:var(--warn)}.dos-toolbar{display:flex;gap:6px;padding-top:2px}.dos-toolbar button{font-size:10px;padding:3px 8px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:2px}.dos-toolbar button:hover{background:var(--border)}.dos-add{color:#4ec9b0!important}.dos-raw{width:100%;font-family:Consolas,Courier New,monospace;font-size:11px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:2px;padding:4px 6px;resize:vertical}.dos-raw:focus{outline:none;border-color:var(--accent)}.path-field{width:100%}.path-field-row{display:flex;gap:4px;align-items:center}.path-field-input{flex:1;min-width:0}.resource-browser-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.resource-browser{width:min(900px,90vw);height:min(640px,85vh);background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000080}.resource-browser-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.resource-browser-title{font-size:12px;color:var(--text);font-weight:600;flex-shrink:0}.resource-browser-head .field-input{flex:1}.resource-browser-foot{padding:6px 12px;border-top:1px solid var(--border);font-size:10px;color:var(--text-dim)}.resource-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:12px}.resource-thumb{border:1px solid var(--border);border-radius:3px;background:var(--bg);cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:border-color .12s}.resource-thumb:hover{border-color:var(--accent)}.resource-thumb-img{width:100%;height:90px;display:flex;align-items:center;justify-content:center;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0;background-color:#1a1a1a}.resource-thumb-img img{max-width:100%;max-height:100%;image-rendering:pixelated}.resource-thumb-loading,.resource-thumb-err{color:var(--text-dim);font-size:18px}.resource-thumb-err{color:var(--danger)}.resource-thumb-name{padding:4px 6px 0;font-size:10px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-thumb-path{padding:0 6px 4px;font-size:9px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Consolas,Courier New,monospace}
