*{margin:0;padding:0;box-sizing:border-box}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;background:linear-gradient(135deg,#fdfbf7,#f8f4ed);color:#3e3e3e;height:100vh;overflow:hidden}.container{display:flex;flex-direction:column;height:100vh}header{background:linear-gradient(135deg,#fff,#f5f0e8);color:#2c3e50;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 12px #00000014;border-bottom:1px solid rgba(0,0,0,.06)}header h1{font-size:16px;font-weight:500;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-controls{display:flex;gap:6px;align-items:center}.custom-code-container{flex:1;display:flex;flex-direction:column;background:#fafafa;overflow:hidden}.custom-code-header{padding:16px 20px;background:linear-gradient(135deg,#fdfbf7,#f8f4ed);border-bottom:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center}.custom-code-header p{margin:0;font-size:13px;color:#667eea;font-weight:500}.custom-code-actions{display:flex;gap:8px}#custom-code-input{flex:1;padding:20px;border:none;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;line-height:1.6;background:#fafafa;color:#2c3e50;resize:none;outline:none}#custom-code-input::placeholder{color:#95a5a6}.ai-chat-container{flex:1;display:flex;flex-direction:column;background:#fafafa;overflow:hidden}.ai-chat-header{padding:16px 20px;background:linear-gradient(135deg,#fdfbf7,#f8f4ed);border-bottom:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center}.ai-chat-header h3{color:#2c3e50;font-size:16px;font-weight:500;margin:0;display:flex;align-items:center;gap:8px}.ai-chat-header h3:before{content:"🤖";font-size:20px;animation:wave 2s ease-in-out infinite}@keyframes wave{0%,to{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}.api-key-status{display:flex;align-items:center;gap:10px}.status-indicator{width:10px;height:10px;border-radius:50%;background:#e74c3c}.status-indicator.active{background:#2ecc71}#ai-chat-messages{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.chat-message{display:flex;flex-direction:column;max-width:80%;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end}.chat-message.assistant{align-self:flex-start}.chat-message-content{padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5;word-wrap:break-word}.chat-message.user .chat-message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 8px #667eea4d}.chat-message.assistant .chat-message-content{background:#fff;color:#2c3e50;border-bottom-left-radius:4px;box-shadow:0 2px 8px #00000014;border:1px solid rgba(0,0,0,.06)}.chat-message-time{font-size:11px;color:#888;margin-top:5px;padding:0 5px}.chat-message.user .chat-message-time{text-align:right}.chat-message.assistant .chat-message-time{text-align:left}.tutorial-steps{margin-top:10px;padding:10px;background:#3498db1a;border-radius:8px;border-left:3px solid #3498db}.tutorial-step{display:flex;align-items:center;gap:10px;padding:8px;margin:5px 0;border-radius:4px;transition:all .3s}.tutorial-step.completed{background:#2ecc711a;opacity:.7}.tutorial-step.current{background:#3498db33;font-weight:600}.tutorial-step.pending{opacity:.5}.step-number{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tutorial-step.completed .step-number{background:#2ecc71;color:#fff}.tutorial-step.current .step-number{background:#3498db;color:#fff;animation:pulse-step 1.5s ease-in-out infinite}.tutorial-step.pending .step-number{background:#95a5a6;color:#fff}@keyframes pulse-step{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.step-content{flex:1;font-size:13px}.step-action-btn{padding:6px 12px;border:none;border-radius:4px;background:#3498db;color:#fff;font-size:12px;cursor:pointer;transition:all .3s;white-space:nowrap}.step-action-btn:hover{background:#2980b9;transform:translateY(-1px)}.step-action-btn:disabled{background:#95a5a6;cursor:not-allowed;transform:none}.step-action-btn.success{background:#2ecc71}.step-action-btn.success:hover{background:#27ae60}.tutorial-completion{margin-top:15px;padding:15px;background:linear-gradient(135deg,#2ecc71,#27ae60);border-radius:8px;color:#fff;text-align:center;font-weight:600;animation:celebrationPulse 1s ease-in-out 3}@keyframes celebrationPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tutorial-action-buttons{display:flex;gap:10px;margin-top:15px;flex-wrap:wrap}.tutorial-action-buttons button{flex:1;min-width:120px}.tutorial-active-badge{position:fixed;bottom:20px;right:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:10px 16px;border-radius:25px;font-size:11px;font-weight:600;box-shadow:0 4px 15px #667eea66;z-index:100;display:flex;align-items:center;gap:8px;animation:slideInBounce .5s ease-out}@keyframes slideInBounce{0%{transform:translate(100px);opacity:0}60%{transform:translate(-10px)}to{transform:translate(0);opacity:1}}.tutorial-active-badge:before{content:"🎯";font-size:16px;animation:rotate 3s linear infinite}@keyframes rotate{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.chat-message.assistant:before{content:"🤖";position:absolute;left:-30px;top:0;font-size:24px;animation:bobAvatar 2s ease-in-out infinite}@keyframes bobAvatar{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.chat-message{position:relative;padding-left:10px}.confetti{position:fixed;width:10px;height:10px;background:#f0f;position:absolute;animation:confetti-fall 3s ease-out forwards;z-index:1000}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.celebration-message{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;padding:15px 20px;border-radius:12px;font-weight:600;text-align:center;margin:10px 0;animation:celebrationPop .6s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 5px 20px #f5576c66}@keyframes celebrationPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.chat-typing{display:flex;gap:5px;padding:12px 16px;background:#2d2d30;border-radius:12px 12px 12px 4px;width:fit-content}.chat-typing span{width:8px;height:8px;border-radius:50%;background:#888;animation:typing 1.4s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.ai-chat-input-container{padding:15px 20px;background:#2d2d30;border-top:1px solid #1e1e1e;display:flex;gap:10px}#ai-chat-input{flex:1;padding:10px 15px;border:1px solid #3c3c3c;border-radius:4px;background:#1e1e1e;color:#d4d4d4;font-size:14px;font-family:inherit;outline:none;resize:none;transition:border-color .3s}#ai-chat-input:focus{border-color:#3498db}#ai-chat-input::placeholder{color:#888}#language-select{padding:8px 12px;border:none;border-radius:4px;background:#fff;font-size:14px;cursor:pointer}.btn{padding:10px 20px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #667eea4d}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn:disabled{background:linear-gradient(135deg,#bdc3c7,#95a5a6);cursor:not-allowed;box-shadow:none}.btn-small{padding:6px 14px;border:none;border-radius:6px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #667eea40}.btn-small:hover{transform:translateY(-1px);box-shadow:0 3px 10px #667eea59}.main-content{display:flex;flex:1;overflow:hidden;position:relative}.workspace-panel{flex:2;display:flex;flex-direction:column;background:#fff;min-width:200px;border-radius:12px;box-shadow:0 4px 16px #0000000f;margin:16px 0 16px 16px;overflow:hidden}.resize-handle{width:8px;background:transparent;cursor:col-resize;position:relative;transition:all .2s}.resize-handle:hover{background:linear-gradient(135deg,#667eea,#764ba2)}.resize-handle:before{content:"";position:absolute;width:20px;height:100%;left:-7.5px}.workspace-panel h3{padding:16px 20px;background:linear-gradient(135deg,#fdfbf7,#f8f4ed);border-bottom:1px solid rgba(0,0,0,.06);font-size:15px;font-weight:500;color:#2c3e50}#blocklyDiv{flex:1;width:100%}.ai-highlighted-block{outline:3px solid #3498db!important;outline-offset:3px;animation:pulse-highlight 2s ease-in-out infinite;box-shadow:0 0 20px #3498db99!important}@keyframes pulse-highlight{0%,to{outline-color:#3498db;box-shadow:0 0 20px #3498db99}50%{outline-color:#2ecc71;box-shadow:0 0 30px #2ecc71cc}}.ai-highlighted-category{animation:category-pulse 1s ease-in-out 3;background:#3498db33!important}.code-panel{flex:1;display:flex;flex-direction:column;background:#fff;color:#3e3e3e;border-radius:12px;box-shadow:0 4px 16px #0000000f;margin:16px 16px 16px 8px;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(135deg,#fdfbf7,#f8f4ed);border-bottom:1px solid rgba(0,0,0,.06)}.panel-header h3{font-size:15px;font-weight:500;color:#2c3e50}.tabs{display:flex;gap:5px}.tab-btn{padding:8px 18px;border:none;background:transparent;color:#95a5a6;font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .3s}.tab-btn:hover{color:#667eea;background:#667eea0d}.tab-btn.active{color:#667eea;border-bottom-color:#667eea;background:#667eea14}.tab-content{display:none;flex:1;overflow:hidden}.tab-content.active{display:flex;flex-direction:column}.code-panel pre{flex:1;margin:0;overflow:auto;background:#fafafa}#code-output{display:block;padding:15px;margin:0;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre;background:#fafafa;color:#2c3e50}#code-output.hljs{background:#fafafa;padding:20px}.console-panel{min-height:40px;max-height:200px;flex:0 0 200px;display:flex;flex-direction:column;background:#fff;border-top:1px solid rgba(0,0,0,.06);color:#3e3e3e;transition:all .3s ease;box-shadow:0 -2px 12px #0000000a}.console-panel.minimized{flex:0 0 40px;min-height:40px;max-height:40px}.console-panel.minimized #console-output{display:none}.console-panel .panel-header{flex-shrink:0}#console-output{flex:1;padding:15px;margin:0;overflow:auto;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;background:#fafafa;color:#2c3e50}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#00000005}::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#667eea80}.console-controls{display:flex;gap:8px}.serial-input-container{display:flex;gap:8px;padding:10px;background:#2d2d30;border-top:1px solid #1e1e1e}#serial-input{flex:1;padding:6px 10px;background:#1e1e1e;border:1px solid #3c3c3c;border-radius:3px;color:#d4d4d4;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;outline:none}#serial-input:focus{border-color:#3498db}#serial-input:disabled{opacity:.5;cursor:not-allowed}.layout-controls{padding:15px;background:#2d2d30;border-bottom:1px solid #1e1e1e;display:flex;align-items:center;gap:10px}#three-container{flex:1;background:#1e1e1e;position:relative;min-height:400px}#three-container canvas{width:100%!important;height:100%!important}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080}.modal.show{display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid rgba(0,0,0,.06);background:linear-gradient(135deg,#fdfbf7,#f8f4ed);border-radius:16px 16px 0 0}.modal-header h2{font-size:20px;font-weight:500;margin:0;color:#2c3e50}.modal-header .btn-small{font-size:24px;padding:0 8px;line-height:1}.modal-body{padding:20px;overflow-y:auto}.file-actions{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.file-actions input{flex:1;min-width:200px;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}#file-list{background:#f9f9f9;padding:15px;border-radius:4px;min-height:150px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap}.flash-info{background:#fff3cd;border:1px solid #ffc107;padding:15px;border-radius:4px;margin-bottom:20px}.flash-info p{margin:5px 0}.flash-method{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;padding:15px;background:#f9f9f9;border-radius:4px}.flash-method label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.flash-method input[type=radio]{cursor:pointer}.flash-form{display:flex;gap:10px;margin-bottom:20px}.flash-form select{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}#flash-progress{background:#f9f9f9;padding:15px;border-radius:4px;min-height:150px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-y:auto;max-height:300px}.blocklyPath{stroke-width:1px;stroke:#00000026}.blocklyDraggable:not(.blocklyDisabled) .blocklyPath{fill-opacity:1;stroke-opacity:1}.blocklyDraggable{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));transition:filter .1s ease}.blocklyDraggable:hover{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.blocklySelected>.blocklyPath{stroke-width:2px!important;stroke:#fffc!important}.blocklyDragging{filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}.blocklyEditableText>rect,.blocklyDropDownDiv .goog-menuitem{fill:#ffffff40}.blocklyEditableText:hover>rect{fill:#ffffff59}@media (max-width: 1024px){.main-content{flex-direction:column}.workspace-panel,.code-panel{flex:1;margin:8px;min-height:300px}.resize-handle{display:none}}@media (max-width: 768px){header{flex-direction:column;gap:8px;align-items:stretch;padding:10px 15px}header h1{font-size:14px;text-align:center}.header-controls{justify-content:center;flex-wrap:wrap;gap:4px}.btn-small{font-size:11px;padding:5px 10px}select{font-size:11px;padding:5px 8px}.workspace-panel,.code-panel{margin:4px;border-radius:8px}.panel-header h3{font-size:13px}.tab-btn{font-size:11px;padding:6px 12px}.blocklyTreeRow{min-height:44px}.tutorial-active-badge{bottom:15px;right:15px;font-size:11px;padding:8px 12px}}@media (max-width: 768px) and (orientation: landscape){.main-content{flex-direction:row}.workspace-panel,.code-panel{min-height:auto}}
