.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:solid thin #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:#ffffff1a}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:#ffffff1a}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:#ffffff1a}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-operator,.cm-s-dracula span.cm-keyword{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-variable-3,.cm-s-dracula span.cm-type{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:#ffffff1a}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}*{box-sizing:border-box;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}body,html,#root{height:100%;margin:0}.app-root{display:flex;flex-direction:column;height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0f1720;color:#fff}.app-main{display:flex;flex:1}.viewport{flex:1;display:flex;align-items:stretch;justify-content:center;padding:12px;background:#0b0b0b}.viewport-canvas{width:100%;height:100%;background:#000}.sidebar{width:320px;background:#111;color:#ddd;padding:12px;overflow:auto}.app-footer{padding:8px 12px;background:#0f1720;color:#fff;text-align:center}.controls select{margin-left:8px}.error-banner{background:#3b0f14;color:#ffccd5;padding:8px 12px;font-size:14px}.full-ui .topbar{display:flex;align-items:center;gap:16px;padding:8px 12px;background:#0b0b0b;color:#fff}.brand{display:flex;align-items:center;gap:8px}.logo-img{width:36px;height:36px;border-radius:6px;object-fit:cover}.title{font-size:14px}.menu{display:flex;gap:8px;margin-left:8px}.menu button{background:transparent;color:#ddd;border:0;padding:6px 10px;border-radius:4px}.menu button:hover{background:#111}.top-controls{margin-left:auto}.content{display:flex;flex:1;min-height:0}.left-panel{width:200px;background:#0e0e10;color:#bfc7d3;padding:12px;border-right:1px solid #111}.explorer-title{font-size:12px;font-weight:700;margin-bottom:8px}.explorer-group{margin-bottom:10px}.explorer-row{display:flex;align-items:center;gap:6px;padding:6px;border-radius:4px;cursor:pointer;font-size:13px}.explorer-row:hover{background:#101214}.explorer-row.group{font-weight:600;color:#c9d4e6;text-transform:uppercase;font-size:11px;letter-spacing:.5px}.explorer-row.file{padding-left:16px}.explorer-row.opened{color:#fff;font-weight:600}.explorer-children{margin-left:8px}.caret{display:inline-block;width:12px;color:#8aa0c2}.folder-name{color:#a8b6cf}.file-name{color:#cdd7ea}.center-panel{flex:1;background:#000;display:flex;align-items:stretch;justify-content:center}.viewport-canvas-wrap{flex:1;padding:12px}.viewport-canvas{width:100%;height:100%;background:#000;border-radius:4px}.right-panel{width:460px;background:#0f1720;color:#dbe7ff;display:flex;flex-direction:column;padding:8px;border-left:1px solid #111}.editor-tabs{display:flex;gap:6px;padding:6px;flex-wrap:wrap}.tab{padding:6px 6px 6px 10px;background:#ffffff08;border-radius:10px;cursor:pointer;color:#9fb1d6;position:relative;display:inline-flex;align-items:center;gap:8px;margin-right:6px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.04)}.tab.active{background:#ffffff0f;color:#fff;box-shadow:0 6px 18px #02061799}.tab.dirty .tab-label{color:#ffd2a6}.tab .tab-close{background:transparent;border:0;color:#7fa1d6;margin-left:6px;cursor:pointer}.tab .tab-close:hover{color:#fff}.editor-area{flex:1;overflow:hidden;padding:6px;display:flex;flex-direction:column;min-height:0}.editor-footer{display:flex;align-items:center;gap:12px;padding:8px;border-top:1px solid #111}.app-footer{background:#060708;color:#8b98a8;padding:6px;text-align:center}.menu-container{position:relative;display:inline-block;margin-right:16px}.menu-submenu{position:relative;padding-right:8px}.menu-submenu .menu-item{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.menu-submenu .menu-item:after{content:"▸";font-size:12px;opacity:.7}.menu-submenu .sub-dropdown{position:absolute;top:-6px;left:100%;margin-left:2px;opacity:0;visibility:hidden;pointer-events:none;display:block;min-width:180px;background:#0f1724f2;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 10px 30px #00000059;padding:6px;z-index:20;transition:opacity .12s ease,visibility .12s ease}.menu-submenu:hover>.sub-dropdown,.menu-submenu:focus-within>.sub-dropdown{opacity:1;visibility:visible;pointer-events:auto}.menu-item{padding:6px 12px;cursor:pointer;border-radius:6px;transition:background-color .3s ease}.menu-item:hover{background-color:#ffffff0a}.dropdown-content{top:100%;display:none;position:absolute;background-color:#121212f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:200px;box-shadow:0 8px 24px #0009;z-index:100;border:1px solid rgba(255,255,255,.04);border-radius:6px;padding:6px 0}.dropdown-content a{color:#dbe7ff;padding:8px 14px;text-decoration:none;display:block;font-size:.95em}.dropdown-content a:hover{background-color:#ffffff08}.menu-container:hover>.dropdown-content{display:block}.menu-separator{height:1px;margin:6px 0;background-color:#ffffff0a}.menu-checkbox{display:flex;align-items:center;padding:8px 12px}.menu-checkbox input{margin-right:8px}.menu-container.disabled{pointer-events:none;opacity:.5}#reload-button,.editor-footer button{background-color:#3b82f6;color:#fff;border:none;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:.9em;font-weight:600}#reload-button:hover,.editor-footer button:hover{background-color:#60a5fa}#reload-button:disabled,.editor-footer button:disabled{background-color:#ffffff14;color:#fff6;cursor:not-allowed;box-shadow:none}#error-console{background-color:#ef444414;color:#ffb4b4;padding:8px;border-radius:6px;font-family:monospace;font-size:13px;display:none}#auto-refresh-container{display:flex;align-items:center;gap:8px}#readonly-warning-banner{display:none}.explorer-item.opened{color:#fff;font-weight:600}.top-controls{display:none}.editor-block{margin-top:8px}.editor-textarea{width:100%;height:160px;background:#09090a;color:#e6eef8;border:1px solid #222;padding:8px;font-family:monospace;resize:vertical}.editor-row{display:flex;justify-content:space-between;align-items:center;margin:6px 0}.code-editor{flex:1;min-height:0}.code-editor .CodeMirror{height:100%;font-size:14px;line-height:1.5}
