@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap);:root{--color-green:#8CE99A;--color-pink:#FF8FAB;--color-purple:#B8A6FF;--color-yellow:#FFE066;--color-orange:#FF9E64;--color-cyan:#66D9E8;--primary-color:var(--color-green);--secondary-color:var(--color-pink);--bg-dark-main:#1A1A1B;--bg-panel:#222223;--bg-accent:linear-gradient(135deg, rgba(140, 233, 154, 0.12), rgba(255, 143, 171, 0.12));--text-primary:#F8F8F2;--text-secondary:#B0B7C8;--border-color:rgba(255, 255, 255, 0.12);--glow-primary:0 0 20px rgba(140, 233, 154, 0.4);--glow-secondary:0 0 20px rgba(255, 143, 171, 0.4);--border-radius:18px;--transition:all 0.35s cubic-bezier(0.4, 0, 0.2, 1);--neumorphic-inset:inset 6px 6px 12px rgba(0, 0, 0, 0.3),inset -6px -6px 12px rgba(255, 255, 255, 0.04);--neumorphic-outset:8px 8px 16px rgba(0, 0, 0, 0.4),-8px -8px 16px rgba(255, 255, 255, 0.05)}@keyframes background-pan{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes fade-in-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100vh;font-family:Inter,sans-serif;background:var(--bg-dark-main);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden;background-image:var(--bg-accent);background-size:300% 300%;animation:16s infinite background-pan}body.fullscreen{background:var(--bg-dark-main);animation:none;background-image:none}body.fullscreen .container,body.fullscreen .main-wrapper{margin:0;height:100vh;border-radius:0;border:none;box-shadow:none;backdrop-filter:none;animation:none}body.fullscreen .console,body.fullscreen .left-sidebar,body.fullscreen .run-container,body.fullscreen .sidebar,body.fullscreen .top-bar{display:none!important}body.fullscreen .main{flex:1;display:flex;flex-direction:row;background:#fff0;position:relative}body.fullscreen .fullscreen-run-btn{position:fixed;top:20px;left:20px;width:52px;height:52px;border-radius:16px;background:rgb(34 34 35 / .8);backdrop-filter:blur(12px);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--text-primary);cursor:pointer;z-index:1000;transition:var(--transition);box-shadow:var(--neumorphic-outset)}body.fullscreen .fullscreen-run-btn:hover{background:linear-gradient(135deg,var(--primary-color),var(--color-cyan));color:#111;transform:translateY(-4px);box-shadow:var(--glow-primary),var(--neumorphic-outset)}body.fullscreen .fullscreen-close-btn{position:fixed;top:20px;right:20px;width:52px;height:52px;border-radius:16px;background:rgb(34 34 35 / .8);backdrop-filter:blur(12px);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:200;color:var(--text-primary);cursor:pointer;z-index:1000;transition:var(--transition);box-shadow:var(--neumorphic-outset)}body.fullscreen .fullscreen-close-btn:hover{background:rgb(255 143 171 / .4);color:var(--secondary-color);border-color:var(--secondary-color);transform:translateY(-4px);box-shadow:var(--glow-secondary),var(--neumorphic-outset)}body.fullscreen .editor,body.fullscreen .preview{flex:1;height:100%;border-radius:0}body.fullscreen .resizer{display:block}@media (max-width:992px){body.fullscreen .main{flex-direction:column}body.fullscreen .resizer{display:none}body.fullscreen .editor,body.fullscreen .preview{height:50vh}body.fullscreen .fullscreen-close-btn,body.fullscreen .fullscreen-run-btn{width:48px;height:48px;top:16px}body.fullscreen .fullscreen-run-btn{left:16px}body.fullscreen .fullscreen-close-btn{right:16px}}.icon{width:1.4em;height:1.4em;vertical-align:-.3em;margin-right:10px;fill:currentColor;transition:var(--transition)}.main-wrapper{display:flex;flex:1;overflow:hidden}.left-sidebar{width:86px;background:var(--bg-panel);border-right:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;padding:2.5rem 0;gap:2.2rem;box-shadow:var(--neumorphic-outset);overflow-y:auto;overflow-x:hidden}.left-sidebar::-webkit-scrollbar{width:5px}.left-sidebar::-webkit-scrollbar-thumb{background:rgb(176 183 200 / .4);border-radius:3px}.left-sidebar::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.left-sidebar-item{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:16px;transition:var(--transition);position:relative;box-shadow:var(--neumorphic-outset);background:var(--bg-panel);flex-shrink:0}.left-sidebar-item img{width:42px;height:42px;object-fit:contain;filter:brightness(.92);transition:var(--transition)}.left-sidebar-item:hover{transform:translateY(-4px) scale(1.08);box-shadow:var(--glow-primary),var(--neumorphic-outset)}.left-sidebar-item:hover img{filter:brightness(1.4);transform:scale(1.15)}.left-sidebar-item.active{background:linear-gradient(135deg,var(--primary-color),#5ee2b0);box-shadow:var(--glow-primary),0 8px 20px rgb(140 233 154 / .35);transform:translateY(-2px)}.left-sidebar-item.active img{filter:brightness(1);transform:scale(1.1)}.left-sidebar-item[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:16px;background:rgb(34 34 35 / .95);color:var(--text-primary);padding:10px 16px;border-radius:12px;font-size:.9rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:var(--transition);backdrop-filter:blur(12px);border:1px solid;box-shadow:0 8px 32px rgb(0 0 0 / .4)}.left-sidebar-item:hover[data-tooltip]::after{opacity:1;margin-left:22px}.container{flex:1;display:flex;margin:88px 48px 40px 24px;border-radius:var(--border-radius);background:var(--bg-panel);border:1px solid var(--border-color);box-shadow:var(--neumorphic-outset);overflow:hidden;animation:1s ease-out both fade-in-up;backdrop-filter:blur(16px)}.sidebar{width:290px;background:#fff0;padding:28px;display:flex;flex-direction:column;gap:28px;border-right:1px solid var(--border-color)}.sidebar h3{margin:0 10px 28px;font-size:1.1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2.2px;font-weight:600;border-bottom:1px solid var(--border-color);padding-bottom:12px;opacity:.9}.sidebar ul{list-style:none;padding:0;margin:0;flex-grow:1}.sidebar li{padding:16px 20px;margin-bottom:10px;border-radius:14px;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:.98rem;color:var(--text-secondary);transition:var(--transition);display:flex;align-items:center;background:rgb(255 255 255 / .04);box-shadow:var(--neumorphic-inset);border-left:4px solid #fff0}.sidebar li:hover:not(.active){color:var(--text-primary);background:rgb(255 255 255 / .08);transform:translateX(8px);box-shadow:var(--neumorphic-outset)}.sidebar li.active{background:linear-gradient(90deg,var(--color-yellow),var(--color-orange));color:#1e1e1e;font-weight:700;border-left:4px solid var(--color-orange);box-shadow:var(--glow-secondary),var(--neumorphic-outset);transform:translateX(4px)}.new-project-btn{padding:18px;border:2px dashed;border-radius:16px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);text-align:center;font-weight:600;display:flex;align-items:center;justify-content:center;background:rgb(255 255 255 / .03);box-shadow:var(--neumorphic-inset)}.new-project-btn:hover{background:linear-gradient(90deg,var(--color-pink),var(--color-purple));color:#fff;border-style:solid;border-color:#fff0;transform:translateY(-4px);box-shadow:var(--glow-secondary),var(--neumorphic-outset)}.main{display:flex;flex-direction:column;flex-basis:50%;background:var(--bg-dark-main)}.top-bar{background:var(--bg-panel);border-bottom:1px solid var(--border-color);padding:12px 0;box-shadow:0 4px 12px rgb(0 0 0 / .2)}.tabs{display:flex;flex-grow:1;gap:6px;padding:0 12px}.tab{padding:16px 32px;border-radius:14px 14px 0 0;background:rgb(255 255 255 / .04);box-shadow:var(--neumorphic-inset);transition:var(--transition)}.tab:hover:not(.active){background:rgb(255 255 255 / .08);transform:translateY(-2px)}.tab.active{background:var(--bg-dark-main);box-shadow:inset 0 -4px 0 var(--primary-color),var(--neumorphic-inset);font-weight:600}.tab .filename{font-family:'JetBrains Mono',monospace}.editor{flex:2;display:none;overflow:hidden;background:var(--bg-dark-main)}.editor.active{display:block}.editor textarea{width:100%;height:100%;background:#fff0;color:var(--text-primary);font-family:'JetBrains Mono',monospace;font-size:15.5px;border:none;outline:0;resize:none;line-height:1.7;padding:32px;caret-color:var(--color-yellow);transition:var(--transition)}.editor textarea:focus{background:rgb(255 255 255 / .04);box-shadow:inset 0 0 20px rgb(140 233 154 / .15)}.preview{flex:1;background:#fff;display:flex;flex-direction:column;border-left:1px solid var(--border-color)}.preview iframe{flex:1;width:100%;height:100%;border:none;background:#fff;border-radius:0 0 var(--border-radius) 0}.resizer{flex-basis:8px;background:var(--border-color);cursor:col-resize;transition:var(--transition);position:relative}.resizer.active,.resizer:hover{background:var(--primary-color);box-shadow:var(--glow-primary)}.run-container{padding:20px 28px;background:var(--bg-panel);display:flex;justify-content:flex-end;gap:16px;border-top:1px solid var(--border-color);flex-wrap:wrap}.btn{padding:14px 28px;font-weight:600;font-size:.95rem;border-radius:14px;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;background:rgb(255 255 255 / .06);border:1px solid var(--border-color);color:var(--text-secondary);box-shadow:var(--neumorphic-inset);gap:10px}.btn:hover{background:rgb(255 255 255 / .12);color:var(--text-primary);border-color:rgb(255 255 255 / .25);transform:translateY(-3px);box-shadow:var(--neumorphic-outset)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--color-cyan));border:none;color:#111;box-shadow:var(--glow-primary),var(--neumorphic-outset)}.btn-primary:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgb(140 233 154 / .4),var(--neumorphic-outset)}.console{font-family:'JetBrains Mono',monospace;padding:12px 20px;background:var(--bg-panel);color:var(--text-secondary);font-size:.85rem;height:70px;overflow-y:auto;border-top:1px solid var(--border-color);white-space:pre-wrap;word-break:break-all;box-shadow:var(--neumorphic-inset)}.console .console-line.error{color:var(--secondary-color)}.console.running::before{content:'●';color:var(--color-yellow);margin-right:12px;animation:1.5s infinite pulse;display:inline-block}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-panel);border-radius:12px}::-webkit-scrollbar-thumb{background:var(--text-secondary);border-radius:12px;border:3px solid var(--bg-panel)}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}@media (max-width:1200px){.container{margin:80px 32px 32px 16px}.sidebar{width:260px;padding:24px}}@media (max-width:1100px){.left-sidebar{width:76px}.left-sidebar-item{width:52px;height:52px}.left-sidebar-item img{width:36px;height:36px}.container{margin-left:12px;margin-right:32px}}@media (max-width:992px){.main-wrapper{flex-direction:column}.left-sidebar{width:100%;height:76px;flex-direction:row;padding:0 2rem;justify-content:flex-start;align-items:center;border-right:none;border-bottom:1px solid var(--border-color);overflow-x:auto;gap:2rem}.left-sidebar::-webkit-scrollbar{height:6px}.left-sidebar-item[data-tooltip]::after{bottom:100%;top:auto;left:50%;transform:translateX(-50%);margin-top:12px}.left-sidebar-item:hover[data-tooltip]::after{margin-top:16px}.container{margin:16px;flex-direction:column;height:auto}.main{flex-basis:auto;min-height:400px}.editor{flex:3;min-height:60vh}.preview{flex:1;height:40vh;border-left:none;border-top:1px solid var(--border-color)}.resizer{display:none}.sidebar{width:100%;padding:20px;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;border-right:none;border-bottom:1px solid var(--border-color);gap:16px}.sidebar h3{width:100%;text-align:left;margin:0 0 16px;font-size:1rem}.sidebar ul{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;min-width:100%}.sidebar li{flex-shrink:0;padding:12px 18px;font-size:.95rem;white-space:nowrap}.new-project-btn{width:100%;margin-top:16px;padding:16px}.run-container{flex-direction:column;align-items:stretch;gap:12px}.btn{padding:16px;font-size:1rem;justify-content:center}.tabs{overflow-x:auto;padding-bottom:8px}.tab{padding:12px 20px;font-size:.9rem;white-space:nowrap}.tab .filename{display:inline}}@media (max-width:640px){body,html{overflow-x:hidden}.container{margin:12px;border-radius:16px}.left-sidebar{padding:0 1rem;gap:1.5rem}.left-sidebar-item{width:48px;height:48px}.left-sidebar-item img{width:32px;height:32px}.sidebar{padding:16px}.sidebar h3{font-size:.95rem;letter-spacing:1.8px}.sidebar li{padding:10px 14px;font-size:.9rem}.top-bar{padding:8px 0}.tabs{gap:4px;padding:0 8px}.tab{padding:10px 16px;font-size:.85rem}.editor textarea{padding:20px;font-size:14.5px;line-height:1.6}.editor{min-height:55vh}.preview{height:40vh}.console{height:70px;padding:10px 14px;font-size:.83rem}.run-container{padding:16px 20px}.btn{padding:14px;font-size:.95rem}}@media (max-width:480px){.left-sidebar{justify-content:center;gap:1.8rem;padding:0 .5rem}.sidebar ul{justify-content:center}.tab .filename{display:none}.tab{padding:10px 14px;font-size:.8rem}.editor textarea{font-size:14px;padding:16px}.editor{min-height:50vh}.preview{height:35vh}.console{height:70px;font-size:.82rem}}@media (max-width:768px){.console,.left-sidebar,.run-container>:not(.btn-primary),.sidebar{display:none!important}.container{margin:0!important;height:100vh!important;border-radius:0!important;border:none!important;backdrop-filter:none;animation:none}.top-bar{background:var(--bg-panel);padding:12px 16px!important;border-bottom:1px solid var(--border-color)}.tabs{gap:10px;padding:0;overflow-x:auto}.tab{padding:10px 18px!important;font-size:.92rem!important;min-width:fit-content}.main{flex:1;display:flex;flex-direction:column}.editor{flex:3;min-height:60vh;display:block!important}.editor textarea{font-size:16.5px!important;line-height:1.85!important;padding:32px 20px!important}.preview{flex:1;min-height:35vh;border-top:1px solid var(--border-color)}.preview iframe{border-radius:0}.run-container{display:flex!important;padding:24px!important;justify-content:center;background:var(--bg-panel);border-top:1px solid var(--border-color)}.btn-primary{padding:20px 56px!important;font-size:1.15rem!important;min-height:64px;border-radius:18px;box-shadow:var(--glow-primary),var(--neumorphic-outset)}}@media (max-width:480px){.editor textarea{font-size:16px!important;padding:28px 18px!important}.tab{padding:10px 16px!important;font-size:.88rem!important}.btn-primary{padding:18px 48px!important;font-size:1.1rem!important}.editor{min-height:58vh}.preview{min-height:35vh}}@media (max-width:768px){body::after{content:"▶ Run";position:fixed;top:12px;right:16px;z-index:10000;padding:12px 24px;font-weight:600;font-size:1rem;background:linear-gradient(135deg,var(--primary-color),var(--color-cyan));color:#111;border-radius:18px;box-shadow:var(--glow-primary),var(--neumorphic-outset);cursor:pointer;transition:var(--transition);font-family:Inter,sans-serif;display:flex;align-items:center;gap:8px;min-height:48px}body::after:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgb(140 233 154 / .4),var(--neumorphic-outset)}@media (max-width:480px){body::after{content:"▶";padding:1px 18px;font-size:1.2rem;top:10px;right:12px;min-height:44px}}}.fullscreen-editor-header{display:none}@media (min-width:993px){body.fullscreen .fullscreen-editor-header{position:absolute;top:0;left:0;right:0;height:64px;background:var(--bg-panel);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:10;box-shadow:0 4px 12px rgb(0 0 0 / .2);display:flex}body.fullscreen .fullscreen-tabs{display:flex;gap:6px}body.fullscreen .fullscreen-tabs .tab{border-radius:14px 14px 0 0}body.fullscreen #fullscreen-run-btn{padding:14px 32px;gap:10px}body.fullscreen #fullscreen-run-btn:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgb(140 233 154 / .4),var(--neumorphic-outset)}body.fullscreen .editor{padding-top:64px}body.fullscreen .editor textarea{height:calc(100% - 64px);padding-top:32px!important}}