*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,sans-serif;line-height:1.6;color:#333}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.header{padding:.75rem 1.5rem;background:#1a1a2e;color:#fff;display:flex;align-items:center;gap:1rem;flex-shrink:0}.header h1{font-size:1.25rem;font-weight:600}.header-tagline{font-size:.875rem;color:#aaa;flex:1}.learning-mode-toggle{display:flex;align-items:center;gap:.5rem}.toggle-label{font-size:.75rem;color:#aaa;text-transform:uppercase;letter-spacing:.5px}.toggle-button{position:relative;display:flex;align-items:center;width:70px;height:28px;padding:2px;background:#444;border:none;border-radius:14px;cursor:pointer;transition:background .3s ease}.toggle-button.on{background:linear-gradient(135deg,#4ade80,#22c55e)}.toggle-button.off{background:#555}.toggle-slider{position:absolute;width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;transition:transform .3s ease;left:3px}.toggle-button.on .toggle-slider{transform:translate(42px)}.toggle-text{font-size:.65rem;font-weight:600;color:#fff;margin-left:auto;margin-right:8px;text-transform:uppercase}.toggle-button.on .toggle-text{margin-left:8px;margin-right:auto}.main{flex:1;display:flex;overflow:hidden}.panel{display:flex;flex-direction:column;overflow:hidden}.left-panel{flex:1;border-right:1px solid #ddd}.right-panel{flex:1}.panel-header{padding:.75rem 1rem;background:#f5f5f5;border-bottom:1px solid #ddd;flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.panel-header h2{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#555}.mode-indicator{font-size:.7rem;padding:.25rem .5rem;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.restore-button{padding:.25rem .5rem;font-size:.75rem;color:#1a1a2e;background:#fff;border:1px solid #1a1a2e;border-radius:4px;cursor:pointer;transition:all .2s ease}.restore-button:hover{background:#1a1a2e;color:#fff}.panel-content{flex:1;overflow:auto;padding:1rem}.editor-panel{padding:0;overflow:hidden}.prompt-section{display:flex;gap:.5rem;padding:.75rem 1rem;background:#f5f5f5;border-top:1px solid #ddd;flex-shrink:0}.prompt-input{flex:1;padding:.5rem .75rem;font-size:.875rem;border:1px solid #ddd;border-radius:4px;outline:none}.prompt-input:focus{border-color:#1a1a2e}.ask-button{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#fff;background:#1a1a2e;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}.ask-button:hover:not(:disabled){background:#2d2d4a}.ask-button:disabled{background:#888;cursor:not-allowed}.explanation-container{height:100%;padding:1rem;background:#fafafa;border:1px solid #ddd;border-radius:4px;overflow:auto;transition:all .3s ease}.explanation-container.has-content{background:#fff;border-color:#1a1a2e}.placeholder-text{color:#888;font-style:italic}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem}.loading-spinner{width:32px;height:32px;border:3px solid #ddd;border-top-color:#1a1a2e;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#1a1a2e;font-style:italic}.explanation-content{display:flex;flex-direction:column;gap:1.5rem}.teaching-section{display:flex;flex-direction:column;background:#fff;border-radius:12px;border:1px solid #e8e8e8;overflow:hidden;box-shadow:0 2px 8px #0000000a}.section-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#f8f9ff,#fff);border:none;border-bottom:1px solid #e8e8e8;cursor:pointer;transition:background .2s ease;width:100%;text-align:left}.section-header:hover{background:linear-gradient(135deg,#f0f2ff,#f8f9ff)}.section-icon{font-size:1.25rem}.section-title{flex:1;font-size:.95rem;font-weight:600;color:#1a1a2e;margin:0;border:none;padding:0}.collapse-icon{font-size:.7rem;color:#888;transition:transform .3s ease}.collapse-icon.open{transform:rotate(180deg)}.section-content{overflow:hidden;transition:max-height .4s ease,opacity .3s ease,padding .3s ease}.section-content.expanded{max-height:2000px;opacity:1;padding:1rem 1.25rem}.section-content.collapsed{max-height:0;opacity:0;padding:0 1.25rem}.concepts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.concept-card{background:linear-gradient(135deg,#fafbff,#fff);border:1px solid #e0e4f0;border-radius:10px;padding:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.concept-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease}.concept-card:hover:before,.concept-card.expanded:before{opacity:1}.concept-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1a1a2e1f;border-color:#c0c8e0}.concept-card.expanded{background:linear-gradient(135deg,#f0f3ff,#fff)}.concept-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.concept-title{font-size:.9rem;font-weight:600;color:#1a1a2e;margin:0;flex:1}.expand-icon{font-size:1rem;font-weight:300;color:#888;transition:transform .3s ease;line-height:1}.expand-icon.open{transform:rotate(45deg)}.concept-explanation{font-size:.85rem;color:#555;line-height:1.6;margin:.75rem 0 0;max-height:3.2em;overflow:hidden;transition:max-height .4s ease}.concept-explanation.expanded{max-height:500px}.logic-flow-list{list-style:none;padding:0;margin:0;counter-reset:step-counter;display:flex;flex-direction:column;gap:.5rem}.logic-step{position:relative;padding:.875rem 1rem .875rem 3.25rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:8px;border:1px solid #e8e8e8;border-left:3px solid #1a1a2e;font-size:.9rem;line-height:1.6;counter-increment:step-counter;transition:all .3s ease}.logic-step:hover{background:linear-gradient(135deg,#f0f4ff,#fff);border-left-color:#667eea;transform:translate(4px)}.logic-step:before{content:counter(step-counter);position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1.75rem;height:1.75rem;background:linear-gradient(135deg,#1a1a2e,#2d2d4a);color:#fff;font-size:.75rem;font-weight:600;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #1a1a2e33}.code-summary{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:8px;padding:1rem;border:1px solid #bae6fd}.code-summary-text{font-size:.9rem;color:#0369a1;line-height:1.6;margin:0 0 .5rem}.code-tip{font-size:.8rem;color:#0284c7;margin:0;padding-top:.5rem;border-top:1px solid #bae6fd;font-style:italic}.error-content{padding:1rem;background:#fff5f5;border:1px solid #ffcccc;border-radius:6px}.error-text{color:#c00;font-size:.9rem;margin:0}.explanation-title{font-size:1rem;font-weight:600;color:#1a1a2e;margin-bottom:.5rem}.explanation-divider{height:2px;background:linear-gradient(to right,#1a1a2e,transparent);margin-bottom:1rem}.explanation-text{white-space:pre-wrap;word-wrap:break-word;font-family:system-ui,-apple-system,sans-serif;font-size:.9rem;line-height:1.6;margin:0}.fade-in{animation:fadeIn .4s ease-in-out}.fade-in-up{animation:fadeInUp .5s ease-out forwards;opacity:0}.slide-in{animation:slideIn .4s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2rem}.empty-icon{font-size:3rem;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-title{font-size:1.25rem;font-weight:600;color:#1a1a2e;margin:0 0 .5rem}.empty-text{font-size:.9rem;color:#666;margin:0;max-width:280px}@media (max-width: 768px){.main{flex-direction:column}.left-panel{border-right:none;border-bottom:1px solid #ddd}.left-panel,.right-panel{flex:none;height:50%}}.demo-mode-toggle{display:flex;align-items:center;gap:.5rem;margin-right:.5rem}.demo-toggle.on{background:linear-gradient(135deg,#f59e0b,#d97706)}.app.demo-mode-active{--demo-glow-color: rgba(245, 158, 11, .3);--demo-border-color: #f59e0b}.demo-presets-bar{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-bottom:2px solid #fcd34d;padding:.75rem 1.5rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.presets-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.presets-icon{font-size:1.25rem}.presets-title{font-size:.875rem;font-weight:600;color:#92400e;flex:1}.show-guide-btn{padding:.25rem .75rem;font-size:.75rem;font-weight:500;color:#92400e;background:#fff;border:1px solid #fcd34d;border-radius:4px;cursor:pointer;transition:all .2s ease}.show-guide-btn:hover{background:#fef3c7;border-color:#f59e0b}.presets-list{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.25rem}.demo-preset-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;min-width:200px;text-align:left}.demo-preset-card:hover{border-color:#f59e0b;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b26}.demo-preset-card.active{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff);box-shadow:0 0 0 3px #f59e0b33}.preset-icon{font-size:1.5rem}.preset-content{flex:1;min-width:0}.preset-title{font-size:.85rem;font-weight:600;color:#1f2937;margin:0 0 .125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-desc{font-size:.7rem;color:#6b7280;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-highlight{position:relative}.demo-highlight:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid transparent;border-radius:4px;pointer-events:none;animation:demoGlow 2s ease-in-out infinite}@keyframes demoGlow{0%,to{border-color:#f59e0b4d;box-shadow:0 0 10px #f59e0b1a}50%{border-color:#f59e0b99;box-shadow:0 0 20px #f59e0b4d}}.demo-pulse{animation:demoPulse 1.5s ease-in-out infinite}@keyframes demoPulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.prompt-input-wrapper{position:relative;flex:1}.prompt-input-wrapper .prompt-input{width:100%}.tooltip{position:absolute;z-index:100;padding:.5rem .75rem;background:#1a1a2e;color:#fff;font-size:.75rem;border-radius:6px;white-space:nowrap;animation:tooltipFadeIn .3s ease-out;box-shadow:0 4px 12px #00000026}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-arrow{position:absolute;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #1a1a2e;bottom:-6px;left:50%;transform:translate(-50%)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.demo-guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;animation:fadeIn .3s ease-out}.demo-spotlight{position:absolute;background:transparent;box-shadow:0 0 0 9999px #0009;border-radius:8px;transition:all .4s ease}.spotlight-demo-presets{top:50px;left:10px;right:10px;height:100px}.spotlight-code-editor{top:160px;left:10px;width:calc(50% - 15px);height:calc(100vh - 260px)}.spotlight-prompt-input{bottom:10px;left:10px;width:calc(50% - 200px);height:50px}.spotlight-ask-button{bottom:10px;left:calc(50% - 180px);width:160px;height:50px}.spotlight-explanation-panel{top:160px;right:10px;width:calc(50% - 15px);height:calc(100vh - 180px)}.demo-guide-popup{position:absolute;width:300px;background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 10px 40px #0003;animation:popupSlideIn .4s ease-out}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-demo-presets{top:160px;left:50%;transform:translate(-50%)}.popup-code-editor{top:200px;left:calc(50% + 20px)}.popup-prompt-input{bottom:80px;left:50%;transform:translate(-50%)}.popup-ask-button{bottom:80px;right:20%}.popup-explanation-panel{top:200px;right:calc(50% + 20px)}.guide-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.guide-step-count{font-size:.7rem;font-weight:600;color:#f59e0b;text-transform:uppercase;letter-spacing:.5px}.guide-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:none;border-radius:50%;font-size:1rem;color:#6b7280;cursor:pointer;transition:all .2s ease}.guide-close:hover{background:#e5e7eb;color:#1f2937}.guide-title{font-size:1.1rem;font-weight:600;color:#1a1a2e;margin:0 0 .5rem}.guide-text{font-size:.875rem;color:#4b5563;line-height:1.5;margin:0 0 1rem}.guide-actions{display:flex;gap:.5rem}.guide-btn{flex:1;padding:.5rem 1rem;font-size:.8rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.guide-btn-prev{background:#f3f4f6;color:#4b5563}.guide-btn-prev:hover:not(:disabled){background:#e5e7eb}.guide-btn-prev:disabled{opacity:.5;cursor:not-allowed}.guide-btn-next{background:#f59e0b;color:#fff}.guide-btn-next:hover{background:#d97706}.guide-btn-done{background:#22c55e;color:#fff}.guide-btn-done:hover{background:#16a34a}.empty-demo-btn{margin-top:1rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.empty-demo-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}@media (max-width: 768px){.demo-presets-bar{padding:.5rem 1rem}.presets-list{gap:.5rem}.demo-preset-card{min-width:160px;padding:.5rem .75rem}.demo-guide-popup{width:260px;padding:1rem}.demo-mode-toggle,.learning-mode-toggle{display:none}}
