:root{--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d30;--text-primary: #d4d4d4;--text-secondary: #9cdcfe;--text-muted: #6a9955;--accent-primary: #569cd6;--accent-secondary: #ce9178;--accent-error: #f44747;--accent-warning: #ffa600;--border-color: #1e1e1e;--panel-bg: #252526;--panel-border: #007acc;--button-bg: #3e3e42;--button-hover: #4e4e52;--button-active: #0e639c;--input-bg: #3c3c3c;--input-border: #3c3c3c;--scrollbar-thumb: #404040;--scrollbar-track: #2d2d30;--status-bar-bg: #007acc;--status-bar-text: #ffffff;--highlight-line: #264f78;--highlight-range: rgba(255, 255, 255, .15);--editor-line-numbers: #6e7681;--editor-indent-guide: #404040}[data-theme=dark]{--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d30;--text-primary: #d4d4d4;--text-secondary: #9cdcfe;--accent-primary: #569cd6}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e8e8e8;--text-primary: #24292e;--text-secondary: #0366d6;--text-muted: #6a737d;--accent-primary: #0366d6;--accent-secondary: #005cc5;--accent-error: #cb2431;--accent-warning: #e36209;--border-color: #e1e4e8;--panel-bg: #f1f8ff;--panel-border: #0366d6;--button-bg: #f6f8fa;--button-hover: #eaecef;--button-active: #005cc5;--input-bg: #ffffff;--input-border: #e1e4e8;--scrollbar-thumb: #c1c8cd;--scrollbar-track: #f1f3f4;--status-bar-bg: #0366d6;--status-bar-text: #ffffff;--highlight-line: #c8e1ff;--highlight-range: rgba(3, 102, 214, .15);--editor-line-numbers: #959da5;--editor-indent-guide: #d3d3d3}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:13px;line-height:1.5;color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.main-layout{display:flex;flex:1;overflow:hidden}.editor-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-primary)}.editor-wrapper{flex:1;overflow:hidden;position:relative}.monaco-editor{height:100%!important;width:100%!important}.monaco-editor .overflow-guard{height:100%!important}.status-bar{display:flex;align-items:center;height:24px;background-color:var(--bg-tertiary);border-top:1px solid var(--border-color);padding:0 8px;gap:16px;font-size:12px}.status-bar-item{display:flex;align-items:center;gap:4px;color:var(--text-secondary)}.status-bar-item:hover{color:var(--accent-primary)}.status-bar-item.error{color:var(--accent-error)}.status-bar-item.warning{color:var(--accent-warning)}.menu-bar{display:flex;align-items:center;height:30px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:0 8px;gap:4px}.menu-item{display:flex;align-items:center;height:100%;padding:0 12px;color:var(--text-primary);cursor:pointer;border:none;background:transparent;font-size:13px}.menu-item:hover{background-color:var(--button-hover);color:var(--accent-primary)}.menu-item:active{background-color:var(--button-active)}.menu-item.disabled{color:var(--text-muted);cursor:not-allowed}.panel-container{display:flex;flex-direction:column;width:250px;min-width:150px;background-color:var(--panel-bg);border-left:1px solid var(--border-color);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);cursor:move;user-select:none}.panel-header:hover{background-color:var(--button-hover)}.panel-title{font-size:12px;font-weight:600;color:var(--text-primary)}.panel-content{flex:1;overflow:auto;padding:4px;font-size:12px}.panel-resizer{width:4px;background-color:transparent;cursor:col-resize;transition:background-color .2s}.panel-resizer:hover{background-color:var(--accent-primary)}.bottom-panel{display:flex;flex-direction:column;height:200px;min-height:100px;background-color:var(--panel-bg);border-top:1px solid var(--border-color);overflow:hidden}.bottom-panel-header{display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.bottom-panel-content{flex:1;overflow:auto;padding:4px;font-size:12px}.bottom-panel-resizer{height:4px;background-color:transparent;cursor:row-resize;transition:background-color .2s}.bottom-panel-resizer:hover{background-color:var(--accent-primary)}.tab-bar{display:flex;align-items:center;height:28px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);overflow-x:auto;overflow-y:hidden}.tab{display:flex;align-items:center;height:100%;padding:0 12px;margin:0 2px;background-color:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;white-space:nowrap;border-radius:4px 4px 0 0}.tab:hover{background-color:var(--button-hover)}.tab.active{background-color:var(--bg-secondary);color:var(--text-primary);border-bottom:2px solid var(--accent-primary)}.tab.close-button{margin-left:6px;padding:0 4px;opacity:.6}.tab.close-button:hover{opacity:1;background-color:var(--accent-error);color:#fff}.button{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 8px;border:1px solid var(--input-border);border-radius:3px;background-color:var(--button-bg);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.button:hover:not(:disabled){background-color:var(--button-hover);border-color:var(--accent-primary)}.button:active:not(:disabled){background-color:var(--button-active)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.button.primary:hover:not(:disabled){background-color:var(--accent-secondary)}.button.danger{background-color:var(--accent-error);color:#fff;border-color:var(--accent-error)}.button.small{height:20px;padding:0 6px;font-size:11px}.input{height:22px;padding:0 6px;border:1px solid var(--input-border);border-radius:3px;background-color:var(--input-bg);color:var(--text-primary);font-size:12px;outline:none}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.input:disabled{opacity:.5;cursor:not-allowed}.tree-node{display:flex;flex-direction:column;font-size:12px}.tree-node-item{display:flex;align-items:center;height:20px;padding:0 4px;cursor:pointer;white-space:nowrap}.tree-node-item:hover{background-color:var(--button-hover)}.tree-node-item.selected{background-color:var(--highlight-line)}.tree-node-item .icon{width:16px;text-align:center;margin-right:4px}.tree-node-item .label{flex:1}.tree-node-children{margin-left:16px}.list-view{display:flex;flex-direction:column;font-size:12px}.list-item{display:flex;align-items:center;height:20px;padding:0 4px;cursor:default;white-space:nowrap;border-radius:2px}.list-item:hover{background-color:var(--button-hover)}.list-item.selected{background-color:var(--highlight-line)}.list-item.error{color:var(--accent-error)}.list-item.warning{color:var(--accent-warning)}.error-list{display:flex;flex-direction:column;font-family:monospace}.error-item{display:flex;align-items:flex-start;padding:4px 6px;border-radius:2px;cursor:pointer}.error-item:hover{background-color:var(--button-hover)}.error-item.error{border-left:2px solid var(--accent-error)}.error-item.warning{border-left:2px solid var(--accent-warning)}.error-item .severity{width:16px;text-align:center;font-weight:700}.error-item .message{flex:1;margin:0 8px}.error-item .location{font-size:11px;color:var(--text-muted)}.part-counter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px}.part-counter-item{display:flex;flex-direction:column;padding:4px;background-color:var(--bg-secondary);border-radius:3px}.part-counter-item .label{font-size:10px;color:var(--text-muted);text-align:center}.part-counter-item .value{font-size:14px;font-weight:700;text-align:center}.split-view{display:flex;flex:1;overflow:hidden}.split-view-horizontal{flex-direction:row}.split-view-vertical{flex-direction:column}.split-view-pane{flex:1;overflow:hidden}.split-view-divider{width:4px;background-color:var(--border-color);cursor:col-resize}.split-view-divider.vertical{height:4px;cursor:row-resize}.toolbar{display:flex;align-items:center;gap:4px;padding:4px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);overflow-x:auto}.toolbar-group{display:flex;align-items:center;gap:4px;margin-right:8px}.toolbar-group:last-child{margin-right:0}.dropdown{position:relative;display:inline-block}.dropdown-button{display:flex;align-items:center;gap:4px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;min-width:120px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:3px;box-shadow:0 2px 8px #0000004d;overflow:hidden;display:none}.dropdown-menu.show{display:block}.dropdown-item{display:flex;align-items:center;height:24px;padding:0 8px;cursor:pointer;font-size:12px}.dropdown-item:hover{background-color:var(--button-hover)}.dropdown-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-item.active,.dropdown-item:focus{outline:2px solid var(--accent-primary);outline-offset:-2px;background-color:var(--button-active)}.dropdown-item.active:hover,.dropdown-item:focus:hover{background-color:var(--button-active)}.menu-item:focus{outline:2px solid var(--accent-primary);outline-offset:-2px;background-color:var(--button-hover)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:16px;min-width:300px;max-width:500px;box-shadow:0 4px 16px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-title{font-size:14px;font-weight:600}.modal-body{margin-bottom:16px}.modal-footer{display:flex;justify-content:flex-end;gap:8px}.progress-bar{height:4px;background-color:var(--bg-tertiary);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background-color:var(--accent-primary);transition:width .2s ease}.badge{display:inline-flex;align-items:center;height:16px;padding:0 4px;border-radius:2px;font-size:10px;font-weight:600}.badge.info{background-color:var(--accent-primary);color:#fff}.badge.success{background-color:#28a745;color:#fff}.badge.error{background-color:var(--accent-error);color:#fff}.badge.warning{background-color:var(--accent-warning);color:#000}.flex{display:flex}.flex-column{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:4px}.gap-8{gap:8px}.padding-4{padding:4px}.padding-8{padding:8px}.margin-4{margin:4px}.margin-8{margin:8px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-small{font-size:11px}.nowrap{white-space:nowrap}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.cursor-pointer{cursor:pointer}.monaco-editor .token.comment{color:var(--text-muted)}.monaco-editor .token.keyword{color:var(--accent-secondary)}.monaco-editor .token.string{color:var(--accent-primary)}.monaco-editor .token.number{color:#b5cea8}.monaco-editor .token.type{color:#4ec9b0}.monaco-editor .token.function{color:#dcdcaa}.playback-controls{display:flex;align-items:center;gap:4px;padding:4px}.playback-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:3px;background-color:var(--button-bg);color:var(--text-primary);cursor:pointer;font-size:14px}.playback-button:hover:not(:disabled){background-color:var(--button-hover)}.playback-button:active:not(:disabled){background-color:var(--button-active)}.playback-button:disabled{opacity:.5;cursor:not-allowed}.playback-button.playing{background-color:var(--accent-primary);color:#fff}.timeline{position:relative;height:40px;background-color:var(--bg-tertiary);cursor:pointer}.timeline-fill{position:absolute;top:0;left:0;height:100%;background-color:var(--accent-primary);opacity:.3}.timeline-head{position:absolute;top:0;height:100%;width:2px;background-color:var(--accent-primary)}.timeline-marker{position:absolute;top:0;height:100%;width:1px;background-color:var(--text-muted)}.context-menu{position:absolute;z-index:3000;min-width:150px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:3px;box-shadow:0 2px 8px #0000004d;overflow:hidden;display:none}.context-menu.show{display:block}.context-menu-item{display:flex;align-items:center;height:24px;padding:0 8px;cursor:pointer;font-size:12px}.context-menu-item:hover{background-color:var(--button-hover)}.context-menu-item:disabled{opacity:.5;cursor:not-allowed}.context-menu-separator{height:1px;background-color:var(--border-color);margin:2px 0}.resizable-panel{position:relative}.resizable-panel-handle{position:absolute;z-index:10}.resizable-panel-handle.right{right:0;top:0;bottom:0;width:4px;cursor:col-resize}.resizable-panel-handle.bottom{bottom:0;left:0;right:0;height:4px;cursor:row-resize}.loading{display:inline-flex;align-items:center;justify-content:center}.loading:after{content:"";display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:loading-spin .8s linear infinite;margin-left:4px}@keyframes loading-spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:4000;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 2px 8px #0000004d;animation:toast-slide-in .3s ease}.toast.info{border-left:3px solid var(--accent-primary)}.toast.success{border-left:3px solid #28a745}.toast.error{border-left:3px solid var(--accent-error)}.toast.warning{border-left:3px solid var(--accent-warning)}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}:focus-visible{outline:1px solid var(--accent-primary);outline-offset:1px}::selection{background-color:var(--accent-primary);color:#fff}.trace-current-line{background-color:#ffff0026!important}.trace-current-line-gutter{background-color:#ffff004d!important}.trace-active-part{background-color:#00ff001a!important}.trace-active-part-gutter{background-color:#0f03!important}.navigate-highlight{background-color:#ffa5004d!important;border-radius:2px;animation:navigate-pulse .5s ease}@keyframes navigate-pulse{0%{background-color:#ffa50080!important}50%{background-color:#ffa50033!important}to{background-color:#ffa50000!important}}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media (prefers-contrast: high){:root{--bg-primary: #000000;--bg-secondary: #000000;--text-primary: #ffffff;--text-secondary: #ffff00;--border-color: #ffffff;--panel-border: #ffffff}[data-theme=dark]{--bg-primary: #000000;--text-primary: #ffffff}[data-theme=light]{--bg-primary: #ffffff;--text-primary: #000000;--border-color: #000000}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:0;background:var(--bg-secondary);color:var(--text-primary);padding:8px 16px;z-index:1000;text-decoration:none;border:1px solid var(--border-color)}.skip-link:focus{top:0}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.high-contrast-text{color:var(--text-primary)!important;text-shadow:1px 1px 0 var(--bg-secondary),-1px -1px 0 var(--bg-secondary),1px -1px 0 var(--bg-secondary),-1px 1px 0 var(--bg-secondary)}.focus-trap{outline:none}.focus-trap:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.kbd-shortcut{font-family:monospace;font-size:.85em;padding:2px 4px;background:var(--bg-tertiary);border-radius:3px;border:1px solid var(--border-color);color:var(--text-secondary)}.aria-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.accessible-button{cursor:pointer;min-width:24px;min-height:24px;padding:4px 8px}.accessible-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.accessible-link{color:var(--accent-primary);text-decoration:underline}.accessible-link:hover{color:var(--accent-secondary)}.accessible-link:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.accessible-input,.accessible-select,.accessible-textarea{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--input-border);padding:4px 8px;min-width:100px}.accessible-input:focus,.accessible-select:focus,.accessible-textarea:focus{outline:2px solid var(--accent-primary);outline-offset:0;border-color:var(--accent-primary)}.accessible-checkbox,.accessible-radio{cursor:pointer;margin:4px;min-width:16px;min-height:16px}.accessible-checkbox:focus,.accessible-radio:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.accessible-table{width:100%;border-collapse:collapse}.accessible-table th,.accessible-table td{padding:4px 8px;border:1px solid var(--border-color);text-align:left}.accessible-table th{background:var(--bg-secondary);font-weight:700}.accessible-table caption{caption-side:top;font-weight:700;padding:4px;text-align:left}.accessible-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel-bg);border:1px solid var(--panel-border);padding:16px;z-index:1000;max-width:80vw;max-height:80vh;overflow:auto}.accessible-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:999}.accessible-alert{padding:8px 12px;border-radius:4px;margin:4px 0;display:flex;align-items:center;gap:8px}.accessible-alert-error{background:#ff00001a;border:1px solid var(--accent-error);color:var(--accent-error)}.accessible-alert-warning{background:#ffff001a;border:1px solid var(--accent-warning);color:var(--accent-warning)}.accessible-alert-info{background:#0000ff1a;border:1px solid var(--accent-primary);color:var(--accent-primary)}.accessible-alert-success{background:#00ff001a;border:1px solid #00ff00;color:#0f0}
