/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--color-bg: #f2f0e5;--color-bg-warm: #f2f0e5;--panel: #fffcf0;--line: #e6e4d9;--line-hover: #dad8ce;--line-active: #cecdc3;--color-text: #100f0f;--color-text-secondary: #6f6e69;--color-text-muted: #878580;--color-accent: #205ea6;--color-accent-dark: #1a4f8c;--color-warning: #bc5215;--color-warning-soft: #fbeadf;--color-error: #af3029;--color-error-soft: #f9e1dd;--color-collab: #5e409d;--color-collab-dark: #4a3280;--color-collab-soft: #e8e2f4;--shadow-soft: 0 1px 2px rgba(16, 15, 15, .06);--shadow-medium: 0 4px 16px rgba(16, 15, 15, .1);--font-body: -apple-system, BlinkMacSystemFont, "Inter Variable", Inter, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "Cascadia Code", Menlo, Monaco, Consolas, monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--control-height: 32px;--panel-gap: 8px;--panel-header-height: 54px;--transition-fast: .15s ease-out;--transition-normal: .3s ease-out;--pele-bg: var(--panel);--pele-fg: var(--color-text);--pele-muted: var(--color-text-secondary);--pele-line: var(--color-text);--pele-surface: #f2f0e5;--pele-surface-alt: #e6e4d9;--pele-border: #cecdc3;--pele-accent: var(--color-accent);--pele-critical: var(--color-error);--pele-error: var(--color-error);--pele-font: var(--font-body);--pele-font-mono: var(--font-mono);--pele-radius: var(--radius-sm);--pele-series-1: #af3029;--pele-series-2: #bc5215;--pele-series-3: #ad8301;--pele-series-4: #66800b;--pele-series-5: #24837b;--pele-series-6: #205ea6;--pele-series-7: #5e409d;--pele-series-8: #a02f6f;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--color-bg: #100f0f;--color-bg-warm: #1c1b1a;--panel: #1c1b1a;--line: #282726;--line-hover: #343331;--line-active: #403e3c;--color-text: #cecdc3;--color-text-secondary: #878580;--color-text-muted: #6f6e69;--color-accent: #3171b2;--color-accent-dark: #205ea6;--color-warning: #da702c;--color-warning-soft: #3a2214;--color-error: #d14d41;--color-error-soft: #3a1c1a;--color-collab: #8b7ec8;--color-collab-dark: #735eb5;--color-collab-soft: #2a2440;--shadow-soft: 0 1px 2px rgba(0, 0, 0, .4);--shadow-medium: 0 4px 16px rgba(0, 0, 0, .5);--pele-surface: #282726;--pele-surface-alt: #343331;--pele-border: #403e3c;--pele-series-1: #d14d41;--pele-series-2: #da702c;--pele-series-3: #d0a215;--pele-series-4: #879a39;--pele-series-5: #3aa99f;--pele-series-6: #4385be;--pele-series-7: #8b7ec8;--pele-series-8: #ce5d97}}body{overflow:hidden;overscroll-behavior:none;background:var(--color-bg);font-family:var(--font-body);color:var(--color-text);line-height:1.6}#app{position:relative;z-index:1}.container{display:flex;height:100vh;width:100vw;overflow:hidden;contain:layout size}.editor-pane{flex:0 0 30%;min-width:0;display:none;flex-direction:column;contain:layout style;will-change:flex-basis;margin:var(--panel-gap) 0 var(--panel-gap) var(--panel-gap);background:var(--panel);border-radius:var(--radius-lg);overflow:hidden}.editor-pane.visible{display:flex}.preview-pane{flex:1;min-width:0;overflow:hidden;position:relative;contain:layout style;content-visibility:auto;margin:var(--panel-gap) var(--panel-gap) var(--panel-gap) 0;background:var(--panel);border-radius:var(--radius-lg)}#mermaid-preview{display:inline-block;width:100%;height:100%}#mermaid-preview svg{width:100%;height:100%;max-width:100%!important}.editor{width:100%;flex:1;resize:none;border:none;font-family:var(--font-mono)}.resize-handle{flex:0 0 var(--panel-gap);cursor:col-resize;position:relative;overflow:visible;z-index:10}.resize-handle:before{content:"";position:absolute;top:var(--panel-gap);bottom:var(--panel-gap);left:50%;width:2px;transform:translate(-50%);border-radius:1px;background:transparent;transition:background var(--transition-fast)}.resize-handle:hover:before{background:var(--line-active)}.collapse-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:40px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast);box-shadow:var(--shadow-soft)}.resize-handle:hover .collapse-btn,.collapse-btn:focus{opacity:1}.collapse-btn:hover{background:var(--line);color:var(--color-text)}.collapse-btn svg{transition:transform var(--transition-fast)}.resize-handle.collapsed{cursor:default}.resize-handle.collapsed .collapse-btn{opacity:1}.resize-handle.collapsed .collapse-btn svg{transform:rotate(180deg)}.status-bar{position:relative;display:flex;align-items:center;flex-shrink:0;height:var(--panel-header-height);padding:0 12px;border-bottom:1px solid var(--line);color:var(--color-text);font-size:13px;gap:8px}.status-text{color:var(--color-text-secondary);font-size:13px;flex-grow:1}.icon{width:16px;height:16px;flex-shrink:0}.button{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--control-height);height:var(--control-height);padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.button:hover,.button[aria-expanded=true]{background:var(--line);color:var(--color-text)}.floating-controls{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;gap:2px;padding:3px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);z-index:100}.floating-controls .button{width:30px;height:30px}.toolbar-divider{width:1px;height:16px;margin:0 3px;background:var(--line-hover)}.input-area{flex-grow:1;position:relative;display:flex;align-items:center;gap:8px}.input-area input{flex:1;min-width:0;height:var(--control-height);padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-body);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast)}.input-area input::placeholder{color:var(--color-text-muted)}.input-area input:hover{border-color:var(--line-hover)}.input-area input:focus{border-color:var(--color-accent)}.preset-button{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--control-height);height:var(--control-height);padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.preset-button:hover{background:var(--line);color:var(--color-text)}.preset-card{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);z-index:1000;max-height:400px;overflow-y:auto;animation:popIn .12s ease-out}.preset-card.hidden{display:none}.preset-header{padding:12px 16px 4px}.preset-header h3{margin:0;font-size:13px;font-weight:600;color:var(--color-text-secondary)}.preset-grid{padding:6px;display:grid;gap:2px}.preset-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);text-align:left;width:100%;box-sizing:border-box;font-family:var(--font-body)}.preset-item:hover{background:var(--line)}.preset-item-title{font-weight:600;font-size:13px;color:var(--color-text)}.preset-item-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;color:var(--color-text-secondary);line-height:1.5}@keyframes popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.popover-header{display:flex;justify-content:space-between;align-items:center}.popover-header h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text)}.popover-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;margin-right:-6px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.popover-close:hover{background:var(--line);color:var(--color-text)}.settings-dialog{position:absolute;top:calc(100% + 8px);left:12px;right:12px;max-width:400px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);z-index:1000;animation:popIn .12s ease-out}.settings-dialog.hidden{display:none}.settings-content{display:flex;flex-direction:column;gap:16px}.provider-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.provider-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.provider-card:hover{background:var(--line)}.provider-card.selected{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);background:transparent}.provider-icon{flex-shrink:0}.provider-name{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--color-text);text-align:center;line-height:1.3}.form-group{display:flex;flex-direction:column;gap:6px}.form-hint{color:var(--color-text-muted);font-size:12px;line-height:1.5}.settings-content label{font-weight:500;color:var(--color-text);font-size:13px}.settings-content input,.settings-content select{height:36px;padding:0 12px;border:1px solid var(--line-hover);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-body);transition:border-color var(--transition-fast)}.settings-content select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23878580' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 10px center;padding-right:34px;cursor:pointer}.settings-content input:hover,.settings-content select:hover{border-color:var(--line-active)}.settings-content input:focus,.settings-content select:focus{border-color:var(--color-accent);outline:none}.save-button{width:100%;height:36px;padding:0 16px;background:var(--color-accent);color:#fffcf0;border:none;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.save-button:hover{background:var(--color-accent-dark)}.toast-message{position:fixed;bottom:16px;right:16px;max-width:360px;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-text);color:var(--panel);font-size:13px;font-weight:500;line-height:1.5;box-shadow:var(--shadow-medium);word-break:break-word;z-index:10000;animation:slideIn .2s ease-out forwards}.toast-message.toast-error{box-shadow:inset 3px 0 0 var(--color-error),var(--shadow-medium);padding-left:17px}.toast-message.fade-out{animation:fadeOut .5s ease-out forwards}@keyframes slideIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}#mermaid-preview:empty{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13px}#mermaid-preview:empty:before{content:"Your diagram appears here"}.error-overlay{display:none;position:absolute;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;margin:0;padding:32px max(32px,12%);background:var(--color-error-soft);color:var(--color-error);font-family:var(--font-mono);font-size:13px;line-height:1.6;text-align:left;white-space:pre-wrap;overflow:auto;z-index:10}.api-key-warning{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:var(--control-height);padding:4px 10px;box-sizing:border-box;border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-text-secondary);font-size:12px;line-height:1.35}.api-key-warning svg{flex-shrink:0;color:var(--color-warning)}.api-key-warning.error-state{background:var(--color-error-soft)}.api-key-warning.error-state svg{color:var(--color-error)}.fix-with-ai-button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;height:var(--control-height);padding:0 16px;box-sizing:border-box;background:var(--color-accent);color:#fffcf0;border:none;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.fix-with-ai-button:hover{background:var(--color-accent-dark)}.fix-with-ai-button svg{flex-shrink:0;width:16px;height:16px}.yRemoteSelection{background-color:#5e409d33}.yRemoteSelectionHead{position:absolute;border-left:var(--color-collab) solid 2px;border-top:var(--color-collab) solid 2px;border-bottom:var(--color-collab) solid 2px;height:100%;box-sizing:border-box}.yRemoteSelectionHead:after{position:absolute;content:" ";border:3px solid var(--color-collab);border-radius:50%;left:-4px;top:-5px}.mermaid-error-line{background-color:#bc52151f!important;border-left:3px solid var(--color-warning)!important}.mermaid-error-glyph{background-color:var(--color-warning)!important;width:3px!important;border-radius:2px}.monaco-editor .hover-row .mermaid-error-line{background-color:#bc521529!important}.monaco-editor .lines-content .view-lines .view-line .mermaid-error-line{position:relative}.monaco-editor .squiggly-error-mermaid{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'%3E%3Cg fill='%23f4a261'%3E%3Cpolygon points='5.5,0 2.5,3 1.1,3 4.1,0'/%3E%3Cpolygon points='4,0 6,2 6,0.6 5.4,0'/%3E%3Cpolygon points='0,2 1,3 2.4,3 0,0.6'/%3E%3C/g%3E%3C/svg%3E") repeat-x bottom left}.monaco-editor .monaco-hover .mermaid-error-hover{border-left:3px solid var(--color-warning);padding-left:8px;background-color:var(--color-warning-soft);color:var(--color-text);font-weight:500}.monaco-editor .lightbulb-glyph{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuNSAyLjVDOS41IDEuOTQ3NzIgOS4wNTIyOCAxLjUgOC41IDEuNUM3Ljk0NzcyIDEuNSA3LjUgMS45NDc3MiA3LjUgMi41VjNDNy41IDMuNTUyMjggNy45NDc3MiA0IDguNSA0QzkuMDUyMjggNCA5LjUgMy41NTIyOCA5LjUgM1YyLjVaIiBmaWxsPSIjOGZiMzhmIi8+CjxwYXRoIGQ9Ik0xMy41IDcuNUMxNC4wNTIzIDcuNSAxNC41IDcuMDUyMjggMTQuNSA2LjVDMTQuNSA1Ljk0NzcyIDE0LjA1MjMgNS41IDEzLjUgNS41SDEzQzEyLjQ0NzcgNS41IDEyIDUuOTQ3NzIgMTIgNi41QzEyIDcuMDUyMjggMTIuNDQ3NyA3LjUgMTMgNy41SDEzLjVaIiBmaWxsPSIjOGZiMzhmIi8+CjxwYXRoIGQ9Ik0zLjUgNi41QzMuNSA3LjA1MjI4IDMuOTQ3NzIgNy41IDQuNSA3LjVINUM1LjU1MjI4IDcuNSA2IDcuMDUyMjggNiA2LjVDNiA1Ljk0NzcyIDUuNTUyMjggNS41IDUgNS41SDQuNUMzLjk0NzcyIDUuNSAzLjUgNS45NDc3MiAzLjUgNi41WiIgZmlsbD0iIzhmYjM4ZiIvPgo8cGF0aCBkPSJNNS41IDEwLjVDNS41IDkuMzk1NDMgNi4zOTU0MyA4LjUgNy41IDguNUg5LjVDMTAuNjA0NiA4LjUgMTEuNSA5LjM5NTQzIDExLjUgMTAuNVYxMi41QzExLjUgMTMuMDUyMyAxMS4wNTIzIDEzLjUgMTAuNSAxMy41SDYuNUM1Ljk0NzcyIDEzLjUgNS41IDEzLjA1MjMgNS41IDEyLjVWMTAuNVoiIGZpbGw9IiM4ZmIzOGYiLz4KPHBhdGggZD0iTTcuNSAxM0g5LjVWMTRDOS41IDE0LjU1MjMgOS4wNTIyOCAxNSA4LjUgMTVDNy45NDc3MiAxNSA3LjUgMTQuNTUyMyA3LjUgMTRWMTNaIiBmaWxsPSIjOGZiMzhmIi8+Cjwvc3ZnPg==) no-repeat}.monaco-editor .monaco-action-bar .action-item .action-label.codicon-lightbulb{color:var(--color-accent)!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{background-color:var(--line-hover)!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon.codicon-lightbulb{color:var(--color-accent)!important}.popover{position:absolute;bottom:60px;right:12px;width:260px;display:flex;flex-direction:column;gap:12px;padding:12px 16px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-medium);z-index:1000;animation:popIn .12s ease-out}.popover.hidden{display:none}.popover-description,.popover-note{margin:0;font-size:12px;line-height:1.5;color:var(--color-text-secondary)}.popover-note code{padding:1px 5px;border-radius:4px;background:var(--line);font-family:var(--font-mono);font-size:11px;color:var(--color-text);word-break:break-all}.popover-list{display:flex;flex-direction:column;gap:2px;margin:0 -8px}.popover-item{display:flex;align-items:center;gap:10px;height:34px;padding:0 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-body);font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.popover-item .icon{color:var(--color-text-secondary)}.popover-item:hover{background:var(--line)}.popover-item.success,.popover-item.success .icon{color:var(--color-accent)}.share-url-preview.hidden{display:none}.share-url-preview input{width:100%;height:32px;padding:0 10px;border:1px solid var(--line-hover);border-radius:var(--radius-sm);background:transparent;font-size:12px;font-family:var(--font-mono);color:var(--color-text-secondary);box-sizing:border-box}.share-url-preview input:focus{outline:none;border-color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.input-area input:focus-visible,.settings-content input:focus-visible,.settings-content select:focus-visible,.share-url-preview input:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media screen and (max-width: 768px){.editor-pane,.editor-pane.visible,.input-area{display:none}.resize-handle{display:none!important}.preview-pane{flex:1 1 100%;margin-left:var(--panel-gap)}.floating-controls .button{width:36px;height:36px}.popover{bottom:64px;left:12px;width:auto}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--line-active)}::selection{background:var(--line-hover);color:var(--color-text)}::-moz-selection{background:var(--line-hover);color:var(--color-text)}body.loading{cursor:wait}body.loading *{pointer-events:none}
