:root{--bg-color:#0d0f14;--sidebar-bg:#14171f;--card-bg:#ffffff0a;--card-hover:#ffffff14;--border-color:#ffffff14;--accent-color:#3b82f6;--accent-gradient:linear-gradient(135deg, #4f46e5, #3b82f6);--accent-gradient-hover:linear-gradient(135deg, #4338ca, #2563eb);--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--node-bg:#1e2230;--node-border:#3b82f64d;--node-radius:12px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--font-sans:"Inter", system-ui, sans-serif;--font-display:"Outfit", "Inter", system-ui, sans-serif;--transition:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}button{font-family:var(--font-sans);cursor:pointer;color:inherit;background:0 0;border:none;outline:none}.app-container{width:100vw;height:100vh;display:flex}.sidebar{background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;width:280px;min-width:280px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow-x:hidden;box-shadow:2px 0 20px #0003}body.sidebar-collapsed .sidebar{opacity:0;border-right:none;width:0;min-width:0;transform:translate(-100%)}.icon-btn{color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:flex}.icon-btn:hover{color:var(--accent-light);background:#ffffff1a}.btn-sidebar-toggle-out{display:none!important}body.sidebar-collapsed .btn-sidebar-toggle-out{display:flex!important}.btn-sidebar-toggle-in{opacity:.6}.btn-sidebar-toggle-in:hover{opacity:1}.sidebar-header{padding:24px}.sidebar-header h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:1.1rem;font-weight:600}.idea-list{flex-direction:column;flex:1;gap:8px;padding:0 16px;display:flex;overflow-y:auto}.idea-list::-webkit-scrollbar{width:6px}.idea-list::-webkit-scrollbar-thumb{background-color:#ffffff1a;border-radius:4px}.idea-card{background-color:var(--card-bg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:1px solid #0000;padding:16px;position:relative;overflow:hidden}.idea-card:before{content:"";background:var(--accent-gradient);opacity:0;width:4px;height:100%;transition:opacity var(--transition);position:absolute;top:0;left:0}.idea-card:hover{background-color:var(--card-hover);transform:translateY(-2px)}.idea-card.active{background-color:#3b82f61a;border-color:#3b82f64d;box-shadow:0 4px 20px #0000001a}.idea-card.active:before{opacity:1}.idea-card h3{color:var(--text-primary);margin-bottom:4px;padding-right:48px;font-size:1rem}.btn-delete-idea,.btn-rename-idea{width:22px;height:22px;color:var(--text-muted);opacity:0;transition:all var(--transition);background:#ffffff0d;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;display:flex;position:absolute;top:12px}.btn-delete-idea{right:12px}.btn-rename-idea{right:38px}.idea-card:hover .btn-delete-idea,.idea-card:hover .btn-rename-idea{opacity:1}.btn-delete-idea:hover{color:#fff;background:#ef4444}.btn-rename-idea:hover{background:var(--accent-color);color:#fff}.sidebar-search{padding:0 16px 16px}.sidebar-search input{border:1px solid var(--border-color);border-radius:var(--radius-md);color:#fff;width:100%;transition:all var(--transition);background:#ffffff0d;outline:none;padding:10px 14px;font-size:.85rem}.sidebar-search input:focus{border-color:var(--accent-color);background:#ffffff14;box-shadow:0 0 10px #3b82f633}.idea-card p{color:var(--text-secondary);font-size:.8rem}.sidebar-footer{border-top:1px solid var(--border-color);padding:24px}.btn-add-idea{border-radius:var(--radius-md);background:var(--card-bg);border:1px dashed var(--border-color);width:100%;color:var(--text-primary);transition:all var(--transition);justify-content:center;align-items:center;gap:8px;padding:12px;font-weight:500;display:flex}.btn-add-idea:hover{background:var(--card-hover);border-color:var(--text-secondary)}.main-content{background:radial-gradient(circle at 100% 0,#4f46e50d,#0000 50%),radial-gradient(circle at 0 100%,#3b82f60d,#0000 50%);flex-direction:column;flex:1;display:flex;position:relative}.main-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#0d0f14cc;justify-content:space-between;align-items:center;padding:24px 40px;display:flex}.main-header h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;text-shadow:0 2px 10px #3b82f633;-webkit-background-clip:text;background-clip:text;font-size:1.5rem}.view-toggle{border-radius:var(--radius-full);border:1px solid var(--border-color);background-color:#ffffff0d;padding:4px;display:flex}.toggle-btn{border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition);padding:8px 16px;font-size:.9rem;font-weight:500}.toggle-btn.active{background:var(--card-bg);color:var(--text-primary);box-shadow:0 2px 8px #0003}.workspace-container{flex:1;position:relative;overflow:hidden}.view-section{opacity:0;pointer-events:none;flex-direction:column;width:100%;height:100%;transition:opacity .4s;display:flex;position:absolute;top:0;left:0}.view-section.active{opacity:1;pointer-events:auto}.canvas-wrapper{background-image:radial-gradient(var(--border-color) 1px, transparent 1px);cursor:grab;touch-action:none;background-size:24px 24px;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.canvas-wrapper:active{cursor:grabbing}.connections-layer{pointer-events:none;width:3000px;height:3000px;position:absolute;top:0;left:0;overflow:visible}path.connection-line{fill:none;stroke:var(--border-color);stroke-width:2px;transition:stroke .3s}path.connection-line.highlighted{stroke:var(--accent-color);stroke-width:3px;filter:drop-shadow(0 0 8px #3b82f680)}.nodes-layer{width:3000px;height:3000px;position:absolute;top:0;left:0}.mindmap-node{background:var(--node-bg);border:1px solid var(--node-accent);border-radius:var(--radius-md);color:var(--text-primary);white-space:nowrap;cursor:grab;transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition);--node-accent:var(--accent-color);align-items:center;gap:10px;padding:12px 20px;font-size:.95rem;font-weight:500;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 12px #0003}.node-icon{justify-content:center;align-items:center;min-width:24px;font-size:1.2rem;display:flex}.mindmap-node.is-root{border:2.5px solid var(--node-accent);box-shadow:0 0 20px var(--node-accent);background:#14002866;padding:18px 28px;font-size:1.2rem;font-weight:700}.mindmap-node.depth-1{border-width:2px;border-color:var(--node-accent);padding:14px 22px;font-size:1.05rem;font-weight:600}.mindmap-node.depth-2{--node-accent:#ffffff26;border-color:var(--node-accent);padding:10px 18px;font-size:.9rem}.mindmap-node.depth-3,.mindmap-node.depth-4,.mindmap-node.depth-5{--node-accent:#ffffff0d;border-color:var(--node-accent);color:var(--text-secondary);box-shadow:none;background:#ffffff08;padding:8px 14px;font-size:.85rem}.mindmap-node:active{cursor:grabbing}.mindmap-node:hover{border-color:var(--node-accent);box-shadow:0 8px 24px #0000004d}.mindmap-node:focus{border-color:var(--node-accent);outline:none;box-shadow:0 0 0 3px #3b82f666}body.is-dragging .mindmap-node .node-actions,body.is-dragging .mindmap-node .node-ai-btn{opacity:0!important;visibility:hidden!important;pointer-events:none!important;display:none!important}.mindmap-node.drag-over{transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 0 0 4px var(--primary-color), 0 0 20px #3b82f699!important;border-color:var(--primary-color)!important;transform:translate(-50%,-50%)!important}.mindmap-node.drag-over:after{content:"🔄 이 노드의 하위로 연결";background:var(--primary-color);color:#fff;white-space:nowrap;z-index:1000;pointer-events:none;border-radius:20px;padding:8px 16px;font-size:.9rem;font-weight:600;animation:.4s infinite alternate popupBounce;position:absolute;bottom:-45px;left:50%;transform:translate(-50%);box-shadow:0 4px 15px #3b82f666}@keyframes popupBounce{0%{transform:translate(-50%)translateY(0)}to{transform:translate(-50%)translateY(5px)}}.ghost-node{border-radius:var(--radius-md);color:#fff6;cursor:pointer;pointer-events:auto;z-index:5;-webkit-user-select:none;user-select:none;background:#ffffff0d;border:1.5px dashed #fff3;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.175,.885,.32,1.275);animation:.3s ease-out forwards ghostEntrance;display:flex;position:absolute;transform:translate(-50%,-50%)}.ghost-node:hover{border-color:var(--accent-color);color:var(--text-primary);background:#ffffff1a;transform:translate(-50%,-50%)scale(1.05)}.ghost-node .icon{color:var(--accent-color);font-size:1.1rem}@keyframes ghostEntrance{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.node-title{min-width:30px;transition:border-color var(--transition);cursor:text;border-bottom:1px dashed #0000;outline:none;display:inline-block}.node-title:focus{border-bottom-color:var(--accent-color);background:#ffffff0d;border-radius:4px}.node-actions{opacity:0;transition:opacity var(--transition), transform var(--transition);pointer-events:none;z-index:5;gap:6px;display:flex;position:absolute;top:-16px;right:-10px;transform:translateY(4px)}.mindmap-node:hover .node-actions,.mindmap-node:focus .node-actions{opacity:1;pointer-events:auto;transform:translateY(0)}.node-add-btn,.node-ai-btn,.node-delete-btn{border-radius:var(--radius-full);width:26px;height:26px;transition:all var(--transition);cursor:pointer;background:var(--node-bg);justify-content:center;align-items:center;font-size:1.05rem;display:flex;box-shadow:0 2px 10px #0006}.node-add-btn{color:var(--text-secondary);border:1px solid var(--border-color)}.node-add-btn:hover{background:var(--accent-gradient);color:#fff;border-color:#0000;transform:scale(1.1)}.node-ai-btn{color:#f0c;border:1px solid #f0c6}.node-delete-btn{color:#ef4444;border:1px solid #ef444466}.node-delete-btn:hover{color:#fff;background:#ef4444;border-color:#0000;transform:scale(1.1);box-shadow:0 4px 15px #ef444466}.canvas-controls{z-index:10;align-items:center;gap:16px;display:flex;position:absolute;bottom:30px;right:30px}#skin-selector{background:var(--node-bg);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(10px);outline:none;padding:8px 16px;font-family:inherit;font-size:.9rem}.floating-action-btn{border-radius:var(--radius-full);background:var(--accent-gradient);color:#fff;width:56px;height:56px;transition:all var(--transition);justify-content:center;align-items:center;font-size:1.5rem;display:flex;box-shadow:0 4px 20px #3b82f666}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.floating-action-btn:hover{background:var(--accent-gradient-hover);transform:scale(1.05);box-shadow:0 6px 25px #3b82f699}@keyframes nodeEntrance{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.mindmap-node{animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards nodeEntrance}@keyframes shimmerPulse{0%{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 10px #3b82f64d}50%{border-color:#ec4899;transform:translate(-50%,-50%)scale(1.05);box-shadow:0 0 25px #ec489980}to{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 10px #3b82f64d}}.node-generating{border-color:var(--accent-light)!important;animation:2s infinite shimmerPulse!important}.connection-line{stroke-dasharray:none;stroke-dashoffset:0}.style-picker-popover{border-radius:var(--radius-md);z-index:2000;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);-webkit-user-select:none;user-select:none;background:#1e2230f2;border:1px solid #ffffff1a;flex-direction:column;gap:10px;min-width:220px;max-height:80vh;margin-top:8px;padding:16px;display:flex;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 20px 50px #0009}.style-picker-popover h4{text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;margin-bottom:2px;font-size:.7rem;font-weight:700}.color-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:transform .2s}.color-option:hover{transform:scale(1.2)}.color-option.active{border-color:#fff;box-shadow:0 0 8px #ffffff4d}.custom-color-btn{box-shadow:none!important;border:none!important}.custom-color-btn.active{box-shadow:0 0 15px #ffffff4d;border:none!important}.custom-color-btn:after{content:"";-webkit-mask:radial-gradient(closest-side, transparent 92%, black 93%), repeating-conic-gradient(black 0 10deg, transparent 10deg 20deg);-webkit-mask-composite:source-in;-webkit-mask:radial-gradient(closest-side, transparent 92%, black 93%), repeating-conic-gradient(black 0 10deg, transparent 10deg 20deg);mask:radial-gradient(closest-side, transparent 92%, black 93%), repeating-conic-gradient(black 0 10deg, transparent 10deg 20deg);pointer-events:none;background:conic-gradient(red,#fb0,#fff200,#0f0,#0ff,#00f,#f0f,red);border-radius:50%;position:absolute;inset:-4px;-webkit-mask-composite:source-in;mask-composite:intersect}.icon-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.icon-option{border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;transition:background .2s;display:flex}.icon-option:hover{background:#ffffff1a}.icon-option.active{background:var(--accent-color);color:#fff}.node-style-btn{color:var(--text-secondary);border:1px solid var(--border-color)}.node-style-btn:hover{background:var(--card-hover);color:var(--text-primary);border-color:var(--text-secondary)}#roadmap-view{padding:40px;overflow-y:auto}.roadmap-timeline{flex-direction:column;gap:32px;margin-left:20px;display:flex;position:relative}.roadmap-timeline:before{content:"";background:var(--border-color);width:2px;height:100%;position:absolute;top:0;left:0}.roadmap-step{align-items:flex-start;gap:20px;display:flex;position:relative}.step-marker{border-radius:var(--radius-full);background:var(--node-bg);border:2px solid var(--accent-color);width:32px;height:32px;color:var(--accent-color);z-index:2;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex;transform:translate(-15px);box-shadow:0 0 10px #0006}.roadmap-step.completed .step-marker{background:var(--accent-gradient);color:#fff;border-color:#0000;box-shadow:0 0 15px #3b82f666}.step-content{background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border-color);max-width:600px;transition:all var(--transition);flex:1;padding:20px}.step-content:hover{background:var(--card-hover);border-color:#ffffff26;transform:translate(4px)}.step-content h3{color:var(--text-primary);margin-bottom:8px;font-size:1.1rem}.step-content p{color:var(--text-secondary);font-size:.9rem}.step-toggle-btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--accent-color);color:var(--accent-color);transition:all var(--transition);background:0 0;align-items:center;gap:6px;margin-top:14px;padding:7px 14px;font-size:.82rem;font-weight:500;display:inline-flex}.step-toggle-btn:hover{background:#6366f126}.step-toggle-btn.done{color:#22c55e;background:#22c55e14;border-color:#22c55e}.step-toggle-btn.done:hover{background:#22c55e2e}.step-footer{flex-wrap:wrap;align-items:center;gap:14px;margin-top:4px;display:flex}.step-completed-at{color:#22c55e;opacity:.85;font-size:.78rem;font-weight:500}.completion-history{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--card-bg);margin-top:32px;overflow:hidden}.history-header{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:background var(--transition);justify-content:space-between;align-items:center;padding:14px 18px;font-size:.9rem;font-weight:600;display:flex}.history-header:hover{background:var(--card-hover);color:var(--text-primary)}.history-chevron{font-size:.75rem;transition:transform .25s}.completion-history.open .history-chevron{transform:rotate(90deg)}.history-list{border-top:1px solid var(--border-color);margin:0;padding:0 0 8px;list-style:none;display:none}.completion-history.open .history-list{display:block}.history-list li{border-bottom:1px solid #ffffff0a;align-items:center;gap:10px;padding:10px 18px;font-size:.85rem;display:flex}.history-list li:last-child{border-bottom:none}.history-check{flex-shrink:0;font-size:1rem}.history-title{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.history-date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem}.roadmap-step.completed .step-content{opacity:.6}.roadmap-step.completed .step-content h3{color:var(--text-muted);text-decoration:line-through}.roadmap-progress-container{background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border-color);margin:0 0 28px;padding:18px 20px}.roadmap-progress-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.progress-label{color:var(--text-primary);font-size:.95rem;font-weight:600}.progress-count{color:var(--text-secondary);font-size:.85rem}.roadmap-progress-bar-bg{background:var(--border-color);border-radius:99px;width:100%;height:8px;overflow:hidden}.roadmap-progress-bar-fill{background:var(--accent-gradient);border-radius:99px;height:100%;transition:width .5s}.roadmap-complete-badge{border-radius:var(--radius-sm);color:#22c55e;text-align:center;background:#22c55e1f;border:1px solid #22c55e4d;margin-top:12px;padding:10px 14px;font-size:.9rem;font-weight:500}.celebration-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#000000b3;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.celebration-modal{background:var(--card-bg);text-align:center;border:1px solid #ffffff1f;border-radius:24px;width:90%;max-width:420px;padding:48px 40px;animation:.4s cubic-bezier(.34,1.56,.64,1) popIn;box-shadow:0 24px 64px #00000080}@keyframes popIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.celebration-emoji{margin-bottom:16px;font-size:4rem;animation:.8s infinite alternate bounce}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.celebration-title{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:1.8rem;font-weight:700}.celebration-sub{color:var(--text-secondary);margin-bottom:28px;font-size:.95rem;line-height:1.6}.celebration-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.celebration-btn-new{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:none;padding:12px 22px;font-size:.9rem;font-weight:600;box-shadow:0 4px 16px #6366f166}.celebration-btn-new:hover{transform:translateY(-2px);box-shadow:0 8px 24px #6366f180}.celebration-btn-close{color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);background:0 0;padding:12px 22px;font-size:.9rem}.celebration-btn-close:hover{background:var(--card-hover);color:var(--text-primary)}.roadmap-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:0 20px;display:flex}.roadmap-header .section-title{color:var(--text-secondary);margin:0;font-size:1.1rem}.btn-primary{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);transition:all var(--transition);align-self:flex-start;padding:12px 24px;font-weight:500;display:inline-block}.btn-primary:hover{background:var(--accent-gradient-hover);box-shadow:0 4px 15px #3b82f666}.mt-20{margin-top:20px}.btn-ai-magic{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);background:linear-gradient(45deg,#f0c,#33f,#00c6ff) 0 0/200% 200%;border:none;align-items:center;gap:8px;padding:12px 24px;font-weight:600;animation:4s infinite gradientFlow;display:flex;box-shadow:0 4px 15px #ff00cc4d}.btn-ai-magic:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff00cc80}.btn-ai-magic:disabled{opacity:.7;cursor:not-allowed;background:var(--card-bg);color:var(--text-muted);box-shadow:none;border:1px dashed var(--border-color);animation:none;transform:none}@keyframes gradientFlow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.node-ai-btn{color:#f0c;border-radius:var(--radius-full);opacity:0;width:28px;height:24px;transition:all var(--transition);background:#ff00cc1a;border:1px solid #ff00cc4d;justify-content:center;align-items:center;font-size:.9rem;display:flex;transform:translate(5px)}.mindmap-node:hover .node-ai-btn{opacity:1}.node-ai-btn:hover{color:#fff;background:linear-gradient(45deg,#f0c,#33f);border-color:#0000;transform:translate(8px)scale(1.1);box-shadow:0 2px 10px #f0c6}.node-generating{pointer-events:none;animation:1.5s infinite pulseNode}@keyframes pulseNode{0%{border-color:#f0cc;box-shadow:0 0 #f0c6}70%{box-shadow:0 0 0 15px #f0c0}to{box-shadow:0 0 #f0c0}}.typing-indicator{gap:4px;margin-top:10px;display:flex}.typing-indicator span{background-color:#f0c;border-radius:50%;width:6px;height:6px;animation:1.4s cubic-bezier(.2,.8,.2,1) infinite typing;display:inline-block}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.modal-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;background:#000000b3;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{border-radius:var(--radius-lg);text-align:center;background:linear-gradient(145deg,#161821,#0f1015);border:1px solid #ffffff1a;width:90%;max-width:500px;padding:40px;animation:.4s cubic-bezier(.2,.8,.2,1) slideUp;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000080,inset 0 1px #ffffff1a}.modal-content:before{content:"";background:var(--accent-gradient);filter:blur(80px);opacity:.5;pointer-events:none;width:150px;height:150px;position:absolute;top:-50px;left:-50px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-badge{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-full);letter-spacing:.05em;margin-bottom:20px;padding:6px 12px;font-size:.8rem;font-weight:700;display:inline-block;box-shadow:0 4px 15px #3b82f666}.modal-content h2{color:#fff;margin-bottom:12px;font-size:1.6rem}.modal-content p{color:var(--text-secondary);margin-bottom:30px;font-size:.95rem;line-height:1.6}.pro-features{text-align:left;border-radius:var(--radius-md);background:#ffffff05;border:1px solid #ffffff0d;margin-bottom:30px;padding:20px;list-style:none}.pro-features li{color:var(--text-primary);align-items:center;gap:12px;margin-bottom:12px;font-size:.95rem;display:flex}.pro-features li:last-child{margin-bottom:0}.modal-actions{gap:12px;display:flex}.btn-cancel{color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition);background:0 0;border:1px solid #ffffff1a;flex:1;padding:14px;font-weight:500}.btn-cancel:hover{color:#fff;background:#ffffff0d}.btn-upgrade{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-md);transition:all var(--transition);flex:2;padding:14px;font-weight:600;box-shadow:0 4px 20px #3b82f64d}.btn-upgrade:hover{transform:translateY(-2px);box-shadow:0 6px 25px #3b82f680}.input-group{margin-bottom:20px}.input-group label{color:var(--text-secondary);margin-bottom:8px;font-size:.95rem;font-weight:500;display:block}.modal-input{border-radius:var(--radius-sm);color:#fff;width:100%;transition:all var(--transition);background:#0000004d;border:1px solid #ffffff1a;padding:14px 16px;font-family:inherit;font-size:1rem}.modal-input:focus{border-color:var(--accent-color);background:#00000080;outline:none;box-shadow:0 0 0 3px #3b82f633}.modal-input::placeholder{color:var(--text-muted)}#mindmap-view.theme-cloud{--node-bg:#ffffffe6;--node-border:#0000001a;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#00000026;--glass-shadow:0 10px 40px #00000014;background-color:#f0f4f8;background-image:linear-gradient(135deg,#fdfbfb 0%,#ebedee 100%)}#mindmap-view.theme-cloud .connection-line{stroke:#cbd5e1}#mindmap-view.theme-cyber{--node-bg:#140028cc;--node-border:#f0c;--text-primary:#fff;--text-secondary:#0ff;--border-color:#ff00cc80;--glass-shadow:0 0 15px #ff00cc4d;--accent-gradient:linear-gradient(90deg, #0ff, #f0c);background-color:#000;background-image:radial-gradient(circle,#1a0b2e 0%,#000 100%)}#mindmap-view.theme-cyber .canvas-wrapper{background-image:radial-gradient(#00ffff26 1px,#0000 1px)}#mindmap-view.theme-cyber .mindmap-node{border-width:2px;box-shadow:0 0 15px #f0c6}#mindmap-view.theme-cyber .connection-line{stroke:#f0c;filter:drop-shadow(0 0 4px #0ff);stroke-width:3px}#mindmap-view.theme-sketch{--node-bg:transparent;--node-border:transparent;--text-primary:#111;--text-secondary:#333;--border-color:#0000001a;--glass-shadow:none;background-color:#fdfdfd;background-image:radial-gradient(#eee 1px,#0000 1px);font-family:Nanum Pen Script,cursive}#mindmap-view.theme-sketch .canvas-wrapper{background-image:none;background-size:20px 20px}#mindmap-view.theme-sketch .mindmap-node{letter-spacing:1px;padding:0;font-family:Nanum Pen Script,cursive;font-size:1.8rem;box-shadow:none!important;background:0 0!important;border:none!important}#mindmap-view.theme-sketch .mindmap-node.is-root{font-size:2.2rem;font-weight:700;background:url("data:image/svg+xml;utf8,<svg preserveAspectRatio=\"none\" viewBox=\"-5 -5 110 110\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M50 0L56 12L70 3L68 18L88 15L80 29L100 35L87 45L100 60L83 65L88 82L70 75L70 95L55 82L50 100L45 82L30 95L30 75L12 82L17 65L0 60L13 45L0 35L20 29L12 15L32 18L30 3L44 12Z\" fill=\"white\" stroke=\"%23111\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>") 50%/100% 100% no-repeat!important;border:none!important;border-radius:0!important;padding:40px 60px!important}#mindmap-view.theme-sketch .mindmap-node.depth-1{font-size:1.8rem;font-weight:700}#mindmap-view.theme-sketch .mindmap-node.depth-2{font-size:1.5rem}#mindmap-view.theme-sketch .mindmap-node.depth-3,#mindmap-view.theme-sketch .mindmap-node.depth-4,#mindmap-view.theme-sketch .mindmap-node.depth-5{color:var(--text-secondary);font-size:1.2rem}#mindmap-view.theme-sketch .connection-line{stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}#mindmap-view.theme-sketch .connection-line.branch-0{stroke:#00bcd4}#mindmap-view.theme-sketch .connection-line.branch-1{stroke:#9c27b0}#mindmap-view.theme-sketch .connection-line.branch-2{stroke:#e91e63}#mindmap-view.theme-sketch .connection-line.branch-3{stroke:#4caf50}#mindmap-view.theme-sketch .connection-line.branch-4{stroke:#ff9800}#mindmap-view.theme-sketch .mindmap-node.branch-0 .node-title{color:#008ba3}#mindmap-view.theme-sketch .mindmap-node.branch-1 .node-title{color:#7b1fa2}#mindmap-view.theme-sketch .mindmap-node.branch-2 .node-title{color:#c2185b}#mindmap-view.theme-sketch .mindmap-node.branch-3 .node-title{color:#388e3c}#mindmap-view.theme-sketch .mindmap-node.branch-4 .node-title{color:#f57c00}.markdown-body{color:var(--text-primary);word-break:keep-all;font-family:Inter,sans-serif;font-size:1.05rem;line-height:1.8}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:#fff;letter-spacing:-.01em;margin-top:1.5em;margin-bottom:.5em;font-family:Outfit,sans-serif;font-weight:600}.markdown-body h1{border-bottom:2px solid var(--accent-light);padding-bottom:10px;font-size:1.8rem}.markdown-body h2{border-left:4px solid var(--accent-color);padding-left:10px;font-size:1.4rem}.markdown-body h3{font-size:1.2rem}.markdown-body p{color:var(--text-secondary);margin-bottom:1.2em}.markdown-body ul,.markdown-body ol{margin-bottom:1.8em;margin-left:1.5rem;padding-left:1rem;list-style-position:outside}.markdown-body li{margin-bottom:.8em;line-height:1.8}.markdown-body strong{color:var(--accent-light);font-weight:600}.markdown-body hr{background:var(--border-color);border:none;height:2px;margin:30px 0}.markdown-body blockquote{border-left:4px solid var(--accent-color);color:var(--text-muted);background:#ffffff08;margin:1.5em 0;padding:15px 20px;font-style:italic}.markdown-body code{background:#ffffff1a;border-radius:4px;padding:2px 6px;font-family:Monaco,monospace;font-size:.9em}.markdown-body .path-badge{background:var(--accent-gradient);color:#fff;border-radius:20px;margin-bottom:12px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.node-chat-popover{border-radius:var(--radius-lg);z-index:9999;color:#333;background:#fff;border:1px solid #0000001a;flex-direction:column;width:350px;height:500px;animation:.3s ease-out nodeEntrance;display:flex;position:fixed;overflow:hidden;box-shadow:0 20px 50px #0003}.dark-mode .node-chat-popover{color:#eee;background:#1e1e23;border-color:#ffffff1a}.chat-header{border-bottom:1px solid var(--border-color);background:#00000005;justify-content:space-between;align-items:center;padding:16px;display:flex}.chat-header h4{color:inherit;margin:0;font-size:.95rem}.btn-close-chat{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.5rem}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--text-muted);opacity:.6;margin-top:40px;font-size:.85rem}.chat-bubble{border-radius:18px;max-width:85%;padding:10px 14px;font-size:.9rem;line-height:1.5}.chat-bubble.user{background:var(--accent-gradient);border-bottom-right-radius:4px;align-self:flex-end;margin-left:20%;box-shadow:0 4px 15px #3b82f64d;color:#fff!important}.chat-bubble.assistant{color:#222;background:#f1f1f1;border-bottom-left-radius:4px;align-self:flex-start}.dark-mode .chat-bubble.assistant{color:#fff;background:#ffffff1a}.chat-bubble .bubble-content{white-space:pre-wrap;overflow-wrap:break-word;line-height:1.6}.chat-bubble .bubble-content p{margin-bottom:12px}.chat-bubble .bubble-content p:last-child{margin-bottom:0}.chat-bubble .bubble-content ul,.chat-bubble .bubble-content ol{margin:8px 0;padding-left:1.2rem}.chat-bubble .bubble-content li{margin-bottom:4px}.chat-input-area{border-top:1px solid var(--border-color);gap:8px;padding:16px;display:flex}.chat-input-area input{border-radius:var(--radius-full);background:#0000000d;border:1px solid #0000;outline:none;flex:1;padding:8px 14px;font-size:.9rem;transition:all .2s}.dark-mode .chat-input-area input{color:#fff;background:#ffffff0d}.chat-input-area input:focus{border-color:var(--accent-primary);background:#fff}.dark-mode .chat-input-area input:focus{background:#2a2a2a}.chat-input-area button{border-radius:var(--radius-full);cursor:pointer;border:none;padding:8px 16px;font-size:.85rem;font-weight:500;background:var(--accent-gradient)!important;color:#fff!important}.chat-bubble.thinking{opacity:.7}@media (width<=768px){.sidebar{z-index:1000;height:100vh;position:absolute;top:0;left:0;box-shadow:2px 0 20px #00000080}body.sidebar-collapsed .sidebar{opacity:0;pointer-events:none;transform:translate(-100%)}.main-content{width:100vw}.main-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.main-header h1{white-space:nowrap;text-overflow:ellipsis;max-width:80vw;font-size:1.1rem;overflow:hidden}.view-toggle{justify-content:space-between;width:100%;display:flex}.toggle-btn{text-align:center;flex:1;padding:8px 0;font-size:.8rem}.canvas-controls{bottom:max(80px, env(safe-area-inset-bottom) + 80px);z-index:1000;flex-flow:column;align-items:flex-end;gap:12px;width:auto;left:auto;right:16px;transform:none}#skin-selector{max-width:160px;padding:8px 12px;font-size:.8rem}.floating-action-btn{width:50px;height:50px;font-size:1.3rem}#btn-auto-align{width:auto;height:40px;padding:0 16px!important;font-size:.8rem!important}.modal-content{width:90%;margin:20px;padding:24px}}
