:root{--bg-deep: #0a0a0f;--bg-panel: #12121a;--bg-elevated: #1a1a26;--bg-hover: #222233;--border: #2a2a3d;--text: #e4e4ef;--text-muted: #8888a0;--accent: #818cf8;--accent-hover: #6366f1;--accent-glow: rgba(99, 102, 241, .25);--success: #34d399;--error: #f87171;--radius: 10px;--font: "Inter", system-ui, sans-serif;--mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-deep);color:var(--text)}#app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:1rem;padding:.65rem 1rem;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0}.brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.brand-logo{height:40px;width:auto;max-width:140px;object-fit:contain;display:block;background:#f8fafc;border-radius:8px;padding:4px 8px}.brand-text{display:flex;align-items:center;gap:.4rem}.brand-name{font-weight:700;font-size:.95rem}.brand-tag{font-size:.7rem;color:var(--text-muted);background:var(--bg-elevated);padding:.15rem .45rem;border-radius:4px}.prompt-bar{flex:1;display:flex;gap:.5rem;max-width:820px;align-items:center}.prompt-mode{display:flex;flex-shrink:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:2px;gap:2px}.mode-btn{border:none;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:.75rem;font-weight:600;padding:.4rem .65rem;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}.mode-btn:hover:not(:disabled){color:var(--text)}.mode-btn.active{background:var(--accent-hover);color:#fff}.mode-btn:disabled{opacity:.35;cursor:not-allowed}#prompt-input{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .85rem;color:var(--text);font-family:var(--font);font-size:.875rem;outline:none;transition:border-color .15s,box-shadow .15s}#prompt-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}#prompt-input::placeholder{color:var(--text-muted)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:var(--radius);font-family:var(--font);font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s;white-space:nowrap}.btn-primary{background:var(--accent-hover);color:#fff}.btn-primary:hover:not(:disabled){background:#4f46e5}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.hidden{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}.workspace{display:grid;grid-template-columns:250px 1fr 1fr;flex:1;min-height:0}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sidebar-header{display:flex;flex-direction:column;gap:.15rem;padding:.75rem 1rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border)}.project-name{text-transform:none;letter-spacing:0;font-weight:500;color:var(--accent);font-size:.8rem}.file-tree{flex:1;overflow-y:auto;padding:.5rem 0}.empty-state{padding:1rem;font-size:.8rem;color:var(--text-muted);line-height:1.5}.tree-project{margin-bottom:.15rem}.tree-project.active-project>.tree-folder{background:var(--accent-glow);color:var(--text)}.tree-root{padding:0 .5rem}.tree-folder{display:flex;align-items:center;gap:.35rem;padding:.4rem .55rem;margin:0 .35rem;border-radius:6px;font-size:.82rem;font-weight:500;cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none}.tree-folder:hover{background:var(--bg-hover);color:var(--text)}.folder-chevron{width:.85rem;font-size:.7rem;color:var(--text-muted);flex-shrink:0}.folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.folder-meta{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);opacity:.8;flex-shrink:0}.folder-delete{opacity:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.95rem;line-height:1;padding:0 .2rem;border-radius:4px}.tree-folder:hover .folder-delete{opacity:1}.folder-delete:hover{color:var(--error);background:#f871711f}.tree-files{list-style:none;padding:.15rem 0 .35rem 1.35rem}.tree-file{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border-radius:6px;font-size:.82rem;cursor:pointer;color:var(--text-muted);transition:background .1s,color .1s}.tree-file:hover{background:var(--bg-hover);color:var(--text)}.tree-file.active{background:var(--accent-glow);color:var(--accent)}.file-name{flex:1;font-family:var(--mono);font-size:.78rem}.run-badge{font-size:.65rem;color:var(--success);opacity:.8}.editor-panel,.preview-panel{display:flex;flex-direction:column;min-height:0;background:var(--bg-deep)}.preview-panel-tabs{justify-content:flex-start}.preview-actions{margin-left:auto;display:flex;align-items:center;gap:.35rem}.btn-rerun{border:1px solid var(--border);background:var(--bg-elevated);color:var(--success);font-family:var(--font);font-size:.75rem;font-weight:600;padding:.3rem .7rem;border-radius:6px;cursor:pointer;transition:background .15s,opacity .15s}.btn-rerun:hover:not(:disabled){background:var(--bg-hover)}.btn-rerun:disabled{opacity:.4;cursor:not-allowed}.btn-rerun.running{color:var(--text-muted)}.panel-tabs{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0}.tab{font-size:.78rem;color:var(--text-muted);padding:.3rem .6rem;border-radius:6px;background:transparent;border:none;cursor:pointer;font-family:var(--font)}.tab.active{color:var(--text);background:var(--bg-elevated)}.editor-panel{background:#0d1117}.editor-container{flex:1;min-height:0;overflow:hidden;background:#0d1117}.editor-container .cm-editor{height:100%}.editor-container .cm-editor.cm-focused{outline:none}#active-file-label{font-family:var(--mono);font-size:.78rem;display:inline-flex;align-items:center;gap:.45rem;background:#161b22;color:#e6edf3;padding:.35rem .85rem;border-radius:6px 6px 0 0;border:1px solid #21262d;border-bottom:none;margin-bottom:-1px}.editor-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:.75rem}.placeholder-icon{font-size:2.5rem;opacity:.3;font-family:var(--mono)}.editor-placeholder p{font-size:.85rem}.preview-view,.console-view{flex:1;min-height:0;display:none;position:relative}.preview-view.active,.console-view.active{display:flex;flex-direction:column}.preview-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.85rem;padding:1rem;text-align:center}.html-preview{width:100%;height:100%;border:none;background:#fff}.python-preview{flex:1;min-height:0;display:flex;flex-direction:column;background:#0d1117}.python-output{flex:1;overflow:auto;padding:1rem}.python-output pre{font-family:var(--mono);font-size:.82rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}.python-stdin-row{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-top:1px solid #21262d;background:#161b22;flex-shrink:0}.python-stdin-prompt{color:var(--success);font-family:var(--mono);font-weight:600}#python-stdin{flex:1;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-family:var(--mono);font-size:.82rem;padding:.45rem .65rem;outline:none}#python-stdin:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.python-stdin-send{background:var(--accent-hover);color:#fff;border:none;border-radius:6px;padding:.45rem .75rem;font-size:.78rem;font-weight:500;cursor:pointer;font-family:var(--font)}.python-stdin-send:hover{background:#4f46e5}.output-text{color:#c9d1d9}.output-error{color:var(--error)}.loading{color:var(--text-muted);font-size:.85rem}#console-output{flex:1;overflow:auto;padding:.75rem 1rem;font-family:var(--mono);font-size:.78rem;line-height:1.7;background:#0d1117}.log-line{color:#8b949e}.log-error{color:var(--error)}.generating-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.generating-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;padding:2rem 2.5rem;text-align:center;box-shadow:0 24px 48px #0006}.generating-dots{display:flex;gap:.4rem;justify-content:center;margin-bottom:1rem}.generating-dots span{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:bounce 1.2s ease infinite}.generating-dots span:nth-child(2){animation-delay:.15s}.generating-dots span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}#generating-status{color:var(--text-muted);font-size:.9rem}@media(max-width:900px){.workspace{grid-template-columns:180px 1fr;grid-template-rows:1fr 1fr}.preview-panel{grid-column:1 / -1;border-left:none;border-top:1px solid var(--border)}}@media(max-width:640px){.topbar{flex-wrap:wrap}.prompt-bar{order:3;max-width:100%;width:100%}.workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr 1fr}.sidebar{max-height:140px;border-right:none;border-bottom:1px solid var(--border)}}
