@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Fira+Code:wght@400;500&family=Coming+Soon&family=Indie+Flower&family=Architects+Daughter&family=Gochi+Hand&family=Patrick+Hand&family=Caveat&family=Kalam&display=swap";:root{--bg-primary:#0a0a0c;--bg-secondary:#141417;--bg-tertiary:#1c1c21;--text-primary:#f0f0f0;--text-secondary:#a0a0a5;--accent-primary:#6366f1;--accent-secondary:#818cf8;--error-color:#ef4444;--success-color:#10b981;--border-color:#ffffff1a;--glass-bg:#141417cc;--glass-border:#ffffff0d;--sidebar-width:400px;--sidebar-collapsed-width:0px;--transition-speed:.3s;--handwriting-font:"Indie Flower", cursive}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;overflow:hidden}#root{flex-direction:column;width:100vw;height:100vh;display:flex}.app-container{flex:1;display:flex;position:relative;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--bg-secondary);border-right:1px solid var(--border-color);height:100vh;transition:transform var(--transition-speed) cubic-bezier(.4, 0, .2, 1), margin-left var(--transition-speed) cubic-bezier(.4, 0, .2, 1);z-index:10;flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{margin-left:calc(-1 * var(--sidebar-width))}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.sidebar-title{background:linear-gradient(135deg,#fff 0%,#a0a0a5 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.editor-container{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow:hidden auto}.ai-section{background:#6366f10d;border:1px solid #6366f11a;border-radius:12px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.settings-panel{border:1px solid var(--border-color);background:#ffffff05;border-radius:12px;flex-direction:column;gap:.75rem;margin-bottom:.5rem;padding:1rem;animation:.3s cubic-bezier(.4,0,.2,1) slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.api-key-wrapper{gap:.5rem;display:flex}.api-key-input{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;outline:none;flex:1;padding:.75rem;font-size:.85rem;transition:border-color .2s}.api-key-input:focus{border-color:var(--accent-primary)}.key-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0 1rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.key-btn.save{background:var(--accent-primary);color:#fff}.key-btn.save:hover:not(:disabled){background:var(--accent-secondary)}.key-btn.clear{color:var(--error-color);background:#ef44441a;width:40px;padding:0}.key-btn.clear:hover{background:#ef444433}.key-btn:disabled{opacity:.5;cursor:not-allowed}.settings-hint{color:var(--text-secondary);font-size:.7rem;line-height:1.4}.template-selector{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.5rem 0;display:grid}.template-selector button{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:.5rem;font-size:.75rem;font-weight:500;transition:all .2s}.template-selector button:hover{border-color:var(--accent-primary);color:var(--text-primary)}.template-selector button.active{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f11a}.ai-prompt-input{background-color:var(--bg-tertiary);border:1px solid var(--border-color);width:100%;height:80px;color:var(--text-primary);resize:none;border-radius:8px;outline:none;padding:.75rem;font-family:inherit;font-size:.9rem;transition:all .2s}.ai-prompt-input:focus{border-color:var(--accent-primary);background:var(--bg-secondary)}.generate-btn{background:linear-gradient(135deg, var(--accent-primary) 0%, var(--accent-secondary) 100%);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.75rem;font-size:.9rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.generate-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 12px #6366f166}.generate-btn:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.5)}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.editor-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:700}.code-editor{background-color:var(--bg-tertiary);border:1px solid var(--border-color);width:100%;min-height:300px;color:var(--text-primary);resize:none;border-radius:8px;outline:none;flex:1;padding:1rem;font-family:Fira Code,monospace;font-size:.85rem;transition:border-color .2s}.code-editor:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #6366f133}.canvas-container{background-color:var(--bg-primary);flex-direction:column;flex:1;height:100%;display:flex;position:relative;overflow:auto}.canvas-header{background-color:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);z-index:5;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.hamburger-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.5rem;transition:background-color .2s;display:flex}.hamburger-btn:hover{background-color:#ffffff0d}.diagram-viewer{background-color:var(--bg-primary);-webkit-user-select:none;user-select:none;flex:1;display:block;position:relative;overflow:hidden}.diagram-viewer.dragging{cursor:grabbing}#mermaid-diagram{transform-origin:0 0;border-radius:12px;transition:transform 10ms linear;position:absolute;top:0;left:0}.canvas-actions{gap:.5rem;margin-left:auto;display:flex}.action-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:flex}.action-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--accent-primary)}#mermaid-diagram svg{max-width:100%;height:auto}.error-popup{background-color:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--error-color);z-index:1000;border-radius:12px;align-items:flex-start;gap:1rem;max-width:400px;padding:1.5rem;transition:border-color .3s;animation:.3s cubic-bezier(.4,0,.2,1) slideIn;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 20px 40px #00000080}.error-popup.success{border-color:var(--success-color)}.error-popup.info{border-color:var(--accent-primary)}.error-icon{color:var(--error-color);flex-shrink:0;font-size:24px}.error-popup.success .error-icon{color:var(--success-color)}.error-popup.info .error-icon{color:var(--accent-primary)}.error-content{flex-direction:column;gap:.5rem;display:flex}.error-title{color:var(--error-color);font-size:1rem;font-weight:600}.error-popup.success .error-title{color:var(--success-color)}.error-popup.info .error-title{color:var(--accent-primary)}.error-message{color:var(--text-secondary);word-break:break-all;font-family:Fira Code,monospace;font-size:.875rem}@keyframes slideIn{0%{opacity:0;transform:translateY(100%)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--accent-primary);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:9999;border-radius:6px;padding:6px 12px;font-size:11px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:125%;left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 4px 12px #6366f14d}[data-tooltip]:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.sidebar-footer{color:var(--text-secondary);border-top:1px solid var(--border-color);text-align:center;opacity:.5;letter-spacing:.05em;background-color:var(--bg-secondary);z-index:5;flex-shrink:0;margin-top:auto;padding:1rem;font-family:Inter,sans-serif;font-size:.7rem}[data-tooltip]:before{content:"";border:6px solid #0000;border-top-color:var(--accent-primary);opacity:0;pointer-events:none;z-index:9999;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:110%;left:50%;transform:translate(-50%)translateY(10px)}[data-tooltip]:hover:before{opacity:1;transform:translate(-50%)translateY(0)}.sidebar-header [data-tooltip]:after,.canvas-header [data-tooltip]:after{top:135%;bottom:auto}.sidebar-header [data-tooltip]:before,.canvas-header [data-tooltip]:before{border-top-color:#0000;border-bottom-color:var(--accent-primary);top:115%;bottom:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.legend-toggle-btn{background:var(--bg-secondary);border:1px solid var(--border-color);width:32px;height:64px;color:var(--text-secondary);cursor:pointer;z-index:2000;border-right:none;border-radius:12px 0 0 12px;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%);box-shadow:-4px 0 20px #0006}.legend-toggle-btn:hover{width:40px;color:var(--accent-primary);background:var(--bg-tertiary)}.legend-toggle-btn.active{right:340px}.legend-sidebar{border-left:1px solid var(--border-color);z-index:1999;background:#000;flex-direction:column;width:340px;height:100vh;transition:all .4s cubic-bezier(.19,1,.22,1);display:flex;position:fixed;top:0;right:-340px;box-shadow:-25px 0 60px #000}.legend-sidebar.open{right:0}.legend-header{border-bottom:1px solid var(--border-color);background:#000;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.legend-header span{color:#fff;letter-spacing:.15em;text-transform:uppercase;font-size:.8rem;font-weight:800}.close-legend-btn{color:#94a3b8;cursor:pointer;background:#ffffff08;border:none;border-radius:6px;justify-content:center;align-items:center;margin-left:auto;padding:.5rem;transition:all .2s;display:flex}.close-legend-btn:hover{color:#f43f5e;background:#f43f5e1a}.legend-content{background:#000;flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.legend-item.clickable{cursor:pointer;background:#0a0f1d;border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;gap:.75rem;padding:1.25rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.legend-item.clickable:hover{background:#111827;border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 10px 40px #000}.legend-item-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.legend-symbol{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;max-width:140px;padding:.35rem .75rem;font-family:Fira Code,monospace;font-size:.85rem;font-weight:700;overflow:hidden}.legend-name{color:#f8fafc;text-align:right;flex:1;font-size:.9rem;font-weight:700}.legend-code{background:#000;border:1px solid #ffffff0d;border-radius:8px;padding:.85rem;position:relative}.legend-code:before{content:"CLICK TO INSERT";background:var(--accent-primary);color:#fff;opacity:0;border-radius:4px;padding:1px 6px;font-size:.6rem;font-weight:800;transition:opacity .2s;position:absolute;top:-8px;right:8px}.legend-item.clickable:hover .legend-code:before{opacity:1}.legend-code code{color:var(--accent-secondary);word-break:break-all;font-family:Fira Code,monospace;font-size:.8rem;line-height:1.4;display:block}.paper-view-canvas{position:relative;background-color:#fcfcfc!important;background-image:radial-gradient(#e5e7eb 1px,#0000 1px),linear-gradient(#00000005 1px,#0000 1px),linear-gradient(90deg,#00000005 1px,#0000 1px)!important;background-size:20px 20px,40px 40px,40px 40px!important}.paper-view-canvas:after{content:"";pointer-events:none;opacity:.15;background:url(https://www.transparenttextures.com/patterns/felt.png);position:absolute;inset:0}.paper-view-canvas svg{filter:url(#rough-filter)!important}.paper-view-canvas .mermaid *{font-family:Indie Flower,cursive!important}.paper-view-canvas .mermaid rect,.paper-view-canvas .mermaid polygon,.paper-view-canvas .mermaid circle,.paper-view-canvas .mermaid ellipse,.paper-view-canvas .mermaid path:not(.edgePath){fill:none!important;stroke:#000!important;stroke-width:1.8px!important}.paper-view-canvas .mermaid text,.paper-view-canvas .mermaid text *,.paper-view-canvas .mermaid .edgeLabel,.paper-view-canvas .mermaid .nodeText{fill:#000!important;color:#000!important;font-family:var(--handwriting-font)!important;filter:url(#text-variation-filter)!important;letter-spacing:.05em!important;font-weight:400!important}.paper-view-canvas .mermaid .edgePath path{stroke:#000!important;stroke-width:1.5px!important;fill:none!important}.paper-view-canvas .mermaid .marker{fill:#000!important;stroke:#000!important}.paper-view-canvas .mermaid .cluster rect{fill:#00000005!important;stroke:#000!important;stroke-dasharray:5 5!important}.toggle-paper{background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .75rem;transition:all .2s;display:flex}.toggle-paper:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.toggle-paper span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.toggle-paper input{cursor:pointer;accent-color:var(--accent-primary)}.paper-controls{border:1px solid var(--border-color);background:#ffffff05;border-radius:12px;flex-direction:column;gap:1rem;padding:1.25rem;animation:.3s cubic-bezier(.4,0,.2,1) slideDown;display:flex}.control-group{flex-direction:column;gap:.5rem;display:flex}.control-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;font-size:.7rem;font-weight:700;display:flex}.control-label span{color:var(--accent-primary);font-family:Fira Code,monospace}.blur-slider{-webkit-appearance:none;background:var(--bg-tertiary);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}.blur-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-primary);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .2s}.blur-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.font-select{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:.6rem;font-family:inherit;font-size:.85rem;transition:border-color .2s}.font-select:focus{border-color:var(--accent-primary)}.font-select option{background:var(--bg-secondary);color:var(--text-primary);padding:10px}@media (width<=768px){:root{--sidebar-width:100%}.sidebar{z-index:1000;height:100%;position:absolute;top:0;left:0;box-shadow:20px 0 50px #00000080}.sidebar.collapsed{margin-left:0;transform:translate(-100%)}.main-content{width:100vw}.header{gap:.5rem;padding:.75rem 1rem}.header-actions{gap:.25rem}.action-btn span{display:none}.action-btn{padding:.5rem}.canvas-controls{gap:.4rem;padding:.4rem;bottom:1.5rem;right:1.5rem}.zoom-btn{width:32px;height:32px}.editor-container{gap:1rem;padding:1rem}.scenario-card{padding:.75rem}.scenario-info h4{font-size:.85rem}.canvas-header{flex-wrap:wrap;height:auto;min-height:50px;padding:.5rem}.canvas-header>div{flex-wrap:wrap;justify-content:flex-end;width:100%;margin-top:.5rem}.hamburger-btn{width:40px;height:40px}}@media (pointer:coarse){button,.action-btn,.tab-btn,.template-btn{min-height:44px}.zoom-btn{width:44px;height:44px}}
