:root{--primary-color: #20638f;--secondary-color: #1E1E1E;--dark-color: #123850;--light-color: #e8f4fc;--lighter-blue: #f0f8ff;--accent-blue: #5dade2;--text-color: #2c3e50;--code-bg: #eef7fd}body{margin:0}.playground-container{display:flex;flex-direction:column;height:100vh;background-color:#f0f4f8;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;overflow:hidden}.playground-header{justify-content:space-between;background-color:var(--secondary-color);color:#fff;padding:2px;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center}.playground-header h1{margin:0;font-size:1rem;font-weight:700}.header-icon-button{background:none;border:none;color:var(--header-icon-color);cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.header-icon-button:hover{background-color:var(--hover-bg)}.save-status{display:flex;align-items:center}.save-status-item{display:flex;align-items:center;gap:4px}.save-status-item.saved{color:var(--success-color)}.save-status-item.saving{color:var(--info-color)}.save-status-item.unsaved{color:var(--warning-color)}.current-file-path{color:light-dark(#cbd5e0,#a0aec0);font-family:monospace;font-size:11px}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.playground-content{display:flex;flex:1;overflow:hidden;min-height:0}.playground-footer{display:flex;align-items:center;justify-content:space-between;background-color:light-dark(var(--dark-color),var(--secondary-color));color:#fff;padding:4px 12px;min-height:24px;font-size:12px;border-top:1px solid light-dark(#2c5282,#3e3e42)}.footer-left{display:flex;align-items:center;gap:16px}.footer-right{display:flex;align-items:center;gap:12px}.footer-item{display:flex;align-items:center;gap:4px}.file-tree-panel{width:250px;min-width:200px;max-width:400px;resize:horizontal;overflow:auto}.left-panel{display:flex;flex-direction:column;flex:1;min-width:0}.right-panel{flex:1;min-width:0}.editor-container{display:flex;flex-direction:column;height:50%}.editor{height:100%}.right-panel{display:flex;flex-direction:column;height:100%}.editor-header{display:flex;justify-content:space-between;align-items:center;height:32px;background-color:var(--secondary-color);color:var(--light-color);padding:4px;gap:8px}.editor-header.output{border-bottom:none;justify-content:flex-end;height:auto;min-height:32px}.editor-actions{display:flex;justify-content:space-between;align-items:center;background:transparent;color:var(--light-color);padding:4px;gap:4px}.editor-header h2{font-size:.8rem;font-weight:500;margin:0 0 0 4px;padding:4px}.editor-content{flex:1;overflow:hidden}.button{background-color:transparent;color:#3182ce;border:none;padding:4px 12px;font-size:.875rem;cursor:pointer;transition:background-color .2s;font-weight:600}.run-button{padding:4px 16px}.button:hover{color:#88acd2;font-weight:600}.save-button{display:inline-flex;align-items:center;justify-content:center;min-width:80px}.save-button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.format-button:disabled,.run-button:disabled{background-color:#a0aec0;cursor:not-allowed}.result-container{height:100%}.loading-message,.empty-message{padding:16px;color:#718096;background-color:var(--secondary-color);height:100%}:root{color-scheme:light dark;--accent-blue: light-dark(#4299e1, #5dade2);--primary-color: light-dark(#3182ce, #3a8ec5);--secondary-color: light-dark(#f7fafc, #2a2a2a);--dark-color: light-dark(#2c5282, #1a4c6b);--light-color: light-dark(#ffffff, #e8f4fc);--lighter-blue: light-dark(#ebf8ff, #1e2a38);--text-color: light-dark(#2d3748, #e2e8f0);--code-bg: light-dark(#f7fafc, #2d3748);--select-fg: light-dark(#333, #d4d4d4);--select-bg: light-dark(#f5f5f5, #2d2d30);--border: light-dark(#ccc, #3e3e42);--header-icon-color: light-dark(#ffffff, #cccccc);--success-color: light-dark(#48bb78, #68d391);--info-color: light-dark(#4299e1, #63b3ed);--warning-color: light-dark(#ed8936, #f6ad55);--hover-bg: light-dark(rgba(255, 255, 255, .1), rgba(255, 255, 255, .1));--tree-bg: light-dark(#f7fafc, #252526);--tree-border: light-dark(#e2e8f0, #3e3e42);--tree-header-bg: light-dark(#edf2f7, #2d2d30);--tree-title-color: light-dark(#4a5568, #cccccc);--tree-item-color: light-dark(#2d3748, #cccccc);--tree-item-hover-bg: light-dark(#edf2f7, #2a2d2e);--tree-item-selected-bg: light-dark(#bee3f8, #37373d);--tree-item-selected-color: light-dark(#2c5282, #ffffff);--tree-empty-color: light-dark(#718096, #858585);--scrollbar-track: light-dark(#f7fafc, #252526);--scrollbar-thumb: light-dark(#cbd5e0, #424242);--scrollbar-thumb-hover: light-dark(#a0aec0, #4e4e4e);--context-menu-bg: light-dark(#ffffff, #2d2d30);--context-menu-item-hover-bg: light-dark(#edf2f7, #37373d)}.playground-header{background-color:light-dark(var(--dark-color),var(--secondary-color));color:#fff}.editor-header{background-color:light-dark(#edf2f7,var(--secondary-color));color:light-dark(var(--text-color),var(--light-color))}.loading-message,.empty-message{color:light-dark(#718096,#a0aec0);background-color:light-dark(#f7fafc,var(--secondary-color))}.logo-icon{width:32px;height:32px;background-color:transparent}@media(max-width:1024px)and (min-width:769px){.editor-header{height:auto;min-height:32px;padding:4px 2px}.editor-actions{flex-wrap:wrap;gap:2px;padding:2px}.dropdown{padding:4px 8px;font-size:12px;margin-right:4px}.button{padding:4px 8px;font-size:.75rem;white-space:nowrap}.run-button{padding:4px 12px;font-weight:700}.label{font-size:12px;margin-left:2px}.label div{white-space:nowrap}.editor-header h2{font-size:.75rem}.editor-header.code,.editor-header.output{height:auto;min-height:40px}}@media(max-width:768px){.header-icon-button{padding:4px}.footer-left{gap:8px}.current-file-path{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.left-panel,.right-panel{width:100%;flex:1}.playground-content{flex-direction:column;overflow-y:auto}.editor-container{height:auto;min-height:250px}.editor-content{min-height:150px}.editor-header{flex-wrap:wrap}.editor-header.code,.editor-header.output{height:auto}.editor-header h2{font-size:.75rem}.editor-actions{justify-content:flex-start;flex-wrap:wrap;padding:2px}.format-button,.run-button{padding:3px 8px;font-size:.75rem}}.dropdown{appearance:none;border-radius:4px;padding:6px 12px;font-size:13px;cursor:pointer;margin-right:8px;background-color:var(--select-bg);border:1px solid var(--border);color:var(--select-fg)}.label{margin-left:4px;display:flex;align-items:center;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-color)}.tab-container{display:flex;background-color:light-dark(#e8eef5,#252526);border-bottom:1px solid light-dark(#d0d7de,#3e3e42);overflow-x:auto;overflow-y:hidden;height:35px;align-items:center;gap:0}.tab-container::-webkit-scrollbar{height:3px}.tab-container::-webkit-scrollbar-track{background:transparent}.tab-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.tab-container::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.tab{display:flex;align-items:center;justify-content:center;padding:6px 16px;font-size:12px;font-weight:500;cursor:pointer;background-color:transparent;border:none;border-right:1px solid light-dark(#d0d7de,#3e3e42);color:light-dark(#586069,#969696);white-space:nowrap;transition:background-color .1s;height:100%}.tab:hover{background-color:light-dark(#f3f4f6,#2d2d30)}.tab.active{background-color:light-dark(#ffffff,#1e1e1e);color:light-dark(#24292e,#cccccc);border-bottom:2px solid var(--accent-blue)}.tab-bar{display:flex;background-color:light-dark(#e8eef5,#252526);border-bottom:1px solid light-dark(#d0d7de,#3e3e42);overflow-x:auto;overflow-y:hidden;height:35px;align-items:center}.tab-bar::-webkit-scrollbar{height:3px}.tab-bar::-webkit-scrollbar-track{background:transparent}.tab-bar::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.tab-bar::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.tab-item{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 8px;cursor:pointer;background-color:transparent;border-right:1px solid light-dark(#d0d7de,#3e3e42);color:light-dark(#586069,#969696);font-size:12px;white-space:nowrap;transition:background-color .1s;min-width:100px;max-width:200px}.tab-item:hover{background-color:light-dark(#f3f4f6,#2d2d30)}.tab-item.active{background-color:light-dark(#ffffff,#1e1e1e);color:light-dark(#24292e,#cccccc);border-bottom:2px solid var(--accent-blue)}.tab-content{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-dirty-indicator{color:light-dark(#d97706,#f59e0b);flex-shrink:0}.tab-close-button{display:flex;align-items:center;justify-content:center;background:none;border:none;color:light-dark(#6a737d,#858585);cursor:pointer;padding:2px;border-radius:3px;opacity:0;transition:opacity .1s,background-color .1s;flex-shrink:0}.tab-item:hover .tab-close-button,.tab-item.active .tab-close-button{opacity:1}.tab-close-button:hover{background-color:light-dark(#e1e4e8,#3e3e42);color:light-dark(#24292e,#cccccc)}.file-tree-container{display:flex;flex-direction:column;height:100%;background-color:var(--tree-bg);border-right:1px solid var(--tree-border);border-top:1px solid var(--tree-border);overflow:hidden}.file-tree-header{display:flex;justify-content:space-between;align-items:center;height:40px}.file-tree-header-left{display:flex;align-items:center}.file-tree-title{font-size:11px;font-weight:600;color:var(--tree-title-color);letter-spacing:.5px;margin-left:8px}.file-tree-actions{display:flex;gap:4px}.file-tree-action-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--tree-title-color);display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background-color .2s}.file-tree-action-btn:hover{background-color:var(--tree-border)}.file-tree-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0;position:relative}.file-tree-content.drag-over-root{background:linear-gradient(to bottom,#007acc0d,#007acc1a);box-shadow:inset 0 0 0 2px var(--vscode-focusBorder, #007acc);border-radius:4px;transition:background .2s ease,box-shadow .2s ease}.file-tree-node{-webkit-user-select:none;user-select:none}.file-tree-item{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;font-size:13px;color:var(--tree-item-color);transition:background-color .1s;white-space:nowrap;overflow:hidden}.file-tree-item:hover{background-color:var(--tree-item-hover-bg)}.file-tree-item.selected{background-color:var(--tree-item-selected-bg);color:var(--tree-item-selected-color)}.file-tree-item.dragging{opacity:.5;cursor:move;transform:scale(.98);transition:opacity .15s ease,transform .15s ease}.file-tree-item.drag-over{background-color:#007acc26;box-shadow:inset 0 0 0 2px var(--vscode-focusBorder, #007acc);border-radius:4px;transition:background-color .15s ease,box-shadow .15s ease}.file-tree-chevron{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.file-tree-spacer{width:16px;height:16px;flex-shrink:0}.file-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:4px}.file-tree-rename-input{flex:1;background-color:var(--vscode-input-background, #3c3c3c);color:var(--vscode-input-foreground, #cccccc);border:1px solid var(--vscode-focusBorder, #007acc);border-radius:2px;padding:2px 4px;font-size:13px;font-family:inherit;outline:none;margin-left:4px}.file-tree-rename-input:focus{border-color:var(--vscode-focusBorder, #007acc);box-shadow:0 0 0 1px var(--vscode-focusBorder, #007acc)}.file-tree-empty{padding:16px;text-align:center;color:var(--tree-empty-color);font-size:12px}.file-tree-content::-webkit-scrollbar{width:10px}.file-tree-content::-webkit-scrollbar-track{background:var(--scrollbar-track)}.file-tree-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:5px}.file-tree-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.context-menu{position:fixed;background-color:var(--context-menu-bg);border:1px solid var(--tree-border);border-radius:4px;box-shadow:0 4px 12px #00000026;padding:4px 0;min-width:200px;z-index:10000}.context-menu-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;color:var(--tree-item-color);transition:background-color .1s}.context-menu-item:hover:not(.disabled){background-color:var(--context-menu-item-hover-bg)}.context-menu-item.disabled{opacity:.5;cursor:not-allowed}.context-menu-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px}.context-menu-label{flex:1}.confirm-dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.confirm-dialog{background-color:var(--vscode-editorWidget-background, #252526);border:1px solid var(--vscode-editorWidget-border, #454545);border-radius:4px;box-shadow:0 4px 12px #0000004d;min-width:400px;max-width:500px}.confirm-dialog-header{padding:16px 20px;border-bottom:1px solid var(--vscode-editorWidget-border, #454545)}.confirm-dialog-header h3{margin:0;font-size:14px;font-weight:600;color:var(--vscode-foreground, #cccccc)}.confirm-dialog-body{padding:20px}.confirm-dialog-body p{margin:0;font-size:13px;color:var(--vscode-foreground, #cccccc);line-height:1.5}.confirm-dialog-footer{padding:12px 20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--vscode-editorWidget-border, #454545)}.confirm-dialog-button{padding:6px 16px;font-size:13px;border-radius:2px;border:none;cursor:pointer;font-family:inherit;transition:background-color .1s ease}.confirm-dialog-button.cancel{background-color:var(--vscode-button-secondaryBackground, #3a3d41);color:var(--vscode-button-secondaryForeground, #cccccc)}.confirm-dialog-button.cancel:hover{background-color:var(--vscode-button-secondaryHoverBackground, #45494e)}.confirm-dialog-button.confirm{background-color:var(--vscode-button-background, #0e639c);color:var(--vscode-button-foreground, #ffffff)}.confirm-dialog-button.confirm:hover{background-color:var(--vscode-button-hoverBackground, #1177bb)}.confirm-dialog-button:active{transform:translateY(1px)}
