diff --git a/.obsidian/graph.json b/.obsidian/graph.json index bbd60fb..aee9b3d 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -39,6 +39,6 @@ "repelStrength": 6.34095634095634, "linkStrength": 0.504158004158004, "linkDistance": 250, - "scale": 0.21784264238625786, + "scale": 0.21784264238625775, "close": true } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index 597f42d..54ff7e3 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -33,6 +33,7 @@ "displaySVGInPreview": false, "previewImageType": "SVG", "renderingConcurrency": 3, + "imageCacheRetentionDays": 30, "allowImageCache": true, "allowImageCacheInScene": true, "displayExportedImageIfAvailable": false, @@ -109,13 +110,14 @@ "addDummyTextElement": false, "zoteroCompatibility": false, "fieldSuggester": true, + "enableOnloadScripts": false, "compatibilityMode": false, "drawingOpenCount": 0, "library": "deprecated", "library2": { "type": "excalidrawlib", "version": 2, - "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.22.3", + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.23.0", "libraryItems": [] }, "imageElementNotice": true, @@ -126,7 +128,7 @@ "mdBorderColor": "Black", "mdCSS": "", "scriptEngineSettings": {}, - "previousRelease": "2.22.3", + "previousRelease": "2.23.0", "showReleaseNotes": true, "excalidrawMasteryPromoCollapsed": false, "compareManifestToPluginVersion": false, @@ -489,15 +491,178 @@ "canvasImmersiveEmbed": true, "startupScriptPath": "", "aiEnabled": true, - "openAIAPIToken": "", - "openAIDefaultTextModel": "gpt-5-mini", - "openAIDefaultTextModelMaxTokens": 4096, - "openAIDefaultVisionModel": "gpt-5-mini", - "openAIDefaultImageGenerationModel": "gpt-image-1", - "openAIURL": "https://api.openai.com/v1/chat/completions", - "openAIImageGenerationURL": "https://api.openai.com/v1/images/generations", - "openAIImageEditsURL": "https://api.openai.com/v1/images/edits", - "openAIImageVariationURL": "https://api.openai.com/v1/images/variations", + "aiVerboseLogging": false, + "aiProviderProfiles": { + "OpenAI": { + "provider": "openai", + "apiKey": "", + "baseURL": "https://api.openai.com/v1" + }, + "Anthropic": { + "provider": "anthropic", + "apiKey": "", + "baseURL": "https://api.anthropic.com/v1" + }, + "Google Gemini": { + "provider": "google", + "apiKey": "", + "baseURL": "https://generativelanguage.googleapis.com/v1beta" + }, + "xAI": { + "provider": "xai", + "apiKey": "", + "baseURL": "https://api.x.ai/v1" + }, + "OpenAI-compatible": { + "provider": "openai-compatible", + "apiKey": "", + "baseURL": "https://api.openai.com/v1" + } + }, + "aiTextModelConfigs": { + "gpt-5-mini": { + "providerId": "OpenAI", + "model": "gpt-5-mini", + "endpoint": "", + "multimodalSupport": true + }, + "claude-sonnet-4-5": { + "providerId": "Anthropic", + "model": "claude-sonnet-4-5", + "endpoint": "", + "multimodalSupport": true + }, + "gemini-2.5-pro": { + "providerId": "Google Gemini", + "model": "gemini-2.5-pro", + "endpoint": "", + "multimodalSupport": true + }, + "grok-4-fast": { + "providerId": "xAI", + "model": "grok-4-fast", + "endpoint": "", + "multimodalSupport": true + } + }, + "aiImageModelConfigs": { + "dall-e-2": { + "providerId": "OpenAI", + "model": "dall-e-2", + "supportedSizes": [ + "256x256", + "512x512", + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": true + }, + "dall-e-3": { + "providerId": "OpenAI", + "model": "dall-e-3", + "supportedSizes": [ + "1024x1024", + "1792x1024", + "1024x1792" + ], + "supportsPromptImageTransforms": false, + "supportsMaskImageEdits": false + }, + "gpt-image-1": { + "providerId": "OpenAI", + "model": "gpt-image-1", + "supportedSizes": [ + "1024x1024", + "1536x1024", + "1024x1536" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": true + }, + "gpt-image-1-mini": { + "providerId": "OpenAI", + "model": "gpt-image-1-mini", + "supportedSizes": [ + "1024x1024", + "1536x1024", + "1024x1536" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": true + }, + "gpt-image-1.5": { + "providerId": "OpenAI", + "model": "gpt-image-1.5", + "supportedSizes": [ + "1024x1024", + "1536x1024", + "1024x1536" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": true + }, + "gpt-image-2": { + "providerId": "OpenAI", + "model": "gpt-image-2", + "supportedSizes": [ + "1024x1024", + "1536x1024", + "1024x1536", + "2048x2048" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": true + }, + "gemini-2.5-flash-image": { + "providerId": "Google Gemini", + "model": "gemini-2.5-flash-image", + "supportedSizes": [ + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": false + }, + "gemini-3.1-flash-image-preview": { + "providerId": "Google Gemini", + "model": "gemini-3.1-flash-image-preview", + "supportedSizes": [ + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": false + }, + "gemini-3-pro-image-preview": { + "providerId": "Google Gemini", + "model": "gemini-3-pro-image-preview", + "supportedSizes": [ + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": false + }, + "grok-imagine-image-quality": { + "providerId": "xAI", + "model": "grok-imagine-image-quality", + "supportedSizes": [ + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": false + }, + "grok-imagine-image-pro": { + "providerId": "xAI", + "model": "grok-imagine-image-pro", + "supportedSizes": [ + "1024x1024" + ], + "supportsPromptImageTransforms": true, + "supportsMaskImageEdits": false + } + }, + "aiDefaultTextModel": "gpt-5-mini", + "aiDefaultImageGenerationModel": "gpt-image-1", + "aiDefaultMaxOutgoingTokens": 0, + "aiDefaultMaxResponseTokens": 4096, "modifierKeyConfig": { "Mac": { "LocalFileDragAction": { @@ -787,7 +952,6 @@ "longPressDesktop": 500, "longPressMobile": 500, "doubleClickLinkOpenViewMode": true, - "isDebugMode": false, "rank": "Bronze", "modifierKeyOverrides": [ { @@ -819,5 +983,6 @@ "alignment": "center", "margin": "normal" }, - "disableContextMenu": false + "disableContextMenu": false, + "isDebugMode": false } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json index d678797..fd12a07 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -1,9 +1,9 @@ { "id": "obsidian-excalidraw-plugin", "name": "Excalidraw", - "version": "2.22.3", + "version": "2.23.0", "minAppVersion": "1.5.7", - "description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.", + "description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.", "author": "Zsolt Viczian", "authorUrl": "https://excalidraw-obsidian.online", "fundingUrl": "https://ko-fi.com/zsolt", diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css index d0f3b09..2c34976 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -1 +1 @@ -@font-face{font-family:Assistant;font-weight:400;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Regular.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:500;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Medium.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:600;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-SemiBold.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:700;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Bold.woff2) format("woff2");style:normal;display:swap}.excalidraw .ToolIcon{align-items:center;border-radius:var(--border-radius-lg);cursor:pointer;display:inline-flex;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none}.excalidraw .ToolIcon__hidden{display:none!important}.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon,.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon{--icon-fill-color:var(--color-on-primary-container)}.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon svg{fill:var(--icon-fill-color)}.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon,.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon{background:var(--color-surface-primary-container);--keybinding-color:var(--color-on-primary-container);--icon-fill-color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon__keybinding{bottom:4px;right:4px}.excalidraw .ToolIcon .ToolIcon__icon:hover{background:var(--button-hover-bg)}.excalidraw .ToolIcon .ToolIcon__icon:active{background:var(--button-hover-bg);border:1px solid var(--button-active-border)}.excalidraw .ToolIcon .ToolIcon__icon:active svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon__icon[aria-disabled=true]{background:initial;border:none}.excalidraw .ToolIcon .ToolIcon__icon[aria-disabled=true] svg{color:var(--color-disabled)}.excalidraw .ToolIcon--plain{background-color:transparent}.excalidraw .ToolIcon--plain .ToolIcon__icon{height:2rem;width:2rem}.excalidraw .ToolIcon_type_checkbox,.excalidraw .ToolIcon_type_radio{opacity:0;pointer-events:none;position:absolute}.excalidraw .ToolIcon__icon{align-items:center;border-radius:var(--border-radius-lg);box-sizing:border-box;color:var(--icon-fill-color);display:flex;height:var(--default-button-size);justify-content:center;width:var(--default-button-size)}.excalidraw .ToolIcon__icon+.ToolIcon__label{margin-inline-start:0}.excalidraw .ToolIcon__icon svg{color:var(--icon-fill-color);height:var(--default-icon-size);position:relative;width:var(--default-icon-size)}.excalidraw .ToolIcon__label{align-items:center;color:var(--icon-fill-color);display:flex;font-family:var(--ui-font);margin:0 .8em;text-overflow:ellipsis}.excalidraw .ToolIcon__label .Spinner{margin-left:.6em}.excalidraw .ToolIcon_size_small .ToolIcon__icon{font-size:.8em;height:2rem;width:2rem}.excalidraw .Modal .ToolIcon_type_button,.excalidraw .ToolIcon_type_button{background-color:initial;border:none;font-size:inherit;margin:0;padding:0}.excalidraw .Modal .ToolIcon_type_button:focus-visible,.excalidraw .ToolIcon_type_button:focus-visible{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,.excalidraw .ToolIcon_type_button.ToolIcon--selected{background-color:var(--button-gray-2)}.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .Modal .ToolIcon_type_button:active,.excalidraw .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .ToolIcon_type_button:active{background-color:var(--button-gray-3)}.excalidraw .Modal .ToolIcon_type_button:disabled,.excalidraw .ToolIcon_type_button:disabled{cursor:default}.excalidraw .Modal .ToolIcon_type_button:disabled:active,.excalidraw .Modal .ToolIcon_type_button:disabled:focus-visible,.excalidraw .Modal .ToolIcon_type_button:disabled:hover,.excalidraw .ToolIcon_type_button:disabled:active,.excalidraw .ToolIcon_type_button:disabled:focus-visible,.excalidraw .ToolIcon_type_button:disabled:hover{background-color:initial;border:none;box-shadow:none}.excalidraw .Modal .ToolIcon_type_button:disabled svg,.excalidraw .ToolIcon_type_button:disabled svg{color:var(--color-disabled)}.excalidraw .Modal .ToolIcon_type_button--show,.excalidraw .ToolIcon_type_button--show{visibility:visible}.excalidraw .Modal .ToolIcon_type_button--hide,.excalidraw .ToolIcon_type_button--hide{display:none!important}.excalidraw .ToolIcon_type_floating,.excalidraw .ToolIcon_type_floating:active,.excalidraw .ToolIcon_type_floating:hover{background-color:transparent}.excalidraw .ToolIcon_type_floating .ToolIcon__icon{background-color:var(--button-gray-1);height:2rem;width:2rem}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover{background-color:var(--button-gray-2)}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active{background-color:var(--button-gray-3)}.excalidraw .ToolIcon__keybinding{bottom:2px;color:var(--keybinding-color);font-family:var(--ui-font);font-size:.625rem;position:absolute;right:3px;-webkit-user-select:none;user-select:none}:root[dir=ltr] .excalidraw .unlocked-icon{left:2px}:root[dir=rtl] .excalidraw .unlocked-icon{right:2px}.excalidraw .App-toolbar-container .ToolIcon__icon{height:var(--lg-button-size);width:var(--lg-button-size)}@media screen and (max-width:450px){.excalidraw .App-toolbar-container .ToolIcon__icon{height:1.8rem;width:1.8rem}}@media screen and (max-width:379px){.excalidraw .App-toolbar-container .ToolIcon__icon{height:1.5rem;width:1.5rem}}.excalidraw .App-toolbar-container .ToolIcon__icon svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .App-toolbar-container .ToolIcon__LaserPointer .ToolIcon__icon,.excalidraw .App-toolbar-container .ToolIcon__MagicButton .ToolIcon__icon{height:var(--default-button-size);width:var(--default-button-size)}.excalidraw .Spinner{align-items:center;display:flex;height:100%;justify-content:center;margin-left:auto;margin-right:auto;--spinner-color:var(--icon-fill-color)}.excalidraw .Spinner svg{animation:rotate 1.6s linear infinite;animation-delay:var(--spinner-delay);transform-origin:center center}.excalidraw .Spinner circle{animation:dash 1.6s linear 0s infinite;stroke:var(--spinner-color);stroke-linecap:round}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,300;stroke-dashoffset:0}50%{stroke-dasharray:150,300;stroke-dashoffset:-200}to{stroke-dasharray:1,300;stroke-dashoffset:-280}}.excalidraw button.standalone{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw button.standalone svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw button.standalone:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw button.standalone:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw button.standalone.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw button.standalone.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw button.standalone.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw button.standalone{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw button.standalone{padding:0}.excalidraw button.standalone svg{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw button.standalone>*{pointer-events:none}.excalidraw .excalidraw-eye-dropper-backdrop,.excalidraw .excalidraw-eye-dropper-container{height:100%;position:absolute;touch-action:none;width:100%;z-index:var(--zIndex-eyeDropperBackdrop)}.excalidraw .excalidraw-eye-dropper-container{pointer-events:none}.excalidraw .excalidraw-eye-dropper-backdrop{pointer-events:all}.excalidraw .excalidraw-eye-dropper-preview{border:1px solid var(--default-border-color);border-radius:1rem;filter:var(--theme-filter);height:3rem;pointer-events:none;position:absolute;width:3rem;z-index:var(--zIndex-eyeDropperPreview)}.excalidraw .excalidraw-eye-dropper-trigger{border-radius:.5rem;color:var(--icon-fill-color);cursor:pointer;height:1.25rem;margin-left:-2px;margin-right:-4px;width:1.25rem}.excalidraw .excalidraw-eye-dropper-trigger:hover{background:var(--button-hover-bg)}.excalidraw .excalidraw-eye-dropper-trigger.selected{background:var(--color-primary-light);color:var(--color-primary)}.excalidraw .Island{--padding:0;background-color:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);box-sizing:border-box;padding:calc(var(--padding)*var(--space-factor));position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .Island.zen-mode{box-shadow:none}.excalidraw .focus-visible-none:focus-visible{outline:none!important}.excalidraw .color-picker__title{font-size:.875rem;padding:0 .5rem;text-align:left}.excalidraw .color-picker__heading{font-size:.75rem;padding:0 .5rem;text-align:left}.excalidraw .color-picker-container{align-items:center;display:grid;grid-template-columns:1fr 20px 1.625rem;padding:.25rem 0}.excalidraw--mobile.excalidraw .color-picker-container{max-width:11rem}.excalidraw .color-picker-container.color-picker-container--no-top-picks{display:flex;grid-template-columns:unset;justify-content:center}.excalidraw .color-picker__top-picks{align-items:center;display:flex;justify-content:space-between}.excalidraw .color-picker__button{--radius:4px;--size:1.375rem;background-color:var(--swatch-color);background-position:0;border:0;border-radius:var(--radius);box-sizing:border-box;filter:var(--theme-filter);font-family:inherit;height:var(--size);margin:0;padding:0;position:relative;width:var(--size)}.excalidraw .color-picker__button.has-outline{box-shadow:inset 0 0 0 1px #d9d9d9}.excalidraw .color-picker__button:hover:not(.active):not(.color-picker__button--large){transform:scale(1.075)}.excalidraw .color-picker__button:hover:not(.active).color-picker__button--large:after{border-radius:var(--radius);bottom:-1px;box-shadow:0 0 0 1px var(--color-gray-30);content:"";filter:var(--theme-filter);left:-1px;position:absolute;right:-1px;top:-1px}.excalidraw .color-picker__button .color-picker__button-outline{align-items:center;display:flex;justify-content:center}.excalidraw .color-picker__button .color-picker__button-outline svg{color:var(--color-gray-60);height:1.25rem;width:1.25rem}.excalidraw .color-picker__button .color-picker__button-background{align-items:center;display:flex;justify-content:center}.excalidraw .color-picker__button .color-picker__button-background svg{height:100%;width:100%}.excalidraw .color-picker__button.active .color-picker__button-outline{position:absolute;--offset:-1px;border-radius:var(--radius);bottom:var(--offset);box-shadow:0 0 0 1px var(--color-primary-darkest);filter:var(--theme-filter);left:var(--offset);right:var(--offset);top:var(--offset);z-index:1}.excalidraw .color-picker__button:focus-visible{outline:none}.excalidraw .color-picker__button:focus-visible:after{border:3px solid var(--focus-highlight-color);border-radius:calc(var(--radius) + 1px);bottom:-4px;content:"";left:-4px;position:absolute;right:-4px;top:-4px}.excalidraw .color-picker__button:focus-visible.active .color-picker__button-outline{display:none}.excalidraw .color-picker__button--large{--radius:0.5rem;height:1.875rem;width:1.875rem}.excalidraw .color-picker__button.is-transparent{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==)}.excalidraw .color-picker__button--no-focus-visible{border:0}.excalidraw .color-picker__button--no-focus-visible:after{display:none}.excalidraw .color-picker__button--no-focus-visible:focus-visible{outline:none!important}.excalidraw .color-picker__button.active-color{border-radius:calc(var(--radius) + 1px);height:1.625rem;width:1.625rem}.excalidraw .color-picker__button.compact-sizing{height:var(--mobile-action-button-size);width:var(--mobile-action-button-size)}.excalidraw .color-picker__button.mobile-border{border:1px solid var(--mobile-color-border)}.excalidraw .color-picker__button__hotkey-label{bottom:3px;filter:none;font-size:11px;font-weight:500;position:absolute;right:5px}.excalidraw .color-picker{background:var(--popup-bg-color);border:0 solid hsla(0,0%,100%,.25);border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.25);position:absolute}:root[dir=ltr] .excalidraw .color-picker{left:-5.5px}:root[dir=rtl] .excalidraw .color-picker{right:-5.5px}.excalidraw .color-picker-control-container{align-items:center;column-gap:.5rem;display:grid;grid-template-columns:auto 1fr}.excalidraw .color-picker-control-container+.popover{position:static}.excalidraw .color-picker-popover-container{margin-top:-.25rem}:root[dir=ltr] .excalidraw .color-picker-popover-container{margin-left:.5rem}:root[dir=rtl] .excalidraw .color-picker-popover-container{margin-left:-3rem}.excalidraw .color-picker-triangle{border-color:transparent transparent var(--popup-bg-color);border-style:solid;border-width:0 9px 10px;height:0;position:absolute;top:10px;width:0}:root[dir=ltr] .excalidraw .color-picker-triangle{left:-14px;transform:rotate(270deg)}:root[dir=rtl] .excalidraw .color-picker-triangle{right:-14px;transform:rotate(90deg)}.excalidraw .color-picker-triangle-shadow{border-color:transparent transparent rgba(0,0,0,.1)}:root[dir=ltr] .excalidraw .color-picker-triangle-shadow{left:-14px}:root[dir=rtl] .excalidraw .color-picker-triangle-shadow{right:-16px}.excalidraw .color-picker-content{display:flex;flex-direction:column;gap:.75rem;max-height:none;outline:none}.excalidraw .color-picker-content--default{display:grid;grid-template-columns:repeat(5,1.875rem);padding:.5rem;grid-gap:.25rem;border-radius:4px}.excalidraw .color-picker-content--default:focus{box-shadow:0 0 0 2px var(--focus-highlight-color);outline:none}.excalidraw .color-picker-content--canvas{display:flex;flex-direction:column;padding:.25rem}.excalidraw .color-picker-content--canvas-title{color:#868e96;font-size:12px;padding:0 .25rem}.excalidraw .color-picker-content--canvas-colors{padding:.5rem 0}.excalidraw .color-picker-content--canvas-colors .color-picker-swatch{margin:0 .25rem}.excalidraw .color-picker-content .color-input-container{grid-column:1/span 5}.excalidraw .color-picker-swatch{background-color:currentColor!important;border:1px solid #ddd;border-radius:4px;box-sizing:border-box;cursor:pointer;filter:var(--theme-filter);height:1.875rem;margin:0;position:relative;width:1.875rem}.excalidraw .color-picker-swatch:focus{border-color:var(--select-highlight-color);box-shadow:0 0 4px 1px currentColor}.excalidraw .color-picker-transparent{border-radius:4px;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);left:0;position:absolute;right:0;top:0}.excalidraw .color-picker-label-swatch,.excalidraw .color-picker-transparent{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0}.excalidraw .color-picker-hash{align-items:center;border:1px solid var(--default-border-color);border-right:0;box-sizing:border-box;color:var(--input-label-color);display:flex;flex-shrink:0;height:var(--default-button-size);justify-content:center;padding:.5rem .5rem .5rem .75rem;position:relative}:root[dir=ltr] .excalidraw .color-picker-hash{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}:root[dir=rtl] .excalidraw .color-picker-hash{border-left:0;border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;border-right:1px solid var(--default-border-color)}.excalidraw .color-input-container{display:flex}.excalidraw .color-input-container:focus-within{border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .color-picker__input-label{align-items:center;border:1px solid var(--default-border-color);border-radius:8px;box-sizing:border-box;display:grid;gap:8px;grid-template-columns:auto 1fr auto auto auto;margin:8px;padding:0 12px}.excalidraw .color-picker__input-label:focus-within{border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .color-picker__input-hash{padding:0 .25rem}.excalidraw .color-picker-input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0;border:1px solid var(--default-border-color);border-left:0;box-sizing:border-box;color:var(--text-primary-color);font-family:inherit;font-size:.875rem;height:var(--default-button-size);letter-spacing:.4px;margin:0;outline:none;padding:.5rem .5rem .5rem .25rem;width:100%}:root[dir=ltr] .excalidraw .color-picker-input{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}:root[dir=rtl] .excalidraw .color-picker-input{border-left:1px solid var(--default-border-color);border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg);border-right:0}.excalidraw .color-picker-input:focus-visible{box-shadow:none}.excalidraw .color-picker-label-swatch-container{border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;height:var(--default-button-size);overflow:hidden;width:var(--default-button-size)}.excalidraw .color-picker-label-swatch{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--swatch-color)!important;border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;border:0!important;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;filter:var(--theme-filter);font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;overflow:hidden;padding:.625rem;position:relative;width:var(--button-width,var(--default-button-size))}.excalidraw .color-picker-label-swatch svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .color-picker-label-swatch:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .color-picker-label-swatch:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .color-picker-label-swatch.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .color-picker-label-swatch{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .color-picker-label-swatch:after{background:var(--swatch-color);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.excalidraw .color-picker-keybinding{bottom:2px;font-size:.7em;position:absolute}:root[dir=ltr] .excalidraw .color-picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .color-picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .color-picker-keybinding{display:none}.excalidraw .color-picker-type-canvasBackground .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementBackground .color-picker-keybinding{color:#fff}.excalidraw .color-picker-swatch[aria-label=transparent] .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementStroke .color-picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .color-picker-swatch[aria-label=transparent] .color-picker-keybinding,.excalidraw.theme--dark .color-picker-type-elementBackground .color-picker-keybinding{color:#000}.excalidraw{--list-border-color:var(--color-gray-20)}.excalidraw .QuickSearch__wrapper{border-bottom:1px solid var(--list-border-color);height:2.6rem;position:relative}.excalidraw .QuickSearch__wrapper svg{color:var(--color-gray-40);height:1.25rem;left:.75rem;position:absolute;top:47.5%;transform:translateY(-50%);width:1.25rem;z-index:1}.excalidraw.theme--dark{--list-border-color:var(--color-gray-80)}.excalidraw.theme--dark .QuickSearch__wrapper{border-bottom:none}.excalidraw .QuickSearch__input{border:0!important;box-sizing:border-box;font-size:.875rem;left:0;padding-left:2.5rem!important;padding-right:.75rem!important;position:absolute;top:0;width:100%}.excalidraw .QuickSearch__input::placeholder{color:var(--color-gray-40)}.excalidraw .QuickSearch__input:focus{box-shadow:none!important}.excalidraw .ScrollableList__wrapper{border:none;font-size:.875rem;overflow-y:auto;position:static!important}.excalidraw .ScrollableList__wrapper>.empty,.excalidraw .ScrollableList__wrapper>.hint{align-items:center;color:var(--color-gray-60);display:flex;font-size:.75rem;justify-content:center;line-height:150%;overflow:hidden;padding:.5rem;text-align:center}.excalidraw .FontPicker__container{align-items:center;display:grid;grid-template-columns:calc(1rem + var(--default-button-size)*3) 1rem 1fr}.excalidraw--mobile.excalidraw .FontPicker__container{max-width:calc(2rem + var(--default-button-size)*4)}.excalidraw .FontPicker__container--compact{display:block;grid-template-columns:none}.excalidraw .picker{background:var(--popup-bg-color);border:0 solid hsla(0,0%,100%,.25);border-radius:4px;box-shadow:var(--shadow-island-stronger);padding:.5rem}:root[dir=rtl] .excalidraw .picker{padding:.4rem}.excalidraw .picker-section,.excalidraw .picker-sections{display:flex;flex-direction:column;gap:.5rem}.excalidraw .picker button,.excalidraw .picker-container button{align-items:center;display:flex;justify-content:center;position:relative}.excalidraw .picker button:focus-visible,.excalidraw .picker-container button:focus-visible{background-color:var(--button-gray-2);outline:transparent}.excalidraw .picker button:focus-visible svg,.excalidraw .picker-container button:focus-visible svg{opacity:1}.excalidraw .picker button:hover,.excalidraw .picker-container button:hover{background-color:var(--button-gray-2)}.excalidraw .picker button:active,.excalidraw .picker-container button:active{background-color:var(--button-gray-3)}.excalidraw .picker button:disabled,.excalidraw .picker-container button:disabled{cursor:not-allowed}.excalidraw .picker button svg,.excalidraw .picker-container button svg{height:18px;margin:0;pointer-events:none;width:36px}.excalidraw .picker button{padding:.25rem .28rem .35rem .25rem}.excalidraw .picker-content{display:grid;grid-template-columns:repeat(4,auto);grid-gap:.5rem;border-radius:4px}.excalidraw .picker-collapsible{padding:0}.excalidraw .picker-collapsible,.excalidraw .picker-section-label{color:var(--text-primary-color);font-size:.75rem}.excalidraw .picker-keybinding{bottom:2px;color:var(--keybinding-color);font-size:.7em;position:absolute}:root[dir=ltr] .excalidraw .picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .picker-keybinding{display:none}.excalidraw .picker-type-canvasBackground .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementBackground .picker-keybinding{color:#fff}.excalidraw .picker-swatch[aria-label=transparent] .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementStroke .picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .picker-swatch[aria-label=transparent] .picker-keybinding,.excalidraw.theme--dark .picker-type-elementBackground .picker-keybinding{color:#000}.excalidraw{--slider-thumb-size:16px}.excalidraw .range-wrapper{padding-bottom:25px;padding-top:10px;position:relative}.excalidraw .range-input{-webkit-appearance:none;background:var(--color-slider-track);border-radius:2px;height:4px;outline:none;width:100%}.excalidraw .range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-slider-thumb);border:none;border-radius:50%;cursor:pointer;height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.excalidraw .range-input::-moz-range-thumb{background:var(--color-slider-thumb);border:none;border-radius:50%;cursor:pointer;height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.excalidraw .value-bubble{transform:translateX(-50%)}.excalidraw .value-bubble,.excalidraw .zero-label{bottom:0;color:var(--text-primary-color);font-size:12px;position:absolute}.excalidraw .zero-label{left:4px}.excalidraw .Checkbox{align-items:center;cursor:pointer;display:flex;margin:4px .3em;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus){box-shadow:0 0 0 2px #4dabf7}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) svg{display:block;opacity:.3}.excalidraw .Checkbox:active .Checkbox-box{box-shadow:inset 0 0 2px 1px #1c7ed6!important}.excalidraw .Checkbox:hover .Checkbox-box{background-color:rgba(208,235,255,.2)}.excalidraw .Checkbox.is-checked .Checkbox-box{background-color:#d0ebff}.excalidraw .Checkbox.is-checked .Checkbox-box svg{display:block}.excalidraw .Checkbox.is-checked:hover .Checkbox-box{background-color:#a5d8ff}.excalidraw .Checkbox .Checkbox-box{align-items:center;background-color:transparent;border:0;border-radius:4px;box-shadow:0 0 0 2px #1c7ed6;color:#1c7ed6;display:flex;flex:0 0 auto;height:22px;justify-content:center;margin:0 1em;padding:0;width:22px}.excalidraw .Checkbox .Checkbox-box:focus{box-shadow:0 0 0 3px #1c7ed6}.excalidraw .Checkbox .Checkbox-box svg{display:none;height:16px;stroke-width:3px;width:16px}.excalidraw .Checkbox .Checkbox-label{align-items:center;display:flex}.excalidraw .Checkbox .excalidraw-tooltip-icon{height:1em;width:1em}.excalidraw .TextInput{display:inline-block}.ProjectName{align-items:center;display:flex;margin:auto}.ProjectName .TextInput{height:calc(1rem - 3px);margin-left:8px;overflow:hidden;text-align:center;text-overflow:ellipsis;width:200px}.ProjectName .TextInput--readonly{background:none;border:none;max-width:200px;padding-left:2px;width:auto}.ProjectName .TextInput--readonly:hover{background:none}.excalidraw .Toast{animation:Toast-fade-in .5s;background-color:var(--island-bg-color);border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--text-primary-color);cursor:default;max-width:min(360px,100vw - 32px);min-width:220px;padding:.5rem .75rem;pointer-events:none}.excalidraw .Toast .Toast__message{font-family:var(--ui-font);font-size:.75rem;line-height:1.25rem;padding:0 1.6rem;text-align:center;white-space:pre-wrap}.excalidraw .Toast .Toast__progress-bar{background-color:var(--button-gray-2);border-radius:999px;height:4px;margin-top:.35rem;overflow:hidden;width:100%}.excalidraw .Toast .Toast__progress-bar-fill{background-color:var(--color-primary);border-radius:inherit;height:100%}.excalidraw .Toast .close{padding:.4rem;pointer-events:auto;position:absolute;right:0;top:0}.excalidraw .Toast .close .ToolIcon__icon{height:1.2rem;width:1.2rem}@keyframes Toast-fade-in{0%{opacity:0}to{opacity:1}}.excalidraw-tooltip{--ui-font:Assistant,system-ui,BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;border-radius:6px;box-sizing:border-box;font-family:var(--ui-font);padding:8px;pointer-events:none;position:absolute;z-index:var(--zIndex-popup);word-wrap:break-word;background:#000;color:#fff;display:none;font-size:13px;font-weight:500;line-height:1.5;text-align:center}.excalidraw-tooltip.excalidraw-tooltip--visible{display:block}.excalidraw-tooltip-wrapper{display:flex}.excalidraw-tooltip-icon{display:flex;height:.9em;margin-left:5px;margin-top:1px;width:.9em}.excalidraw--mobile.excalidraw-tooltip-icon{display:none}.excalidraw .Avatar{align-items:center;border-radius:100%;color:var(--color-gray-90);cursor:pointer;display:flex;flex:0 0 auto;font-size:.75rem;font-weight:700;height:var(--avatar-size,1.5rem);justify-content:center;line-height:1;outline-offset:2px;position:relative;width:var(--avatar-size,1.5rem)}.excalidraw .Avatar:active{transform:scale(.94)}.excalidraw .Avatar-img{border-radius:100%;height:100%;width:100%}.excalidraw .Avatar:before{border-radius:100%;bottom:-3px;content:"";left:-3px;position:absolute;right:-3px;top:-3px}.excalidraw .Avatar.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .Avatar.is-current-user{cursor:auto}.excalidraw-hyperlinkContainer{align-items:center;background:var(--island-bg-color);border-radius:var(--border-radius-md);box-shadow:0 2px 4px 0 rgba(0,0,0,.3);box-sizing:border-box;display:flex;justify-content:space-between;min-height:42px;position:absolute;z-index:var(--zIndex-hyperlinkContainer)}.excalidraw-hyperlinkContainer button,.excalidraw-hyperlinkContainer-input{z-index:100}.excalidraw-hyperlinkContainer-input,.excalidraw-hyperlinkContainer-link{font-family:var(--ui-font);font-size:.9rem;font-weight:500;height:24px;line-height:24px;padding:0 8px}.excalidraw-hyperlinkContainer-input{background-color:transparent;border:none;box-shadow:none!important;color:var(--text-primary-color);outline:none;width:18rem}.excalidraw-hyperlinkContainer-link{max-width:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw-hyperlinkContainer button{background-color:transparent!important;color:#228be6;font-weight:500}.excalidraw-hyperlinkContainer button.excalidraw-hyperlinkContainer--remove{color:#c92a2a}.excalidraw-hyperlinkContainer--remove .ToolIcon__icon svg{color:#fa5252}.excalidraw-hyperlinkContainer .ToolIcon__icon{height:2rem;width:2rem}.excalidraw-hyperlinkContainer__buttons{flex:0 0 auto}.excalidraw .ConvertElementTypePopup{background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);display:flex;flex-wrap:wrap;gap:.2rem;justify-content:center;padding:.5rem}.excalidraw .ConvertElementTypePopup:focus{outline:none}.excalidraw .Dialog__action-button{align-items:center;background-color:transparent;border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);color:inherit;column-gap:.5rem;display:flex;font-family:inherit;font-size:.875rem;font-weight:600;height:3rem;letter-spacing:.4px;padding:.5rem 1.5rem;position:relative;-webkit-user-select:none;user-select:none}.excalidraw .Dialog__action-button svg{display:block;height:1rem;width:1rem}.excalidraw .Dialog__action-button--danger{background-color:var(--color-danger);border-color:var(--color-danger);color:#fff}.excalidraw .Dialog__action-button--primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.excalidraw.theme--dark .Dialog__action-button--danger,.excalidraw.theme--dark .Dialog__action-button--primary{color:var(--color-gray-100)}.excalidraw .confirm-dialog-buttons{column-gap:.5rem;display:flex;justify-content:flex-end}.excalidraw .publish-library__fields{display:flex;flex-direction:column}.excalidraw .publish-library__fields label{align-items:center;display:flex;justify-content:space-between;padding:1em 0}.excalidraw .publish-library__fields label span{color:#868e96;font-size:1rem;font-weight:500}.excalidraw .publish-library__fields label input,.excalidraw .publish-library__fields label textarea{font-family:var(--ui-font);padding:.6em;width:70%}.excalidraw .publish-library__fields label .required{color:#e03131;margin:.2rem}.excalidraw .publish-library__buttons{display:flex;gap:.5rem;justify-content:flex-end;padding:.2rem 0}.excalidraw .publish-library__buttons .ToolIcon__icon{font-size:1rem;min-width:2.5rem;width:auto}.excalidraw .publish-library__buttons .ToolIcon_type_button{margin-left:1rem;padding:0 .5rem}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button{background-color:#228be6}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button{background-color:#adb5bd}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button:hover{background-color:#868e96}.excalidraw .publish-library__buttons .ToolIcon__icon{color:#fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner{--spinner-color:#fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner svg{padding:.5rem}.excalidraw .publish-library .selected-library-items{display:flex;flex-wrap:wrap}.excalidraw .publish-library .selected-library-items .single-library-item-wrapper{width:9rem}.excalidraw .publish-library-warning{color:#fa5252}.excalidraw .publish-library-note{display:block;font-size:14px;font-style:italic;padding:1em 0}.excalidraw .single-library-item{position:relative}.excalidraw .single-library-item-status{background:hsla(0,0%,100%,.9);border-radius:.2rem;color:#f03e3e;font-size:.7rem;left:.3rem;padding:.1rem .2rem;position:absolute;top:.3rem}.excalidraw .single-library-item__svg{background-color:#fff;border:1px solid var(--button-gray-2);height:7.5rem;padding:.3rem;width:7.5rem}.excalidraw .single-library-item__svg svg{height:100%;width:100%}.excalidraw .single-library-item .ToolIcon__icon{background-color:#fff;height:auto;margin:0 .5rem;width:auto}.excalidraw .single-library-item .ToolIcon,.excalidraw .single-library-item .ToolIcon_type_button:hover{background-color:#fff}.excalidraw .single-library-item .error,.excalidraw .single-library-item .required{color:#e03131;font-size:1rem;font-weight:700;margin:.2rem}.excalidraw .single-library-item .error{font-weight:500;margin:0;padding:.3em 0}.excalidraw .single-library-item--remove{position:absolute;right:1rem;top:.2rem}.excalidraw .single-library-item--remove .ToolIcon__icon{background-color:#fa5252;margin:0}.excalidraw .single-library-item--remove .ToolIcon__icon:hover{background-color:#f03e3e}.excalidraw .single-library-item--remove .ToolIcon__icon:active{background-color:#e03131}.excalidraw .single-library-item--remove svg{border-radius:.3em;color:#fff;height:1rem;padding:.26rem;width:1rem}.excalidraw .Stack{--gap:0;display:grid;gap:calc(var(--space-factor)*var(--gap))}.excalidraw .Stack_vertical{grid-auto-flow:row;grid-auto-rows:min-content;grid-template-columns:auto}.excalidraw .Stack_horizontal{grid-auto-columns:min-content;grid-auto-flow:column;grid-template-rows:auto}.excalidraw .dropdown-menu{max-width:20rem;z-index:1}.excalidraw .dropdown-menu--placement-top{margin-bottom:.5rem}.excalidraw .dropdown-menu__submenu-trigger[aria-expanded=true] .dropdown-menu-item{background-color:var(--button-hover-bg)}.excalidraw .dropdown-menu__submenu-trigger-icon{margin-left:auto;opacity:.5}.excalidraw .dropdown-menu__submenu-trigger-icon svg g{stroke-width:2}.excalidraw .dropdown-menu--mobile{row-gap:.75rem;width:100%}.excalidraw .dropdown-menu--mobile.main-menu{margin-bottom:0;margin-top:0;min-width:232px}@media screen and (orientation:landscape){.excalidraw .dropdown-menu--mobile.main-menu{max-width:232px}}.excalidraw .dropdown-menu--mobile .dropdown-menu-container{border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto;padding:8px;position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .dropdown-menu--mobile .dropdown-menu-container.zen-mode{box-shadow:none}.excalidraw .dropdown-menu--tray{left:0;row-gap:.75rem;width:100%}.excalidraw .dropdown-menu--tray .dropdown-menu-container{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);box-sizing:border-box;display:flex;flex-direction:column;padding:8px;position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .dropdown-menu--tray .dropdown-menu-container.zen-mode{box-shadow:none}.excalidraw .dropdown-menu .dropdown-menu-container{background-color:var(--island-bg-color);box-shadow:var(--box-shadow,var(--shadow-island));display:flex;flex-direction:column;gap:1px;max-height:calc(100svh - var(--editor-container-padding)*2 - 2.25rem);overflow-y:auto}.excalidraw.theme--dark.excalidraw .dropdown-menu .dropdown-menu-container{box-shadow:var(--box-shadow,var(--shadow-island)),0 0 0 1px rgba(0,0,0,.15)}.excalidraw .dropdown-menu .dropdown-menu-item-base{box-sizing:border-box;color:var(--color-on-surface);column-gap:.625rem;display:flex;font-family:inherit;font-size:.875rem;font-weight:400;padding:0 .5rem;width:100%}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item:hover{background-color:transparent}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item--hovered{background-color:var(--button-hover-bg)!important}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item--selected{background-color:var(--color-primary-light)!important}.excalidraw .dropdown-menu.fonts{margin-top:1rem;max-height:calc(17.95rem + 14px)}@media screen and (min-width:1921px){.excalidraw .dropdown-menu.fonts{max-height:calc(19.7rem + 14px)}}.excalidraw .dropdown-menu.fonts .dropdown-menu-item-base{display:inline-flex}.excalidraw .dropdown-menu.fonts .dropdown-menu-group:not(:first-child){margin-top:1rem}.excalidraw .dropdown-menu.fonts .dropdown-menu-group-title{font-size:.75rem;font-weight:400;line-height:1.3;margin:0 0 .5rem;text-align:left}.excalidraw .dropdown-menu .dropdown-menu-item{align-items:center;background-color:transparent;border:none;border-radius:var(--border-radius-md);cursor:pointer;flex:1 0 auto;height:2rem;padding:0 .5rem}@media screen and (min-width:1921px){.excalidraw .dropdown-menu .dropdown-menu-item{height:2.25rem}}.excalidraw .dropdown-menu .dropdown-menu-item__text{align-items:center;display:flex;gap:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.excalidraw .dropdown-menu .dropdown-menu-item__shortcut{margin-inline-start:auto;opacity:.5}.excalidraw .dropdown-menu .dropdown-menu-item__shortcut--orphaned{font-size:.875rem;padding:0 .625rem;text-align:right}.excalidraw .dropdown-menu .dropdown-menu-item--selected{background:var(--color-primary-light);--icon-fill-color:var(--color-primary-darker)}.excalidraw .dropdown-menu .dropdown-menu-item:hover{background-color:var(--button-hover)!important;text-decoration:none}.excalidraw .dropdown-menu .dropdown-menu-item:active{background-color:var(--button-hover-bg);box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]{cursor:not-allowed;opacity:.5;pointer-events:none}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]:hover{background-color:transparent}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]:active{background-color:transparent;box-shadow:none}.excalidraw .dropdown-menu .dropdown-menu-item svg{display:block;height:1rem;width:1rem}.excalidraw .dropdown-menu .dropdown-menu-item-bare{align-items:center;height:2rem;justify-content:space-between}@media screen and (min-width:1921px){.excalidraw .dropdown-menu .dropdown-menu-item-bare{height:2.25rem}}.excalidraw .dropdown-menu .dropdown-menu-item-bare svg{display:block;height:1rem;width:1rem}.excalidraw .dropdown-menu .dropdown-menu-item-custom{margin-top:.5rem}.excalidraw .dropdown-menu .dropdown-menu-group-title{font-size:14px;font-weight:500;margin:10px 0;text-align:left}.excalidraw .dropdown-menu-button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;margin:0;padding:0;width:var(--button-width,var(--default-button-size));width:var(--lg-button-size);--background:var(--color-surface-mid);background-color:var(--background)}.excalidraw .dropdown-menu-button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .dropdown-menu-button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .dropdown-menu-button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .dropdown-menu-button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .dropdown-menu-button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw.theme--dark.excalidraw .dropdown-menu-button{--background:var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .dropdown-menu-button:hover{--background:#363541}.excalidraw .dropdown-menu-button:hover{--background:var(--color-surface-high);background-color:var(--background);text-decoration:none}.excalidraw .dropdown-menu-button:active{box-shadow:0 0 0 1px var(--color-primary)}.excalidraw .dropdown-menu-button[disabled]{cursor:not-allowed}.excalidraw .dropdown-menu-button[disabled]:hover{--background:var(--color-surface-mid);background-color:var(--background)}.excalidraw .dropdown-menu-button[disabled]:active{box-shadow:none}.excalidraw.theme--dark.excalidraw .dropdown-menu-button[disabled]:hover{--background:var(--color-surface-high)}.excalidraw .dropdown-menu-button svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .dropdown-menu-button--mobile,.excalidraw .dropdown-menu-button--tray{border:none;height:var(--default-button-size);margin:0;padding:0;width:var(--default-button-size)}.excalidraw .library-unit{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;height:55px;justify-content:center;position:relative;width:55px}.excalidraw .library-unit svg{pointer-events:none}.excalidraw .library-unit--hover{background-color:var(--color-surface-mid)}.excalidraw .library-unit--selected,.excalidraw .library-unit:active:not(:has(.library-unit__checkbox:hover)){background-color:var(--color-surface-high)}.excalidraw .library-unit--skeleton{animation:library-unit__skeleton-opacity-animation .2s linear;background:linear-gradient(-45deg,var(--color-gray-10),var(--color-gray-20),var(--color-gray-10));background-size:200% 200%;opacity:.5}.excalidraw.theme--dark .library-unit--skeleton{background-image:linear-gradient(-45deg,var(--color-gray-100),var(--color-gray-80),var(--color-gray-100))}.excalidraw .library-unit__dragger{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.excalidraw .library-unit__dragger>svg{filter:var(--theme-filter);flex-grow:1;max-height:100%;max-width:100%}.excalidraw .library-unit__checkbox-container,.excalidraw .library-unit__checkbox-container:active,.excalidraw .library-unit__checkbox-container:hover{align-items:center;background:none;border:none;bottom:2rem;color:var(--icon-fill-color);cursor:pointer;display:flex;justify-content:center;left:2rem;margin:0;padding:.5rem;position:absolute}.excalidraw .library-unit__checkbox-container input,.excalidraw .library-unit__checkbox-container:active input,.excalidraw .library-unit__checkbox-container:hover input{cursor:pointer}.excalidraw .library-unit__checkbox{margin:0;position:absolute;right:.125rem;top:.125rem}.excalidraw .library-unit__checkbox .Checkbox-box{background-color:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:4px;box-shadow:none!important;height:1rem;margin:0;padding:2px;width:1rem}.excalidraw .library-unit__checkbox.Checkbox:hover .Checkbox-box{background-color:var(--color-primary-light)}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box{background-color:var(--color-primary)!important}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box svg{color:var(--color-primary-light)}.excalidraw .library-unit__removeFromLibrary>svg{height:16px;width:16px}.excalidraw .library-unit__adder{align-items:center;animation:library-unit__adder-animation 1s ease-in infinite;background-color:var(--color-primary);border-radius:var(--border-radius-md);display:flex;height:1.5rem;justify-content:center;pointer-events:none;position:absolute;transform:scale(1);width:1.5rem}.excalidraw .library-unit__adder svg{color:var(--color-primary-light);height:1rem;width:1rem}.excalidraw .library-unit:active .library-unit__adder{animation:none;transform:scale(.8)}.excalidraw .library-unit__active{cursor:pointer}@keyframes library-unit__adder-animation{0%{transform:scale(.85)}50%{transform:scale(1)}to{transform:scale(.85)}}@keyframes library-unit__skeleton-opacity-animation{0%{opacity:0}75%{opacity:0}to{opacity:.5}}.excalidraw{--container-padding-y:1rem;--container-padding-x:0.75rem}.excalidraw .library-menu-items-header{display:flex;gap:.5rem;padding-bottom:.5rem;padding-top:1rem}.excalidraw .library-menu-items__no-items{align-items:center;color:var(--color-gray-70);display:flex;flex-direction:column;font-size:.875rem;justify-content:center;line-height:1.5;min-height:55px;text-align:center;width:100%}.excalidraw .library-menu-items__no-items__label{color:var(--color-primary);font-size:1.125rem;font-weight:700;margin-bottom:.25rem}.excalidraw .library-menu-items__no-items__hint{color:var(--color-border-outline);padding:.75rem 1rem}.excalidraw.theme--dark .library-menu-items__no-items{color:var(--color-gray-40)}.excalidraw .library-menu-items-container{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;flex-shrink:1;height:100%;justify-content:flex-start;margin:0;overflow-y:auto;position:relative;width:100%}.excalidraw .library-menu-items-container>div{padding-left:12px;padding-right:12px}.excalidraw .library-menu-items-container__row{display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}.excalidraw .library-menu-items-container__items{flex:1;overflow-x:hidden;overflow-y:auto;padding:1rem 0 var(--container-padding-y) 0;position:relative;row-gap:.5rem}.excalidraw .library-menu-items-container__header{align-items:center;box-sizing:border-box;color:var(--color-primary);display:flex;flex:1 1 auto;font-size:1.125rem;font-weight:700;margin-bottom:.75rem;width:100%}.excalidraw .library-menu-items-container__header--excal{margin-top:2rem}.excalidraw .library-menu-items-container__header__hint{color:var(--color-border-outline);font-size:10px;font-weight:400;margin-left:auto}.excalidraw .library-menu-items-container__header__hint kbd{border:1px solid var(--color-border-outline);border-radius:4px;font-family:monospace;padding:1px 3px}.excalidraw .library-menu-items-container__grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:16px}.excalidraw .library-menu-items-container__search{flex:1 1 auto;margin:0}.excalidraw .library-menu-items-container__search .ExcTextField__input{height:var(--lg-button-size)}.excalidraw .library-menu-items-container__search .ExcTextField__input input{font-size:.875rem}.excalidraw .library-menu-items-container__search.hideCancelButton input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.excalidraw .library-menu-items-container .separator{align-items:center;color:var(--text-primary-color);display:flex;font-size:.9rem;font-weight:500;margin:.6em .2em;width:100%}.excalidraw .library-menu-items-private-library-container{min-height:3.75rem;width:100%}.excalidraw .excalidraw-button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .excalidraw-button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .excalidraw-button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .excalidraw-button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .excalidraw-button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .excalidraw-button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw{--ExcTextField--color:var(--color-on-surface);--ExcTextField--label-color:var(--color-on-surface);--ExcTextField--background:var(--color-surface-low);--ExcTextField--readonly--background:var(--color-surface-high);--ExcTextField--readonly--color:var(--color-on-surface);--ExcTextField--border:var(--color-gray-20);--ExcTextField--readonly--border:var(--color-border-outline-variant);--ExcTextField--border-hover:var(--color-brand-hover);--ExcTextField--border-active:var(--color-brand-active);--ExcTextField--placeholder:var(--color-border-outline-variant)}.excalidraw.theme--dark{--ExcTextField--border:var(--color-border-outline-variant)}.excalidraw .ExcTextField{position:relative}.excalidraw .ExcTextField svg{color:var(--color-gray-40);height:1.25rem;left:.75rem;position:absolute;top:50%;transform:translateY(-50%);width:1.25rem;z-index:1}.excalidraw .ExcTextField--fullWidth{flex-grow:1;width:100%}.excalidraw .ExcTextField__label{color:var(--ExcTextField--label-color);font-family:Assistant;font-size:.875rem;font-style:normal;font-weight:600;line-height:150%;margin-bottom:.25rem;-webkit-user-select:none;user-select:none}.excalidraw .ExcTextField__input{align-items:center;background:var(--ExcTextField--background);border:1px solid var(--ExcTextField--border);border-radius:.5rem;box-sizing:border-box;display:flex;flex-direction:row;height:3rem;padding:0 .75rem}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):hover{border-color:var(--ExcTextField--border-hover)}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):active,.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):focus-within{border-color:var(--ExcTextField--border-active)}.excalidraw .ExcTextField__input input{align-items:center;background:transparent;border:none;color:var(--ExcTextField--color);display:flex;font-family:Assistant;font-size:1rem;font-style:normal;font-weight:400;height:1.5rem;line-height:150%;margin:0;outline:none;padding:0;text-overflow:ellipsis;width:100%}.excalidraw .ExcTextField__input input:not(:focus):hover{background-color:initial}.excalidraw .ExcTextField__input input:focus{box-shadow:none;outline:initial}.excalidraw .ExcTextField__input--readonly{background:var(--ExcTextField--readonly--background);border-color:var(--ExcTextField--readonly--border)}.excalidraw .ExcTextField__input--readonly input{color:var(--ExcTextField--readonly--color)}.excalidraw .ExcTextField--hasIcon .ExcTextField__input{padding-left:2.5rem}.excalidraw .layer-ui__library{display:flex;flex:1 1 auto;flex-direction:column}.excalidraw .library-actions-counter{align-items:center;background-color:var(--color-primary);border-radius:50%;bottom:-.25rem;color:var(--color-primary-light);display:flex;font-size:.625rem;font-weight:700;height:1rem;justify-content:center;pointer-events:none;position:absolute;right:-.25rem;width:1rem}.excalidraw .layer-ui__library-message{align-items:center;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-width:200px;padding:2rem}.excalidraw .layer-ui__library-message span{font-size:.8em}.excalidraw .publish-library-success .Dialog__content{display:flex;flex-direction:column}.excalidraw .publish-library-success-close.ToolIcon_type_button{align-self:flex-end;background-color:#228be6}.excalidraw .publish-library-success-close.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library-success-close.ToolIcon_type_button .ToolIcon__icon{color:#fff;font-size:1rem;padding:0 .5rem;width:auto}.excalidraw .library-menu-control-buttons{align-items:center;display:flex;flex-direction:column;gap:.625rem;height:5.5em;justify-content:center;position:relative}.excalidraw .library-menu-control-buttons--at-bottom:before{background:var(--sidebar-border-color);content:"";height:1px;position:absolute;top:-1px;width:calc(100% - 1.5rem)}.excalidraw .library-menu-browse-button{align-items:center;background-color:var(--color-primary);border-radius:var(--border-radius-lg);color:#fff;display:flex;flex:1;font-size:.75rem;font-weight:600;height:var(--lg-button-size);justify-content:center;overflow:hidden;position:relative;text-align:center;text-decoration:none!important;white-space:nowrap;width:100%}.excalidraw .library-menu-browse-button:hover{background-color:var(--color-brand-hover)}.excalidraw .library-menu-browse-button:active{background-color:var(--color-brand-active)}.excalidraw.theme--dark .library-menu-browse-button{color:var(--color-gray-100)}.excalidraw.excalidraw--mobile .library-menu-browse-button{height:var(--default-button-size)}.excalidraw .layer-ui__library .dropdown-menu{bottom:100%;left:auto;margin-bottom:.625rem;right:0;top:auto;width:auto}.excalidraw .layer-ui__library .dropdown-menu .dropdown-menu-container{border-radius:var(--border-radius-lg);padding:.25rem .5rem;width:196px;--box-shadow:var(--library-dropdown-shadow)}.excalidraw .layer-ui__library .library-menu-dropdown-container{position:relative;z-index:1}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading{margin-left:auto}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading .dropdown-menu{top:100%}.excalidraw.excalidraw-modal-container{position:absolute;z-index:var(--zIndex-modal)}.excalidraw .Modal{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;overflow:auto;padding:calc(var(--space-factor)*10);position:absolute;right:0;top:0}.excalidraw .Modal .Island{border:0;border-radius:0;box-shadow:none;padding:2.5rem}.excalidraw .Modal.animations-disabled .Modal__background{animation:none}.excalidraw .Modal.animations-disabled .Modal__content{animation:none;opacity:1}.excalidraw .Modal__background{animation:Modal__background__fade-in .1s linear forwards;background-color:hsla(0,0%,7%,.2);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.excalidraw .Modal__content{animation:Modal__content_fade-in 25ms ease-out 0s forwards;background:var(--island-bg-color);border:1px solid var(--dialog-border-color);border-radius:.75rem;box-shadow:var(--modal-shadow);box-sizing:border-box;max-height:100%;max-width:var(--max-width);opacity:0;overflow-y:auto;position:relative;transform:translateY(10px);width:100%;z-index:2}.excalidraw .Modal__content:focus{outline:none}@keyframes Modal__background__fade-in{0%{opacity:0}to{opacity:1}}@keyframes Modal__content_fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.excalidraw .Modal__close{background-color:transparent;border:0;color:var(--icon-fill-color);cursor:pointer;line-height:0;margin:0;padding:.375rem;position:absolute;right:1rem;top:1rem}.excalidraw .Modal__close svg{height:1.5rem;width:1.5rem}.excalidraw .Dialog--fullscreen .Modal{padding:0}.excalidraw .Dialog--fullscreen .Modal__content{border:0;border-radius:0;bottom:0;left:0;max-width:100%;position:absolute;right:0;top:0}.excalidraw .Dialog{cursor:auto;-webkit-user-select:text;user-select:text}.excalidraw .Dialog__title{border-bottom:1px solid var(--dialog-border-color);font-size:1.25rem;margin:0 0 1.5rem;padding:0 0 .75rem;text-align:left}.excalidraw .Dialog__close{background-color:transparent;border:0;color:var(--color-gray-40);cursor:pointer;line-height:0;margin:0;position:absolute;right:.5rem;top:.75rem}.excalidraw .Dialog__close:hover{color:var(--color-gray-60)}.excalidraw .Dialog__close:active{color:var(--color-gray-40)}.excalidraw .Dialog__close svg{height:1.5rem;width:1.5rem}.excalidraw .Dialog__close+.Dialog__content{--offset:28px;height:calc(100% - var(--offset))!important;margin-top:var(--offset)!important}.excalidraw .Dialog--fullscreen .Dialog__close{right:1.25rem;top:1.25rem}.undo-redo-buttons,.zoom-actions{background-color:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest)}.undo-redo-buttons button,.zoom-button{background-color:var(--color-surface-low)!important;border-radius:0!important;font-size:.875rem!important;height:var(--lg-button-size);width:var(--lg-button-size)}.undo-redo-buttons button svg,.zoom-button svg{height:var(--lg-icon-size)!important;width:var(--lg-icon-size)!important}.undo-redo-buttons button .ToolIcon__icon,.zoom-button .ToolIcon__icon{height:100%;width:100%}.reset-zoom-button{border-left:0!important;border-right:0!important;color:var(--text-primary-color);justify-content:center!important;padding:0 .625rem!important;width:3.25rem!important}.zoom-out-button{border-bottom-left-radius:var(--border-radius-lg)!important;border-top-left-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-out-button{transform:scaleX(-1)}.zoom-out-button .ToolIcon__icon{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.zoom-in-button{border-bottom-right-radius:var(--border-radius-lg)!important;border-top-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-in-button{transform:scaleX(-1)}.zoom-in-button .ToolIcon__icon{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.undo-redo-buttons .undo-button-container button{border-bottom-left-radius:var(--border-radius-lg)!important;border-right:0!important;border-top-left-radius:var(--border-radius-lg)!important}:root[dir=rtl] .undo-redo-buttons .undo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .undo-button-container button .ToolIcon__icon{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.undo-redo-buttons .redo-button-container button{border-bottom-right-radius:var(--border-radius-lg)!important;border-top-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .undo-redo-buttons .redo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .redo-button-container button .ToolIcon__icon{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.compact-shape-actions{display:flex;flex-direction:column;gap:.5rem;max-height:calc(100vh - 200px);overflow-y:auto;padding:.5rem}.compact-shape-actions .compact-action-item{align-items:center;display:flex;justify-content:center;min-height:2.5rem;pointer-events:auto;position:relative;--default-button-size:2rem}.compact-shape-actions .compact-action-item .compact-action-button{align-items:center;background:var(--mobile-action-button-bg);border:none;border-radius:var(--border-radius-lg);color:var(--color-on-surface);cursor:pointer;display:flex;height:var(--mobile-action-button-size);justify-content:center;transition:all .2s ease;width:var(--mobile-action-button-size)}.compact-shape-actions .compact-action-item .compact-action-button svg{flex:0 0 auto;height:1rem;width:1rem}.compact-shape-actions .compact-action-item .compact-action-button.active{background:var(--color-surface-primary-container,var(--mobile-action-button-bg))}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section{margin-bottom:1rem}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section:last-child{margin-bottom:0}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section .popover-section-title{color:var(--color-text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section .buttonList{display:flex;flex-wrap:wrap;gap:.25rem}.compact-shape-actions .ToolIcon .ToolIcon__icon{background:var(--mobile-action-button-bg);height:var(--mobile-action-button-size);width:var(--mobile-action-button-size)}.compact-shape-actions .ToolIcon .ToolIcon__icon:hover{background-color:transparent}.compact-shape-actions-island{overflow-x:hidden;width:-moz-fit-content;width:fit-content}.mobile-shape-actions{background:transparent;border-radius:var(--border-radius-lg);box-shadow:none;display:flex;flex-direction:row;justify-content:space-between;overflow:none;scrollbar-width:none;width:100%;z-index:999;-ms-overflow-style:none}.shape-actions-theme-scope{--button-border:transparent;--button-bg:var(--color-surface-mid)}:root.theme--dark .shape-actions-theme-scope{--button-hover-bg:#363541;--button-bg:var(--color-surface-high)}.excalidraw .tool-popover-content{background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);display:flex;flex-direction:row;gap:.25rem;padding:.5rem;z-index:var(--zIndex-layerUI)}.excalidraw .command-palette-dialog{-webkit-user-select:none;user-select:none}.excalidraw .command-palette-dialog .Modal__content{height:auto;max-height:100%}@media screen and (min-width:861px){.excalidraw .command-palette-dialog .Modal__content{height:100%;max-height:750px}}.excalidraw .command-palette-dialog .Modal__content .Island{height:100%;padding:1.5rem}.excalidraw .command-palette-dialog .Modal__content .Dialog__content{display:flex;flex-direction:column;height:100%}.excalidraw .command-palette-dialog .shortcuts-wrapper{align-items:center;display:flex;gap:1.5rem;justify-content:center;margin-top:12px}.excalidraw .command-palette-dialog .shortcut{align-items:center;display:flex;font-size:10px;gap:.25rem;height:16px;justify-content:center}.excalidraw .command-palette-dialog .shortcut .shortcut-wrapper{display:flex}.excalidraw .command-palette-dialog .shortcut .shortcut-plus{margin:0 4px}.excalidraw .command-palette-dialog .shortcut .shortcut-key{align-items:center;background-color:var(--color-primary-light);border-radius:4px;display:flex;height:16px;justify-content:center;padding:0 4px}.excalidraw .command-palette-dialog .shortcut .shortcut-desc{color:var(--color-gray-50);margin-left:4px}.excalidraw .command-palette-dialog .commands{box-sizing:border-box;color:var(--popup-text-color);margin-top:12px;overflow-y:auto;-webkit-user-select:none;user-select:none}.excalidraw .command-palette-dialog .commands .command-category{display:flex;flex-direction:column;margin-right:.25rem;padding:12px 0}.excalidraw .command-palette-dialog .commands .command-category-title{align-items:center;display:flex;font-size:1rem;font-weight:600;margin-bottom:6px}.excalidraw .command-palette-dialog .commands .command-item{align-items:center;border-radius:var(--border-radius-lg);box-sizing:border-box;color:var(--popup-text-color);cursor:pointer;display:flex;height:2.5rem;justify-content:space-between;padding:0 .5rem;--icon-size:1rem}.excalidraw .command-palette-dialog .commands .command-item.command-item-large{height:2.75rem;--icon-size:1.5rem}.excalidraw .command-palette-dialog .commands .command-item.command-item-large .icon{height:var(--icon-size);margin-right:.625rem;width:var(--icon-size)}.excalidraw .command-palette-dialog .commands .command-item:active{background-color:var(--color-surface-low)}.excalidraw .command-palette-dialog .commands .command-item .name{align-items:center;display:flex;gap:.25rem;overflow:hidden}.excalidraw .command-palette-dialog .commands .item-selected{background-color:var(--color-surface-mid)}.excalidraw .command-palette-dialog .commands .item-disabled{cursor:not-allowed;opacity:.3}.excalidraw .command-palette-dialog .commands .no-match{align-items:center;display:flex;justify-content:center;margin-top:36px}.excalidraw .command-palette-dialog .icon{height:var(--icon-size,1rem);margin-right:.375rem;width:var(--icon-size,1rem)}.excalidraw .command-palette-dialog .icon .library-item-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.excalidraw .excalidraw-canvas-buttons{background:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 2px 4px 0 rgba(0,0,0,.3);display:flex;flex-direction:column;gap:.375rem;position:absolute;z-index:var(--zIndex-canvasButtons)}.excalidraw .popover{outline:none;padding:5px 0;position:absolute;z-index:10}.excalidraw .context-menu-popover{z-index:var(--zIndex-ui-context-menu)}.excalidraw .context-menu{background-color:var(--popup-secondary-bg-color);border-radius:4px;box-shadow:0 3px 10px rgba(0,0,0,.2);cursor:default;list-style:none;margin:-.25rem 0 0 .125rem;padding:.5rem 0;position:relative;-webkit-user-select:none;user-select:none}body.is-mobile .excalidraw .context-menu{border:inherit;padding:5px .5rem 5px 2rem}.excalidraw .context-menu button{color:var(--popup-text-color)}.excalidraw .context-menu-item{align-items:center;background-color:transparent;border:none;border-radius:0;display:grid;font-family:inherit;grid-template-columns:1fr .2fr;margin:0;min-width:9.5rem;padding:.25rem 1rem .25rem 1.25rem;position:relative;text-align:start;white-space:nowrap;width:100%}.excalidraw .context-menu-item.checkmark:before{content:"✓";left:6px;margin-bottom:1px;position:absolute}body.is-mobile .excalidraw .context-menu-item.checkmark:before{left:-1.3rem}.excalidraw .context-menu-item.dangerous .context-menu-item__label{color:#f03e3e}.excalidraw .context-menu-item .context-menu-item__label{justify-self:start;margin-inline-end:20px}.excalidraw .context-menu-item .context-menu-item__shortcut{font-family:inherit;font-size:.7rem;justify-self:end;opacity:.6}.excalidraw .context-menu-item:hover{background-color:var(--select-highlight-color)}.excalidraw .context-menu-item:hover.dangerous{background-color:#fa5252}.excalidraw .context-menu-item:hover.dangerous .context-menu-item__label{color:var(--popup-bg-color)}.excalidraw .context-menu-item:focus{z-index:1}.excalidraw--mobile.excalidraw .context-menu-item{display:block}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__label{margin-inline-end:0}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__shortcut{display:none}.excalidraw .context-menu-item-separator{border:none;border-top:1px solid #adb5bd;margin:0}.excalidraw .follow-mode{align-items:flex-end;border:2px solid var(--color-primary-hover);box-sizing:border-box;display:flex;justify-content:center;pointer-events:none;position:absolute;z-index:9999}.excalidraw .follow-mode__badge{align-items:center;background-color:var(--color-primary-hover);border-radius:.5rem;color:var(--color-primary-light);display:flex;font-size:.75rem;gap:.5rem;margin-bottom:.5rem;padding:.25rem .5rem;pointer-events:all}.excalidraw .follow-mode__badge__label{display:flex;line-height:1;white-space:pre-wrap}.excalidraw .follow-mode__badge__username{display:block;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .follow-mode__disconnect-btn{all:unset;border-radius:.25rem;cursor:pointer}.excalidraw .follow-mode__disconnect-btn:hover{background-color:var(--color-primary-darker)}.excalidraw .follow-mode__disconnect-btn:active{background-color:var(--color-primary-darkest)}.excalidraw .follow-mode__disconnect-btn svg{display:block;height:1rem;width:1rem}.excalidraw .excalidraw-mobile-toolbar{align-items:center;border-radius:var(--space-factor);display:flex;flex:1;gap:4px;overflow-x:auto;padding:0;scrollbar-width:none;-ms-overflow-style:none;justify-content:space-between}.excalidraw .excalidraw-mobile-toolbar::-webkit-scrollbar{display:none}.excalidraw .excalidraw-mobile-toolbar .ToolIcon{align-items:center;border-radius:4px;display:flex;flex-shrink:0;justify-content:center;min-height:2rem;min-width:2rem}.excalidraw .excalidraw-mobile-toolbar .ToolIcon .ToolIcon__icon{height:2.25rem;width:2.25rem}.excalidraw .excalidraw-mobile-toolbar .ToolIcon .ToolIcon__icon:hover{background-color:transparent}.excalidraw .excalidraw-mobile-toolbar .ToolIcon.active{background:var(--color-surface-primary-container,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .excalidraw-mobile-toolbar .ToolIcon svg{height:1rem;width:1rem}.excalidraw .excalidraw-mobile-toolbar .App-toolbar__extra-tools-dropdown{min-width:160px;z-index:var(--zIndex-layerUI)}.excalidraw .excalidraw-mobile-toolbar-separator{background:var(--default-border-color);flex-shrink:0;height:24px;margin:0 2px;width:1px}.excalidraw .excalidraw-mobile-toolbar-undo{align-items:center;display:flex}.excalidraw .excalidraw-mobile-toolbar-undo .ToolIcon{height:32px;min-height:32px;min-width:32px;width:32px}.excalidraw .FixedSideContainer{pointer-events:none;position:absolute}.excalidraw .FixedSideContainer>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .FixedSideContainer_side_top{bottom:var(--editor-container-padding);left:var(--editor-container-padding);right:var(--editor-container-padding);top:var(--editor-container-padding)}.excalidraw .FixedSideContainer_side_top.zen-mode{right:42px}.excalidraw .drag-input-container{border-radius:var(--border-radius-lg);display:flex;width:100%}.excalidraw .drag-input-container:focus-within{background:transparent;border-radius:var(--border-radius-md);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .disabled{opacity:.5;pointer-events:none}.excalidraw .drag-input-label{align-items:center;border:0;box-sizing:content-box;color:var(--popup-text-color);display:flex;flex-shrink:0;height:2rem;justify-content:center;min-width:1rem;padding:0 .5rem 0 .25rem;position:relative;width:1.5rem}.excalidraw .drag-input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:var(--text-primary-color);font-family:inherit;font-size:.875rem;height:2rem;letter-spacing:.4px;margin:0;outline:none;padding:.5rem .5rem .5rem .25rem;width:100%}.excalidraw .drag-input:focus-visible{box-shadow:none}.exc-stats{font-size:12px;pointer-events:var(--ui-pointerEvents);position:fixed;right:3em;top:60px;width:204px;z-index:var(--zIndex-layerUI)}:root[dir=rtl] .exc-stats{left:3em;right:auto}.exc-stats h2{font-size:1.5em;font-weight:700;margin-block-end:.83em;margin-block-start:.83em}.exc-stats h3{font-size:1.17em;font-weight:700;margin:0;white-space:nowrap}.exc-stats__rows{display:flex;flex-direction:column;gap:.3125rem}.exc-stats__row{align-items:center;display:flex;display:grid;gap:4px;justify-content:space-between}.exc-stats__row div+div{text-align:right}.exc-stats__row:empty{display:none}.exc-stats__row--heading{font-weight:700;margin:.25rem 0;text-align:center}.exc-stats .title{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.exc-stats .title h2{margin:0}.exc-stats .close{cursor:pointer;height:16px;width:16px}.exc-stats .close svg{height:100%;width:100%}.excalidraw .PasteChartDialog .PasteChartDialog__title{align-items:center;display:flex;gap:.5rem}.excalidraw .PasteChartDialog .PasteChartDialog__titleText{min-width:0}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn{align-items:center;border-radius:4px;color:var(--text-primary-color);cursor:pointer;display:inline-flex;flex:0 0 auto;height:1rem;justify-content:center;margin-left:auto;transition:transform .12s ease,background-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none;width:1rem}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn:hover{color:#228be6}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn:active{transform:scale(.94)}.excalidraw--mobile.excalidraw .PasteChartDialog .Island{display:flex;flex-direction:column}.excalidraw .PasteChartDialog .container{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.excalidraw--mobile.excalidraw .PasteChartDialog .container{align-items:stretch;flex-direction:column;justify-content:center}.excalidraw .PasteChartDialog .ChartPreview{align-items:stretch;background:transparent;border:1px solid #ced4da;border-radius:8px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:190px;padding:10px;width:260px}.excalidraw .PasteChartDialog .ChartPreview .ChartPreview__canvas{align-items:center;display:flex;flex:1;justify-content:center;overflow:hidden}.excalidraw .PasteChartDialog .ChartPreview .ChartPreview__label{color:var(--text-primary-color);font-size:.875rem;font-weight:600;line-height:1;text-align:center}.excalidraw .PasteChartDialog .ChartPreview svg{max-height:144px;max-width:100%}.excalidraw .PasteChartDialog .ChartPreview:hover{border-color:#339af0}.excalidraw .PasteChartDialog .ChartPreview:active{border-color:#339af0;box-shadow:0 0 0 1px #339af0;transform:scale(.98)}.excalidraw .PasteChartDialog .ChartPreview:focus-visible{border-color:#339af0;box-shadow:0 0 0 1px #339af0}.excalidraw--mobile.excalidraw .PasteChartDialog .ChartPreview{min-height:200px;width:100%}.excalidraw{--avatar-size:1.75rem;--avatarList-gap:0.625rem;--userList-padding:var(--space-factor);--userlist-hint-bg-color:var(--color-gray-10);--userlist-hint-heading-color:var(--color-gray-80);--userlist-hint-text-color:var(--color-gray-60);--userlist-collaborators-border-color:var(--color-gray-20)}.excalidraw.theme--dark{--userlist-hint-bg-color:var(--color-gray-90);--userlist-hint-heading-color:var(--color-gray-30);--userlist-hint-text-color:var(--color-gray-40);--userlist-collaborators-border-color:var(--color-gray-80)}.excalidraw .UserList__wrapper{pointer-events:none!important;width:100%}.excalidraw .UserList,.excalidraw .UserList__wrapper{align-items:center;display:flex;justify-content:flex-end}.excalidraw .UserList{box-sizing:border-box;flex-wrap:wrap;gap:var(--avatarList-gap);padding:var(--userList-padding);pointer-events:none;--max-size:calc(var(--avatar-size)*var(--max-avatars, 2) + var(--avatarList-gap)*(var(--max-avatars, 2) - 1) + var(--userList-padding)*2);max-height:var(--max-size);max-width:var(--max-size)}.excalidraw .UserList>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .UserList_mobile{justify-content:normal;margin:.5rem 0;max-height:none;max-width:none;padding:0}.excalidraw .UserList__more{align-items:center;border-radius:100%;color:var(--color-gray-90);cursor:pointer;display:flex;flex:0 0 auto;font-size:.75rem;height:var(--avatar-size,1.5rem);justify-content:center;line-height:1;outline-offset:2px;position:relative;width:var(--avatar-size,1.5rem)}.excalidraw .UserList__more:active{transform:scale(.94)}.excalidraw .UserList__more-img{border-radius:100%;height:100%;width:100%}.excalidraw .UserList__more:before{border-radius:100%;bottom:-3px;content:"";left:-3px;position:absolute;right:-3px;top:-3px}.excalidraw .UserList__more.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .UserList__more.is-current-user{cursor:auto}.excalidraw .UserList__more{background-color:var(--color-gray-20);border:0!important;color:var(--color-gray-100);flex-shrink:0;font-size:.625rem;font-weight:400;font-weight:700}.excalidraw .UserList__collaborator-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .UserList__collaborator--avatar-only{display:flex;flex:0 0 auto;position:relative}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon{--size:14px;bottom:-.25rem;display:flex;flex:0 0 auto;height:var(--size);position:absolute;right:-.25rem;width:var(--size)}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon svg{flex:0 0 auto;height:var(--size);width:var(--size)}.excalidraw .UserList__collaborator-status-icons{display:flex;flex:0 0 auto;gap:.25rem;justify-content:flex-end;margin-left:auto;min-width:2.25rem}.excalidraw .UserList__collaborator.is-muted .UserList__collaborator-status-icon-microphone-muted{color:var(--color-danger);filter:drop-shadow(0 0 0 rgba(0,0,0,.5))}.excalidraw .UserList__collaborator-status-icon-speaking-indicator{align-items:center;box-sizing:border-box;display:flex;flex-flow:row nowrap;justify-content:space-between;padding:0 3px;width:1rem}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div{background-color:#a2f1a6;height:.4rem;width:.125rem}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:first-of-type{animation:speaking-indicator-anim 1s ease-in-out -.45s infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(2){animation:speaking-indicator-anim 1s ease-in-out -.9s infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(3){animation:speaking-indicator-anim 1s ease-in-out -.15s infinite}@keyframes speaking-indicator-anim{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.excalidraw .UserList__collaborators{max-height:50vh;top:auto}.excalidraw .sidebar-trigger{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);font-size:.75rem;gap:.5rem;height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;letter-spacing:.4px;line-height:0;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .sidebar-trigger svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .sidebar-trigger:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .sidebar-trigger:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .sidebar-trigger.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .sidebar-trigger{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .sidebar-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .sidebar-trigger{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .sidebar-trigger svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .sidebar-trigger__label-element{align-self:flex-start}.excalidraw .default-sidebar-trigger .sidebar-trigger__label{display:block;white-space:nowrap}.excalidraw.excalidraw--mobile .default-sidebar-trigger .sidebar-trigger__label{display:none}.excalidraw .sidebar{background-color:var(--sidebar-bg-color);border-left:1px solid var(--sidebar-border-color);border-radius:0;bottom:0;box-shadow:var(--sidebar-shadow);box-sizing:border-box;display:flex;flex-direction:column;margin:0;overflow:hidden;padding:0;pointer-events:var(--ui-pointerEvents);position:absolute;right:0;top:0;width:calc(var(--right-sidebar-width) - var(--space-factor)*2);z-index:var(--zIndex-ui-library)}:root[dir=rtl] .excalidraw .sidebar{left:0;right:auto}.excalidraw .sidebar--docked{box-shadow:none}:root[dir=rtl] .excalidraw .sidebar{border-left:0;border-right:1px solid var(--sidebar-border-color)}.excalidraw .sidebar__header{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;padding:1rem .75rem;position:relative;width:100%}.excalidraw .sidebar__header:after{background:var(--sidebar-border-color);bottom:-1px;content:"";height:1px;position:absolute;width:calc(100% - 1.5rem)}.excalidraw .sidebar__header__buttons{align-items:center;display:flex;gap:0;margin-left:auto}.excalidraw .sidebar__header__buttons button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;width:var(--button-width,var(--default-button-size));--button-bg:transparent;border:0!important;height:var(--lg-button-size);padding:0;width:var(--lg-button-size)}.excalidraw .sidebar__header__buttons button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .sidebar__header__buttons button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .sidebar__header__buttons button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .sidebar__header__buttons button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .sidebar__header__buttons button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .sidebar__header__buttons button svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .sidebar__header__buttons button:hover{background:var(--button-hover-bg,var(--island-bg-color))}.excalidraw .sidebar__header__buttons .sidebar__dock.selected svg{fill:var(--color-primary);stroke:var(--color-primary)}.excalidraw .sidebar-tabs-root{display:flex;flex:1 1 auto;flex-direction:column;padding:1rem 0}.excalidraw .sidebar-tabs-root [role=tabpanel]{display:flex;flex:1;flex:1 1 auto;flex-direction:column;outline:none}.excalidraw .sidebar-tabs-root [role=tabpanel][data-state=inactive]{display:none!important}.excalidraw .sidebar-tabs-root [role=tablist]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.excalidraw .sidebar-tabs-root>.sidebar__header{padding-bottom:1rem;padding-top:0}.excalidraw .sidebar-tab-trigger{--button-width:auto;--button-bg:transparent;--button-hover-bg:transparent;--button-active-bg:var(--color-primary);--button-hover-color:var(--color-primary);--button-hover-border:var(--color-primary)}.excalidraw .sidebar-tab-trigger[data-state=active]{--button-bg:var(--color-primary);--button-hover-bg:var(--color-primary-darker);--button-hover-color:var(--color-icon-white);--button-border:var(--color-primary);color:var(--color-icon-white)}.excalidraw .default-sidebar{display:flex;flex-direction:column}.excalidraw .default-sidebar .sidebar-triggers{background:var(--default-bg-color);border:1px solid var(--sidebar-border-color);border-radius:.625rem;display:flex;gap:0;margin-bottom:-3px;margin-top:-3px;padding:2px}.excalidraw .default-sidebar .sidebar-triggers .sidebar-tab-trigger{border:none;height:var(--lg-button-size);width:var(--lg-button-size)}.excalidraw{--RadioGroup-background:var(--island-bg-color);--RadioGroup-border:var(--color-surface-high);--RadioGroup-choice-color-off:var(--color-primary);--RadioGroup-choice-color-off-hover:var(--color-brand-hover);--RadioGroup-choice-background-off:var(--island-bg-color);--RadioGroup-choice-background-off-active:var(--color-surface-high);--RadioGroup-choice-color-on:var(--color-surface-lowest);--RadioGroup-choice-background-on:var(--color-primary);--RadioGroup-choice-background-on-hover:var(--color-brand-hover);--RadioGroup-choice-background-on-active:var(--color-brand-active)}.excalidraw .RadioGroup{align-items:flex-start;background:var(--RadioGroup-background);border:1px solid var(--RadioGroup-border);border-radius:10px;box-sizing:border-box;display:flex;flex-direction:row;gap:2px;padding:3px}.excalidraw .RadioGroup__choice{align-items:center;background:var(--RadioGroup-choice-background-off);border-radius:8px;color:var(--RadioGroup-choice-color-off);display:flex;font-family:Assistant;font-size:.75rem;font-style:normal;font-weight:600;height:24px;justify-content:center;letter-spacing:.4px;line-height:100%;min-width:20px;padding:0 .375rem;position:relative;transition:all 75ms ease-out;-webkit-user-select:none;user-select:none}.excalidraw .RadioGroup__choice:hover{color:var(--RadioGroup-choice-color-off-hover)}.excalidraw .RadioGroup__choice:active{background:var(--RadioGroup-choice-background-off-active)}.excalidraw .RadioGroup__choice.active{background:var(--RadioGroup-choice-background-on);color:var(--RadioGroup-choice-color-on)}.excalidraw .RadioGroup__choice.active:hover{background:var(--RadioGroup-choice-background-on-hover)}.excalidraw .RadioGroup__choice.active:active{background:var(--RadioGroup-choice-background-on-active)}.excalidraw .RadioGroup__choice input{-webkit-appearance:none;appearance:none;border-radius:8px;cursor:pointer;height:100%;margin:0;padding:0;position:absolute;width:100%;z-index:1}.excalidraw .ActiveFile .ActiveFile__fileName{align-items:center;display:flex}.excalidraw .ActiveFile .ActiveFile__fileName span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:9.3em}.excalidraw .ActiveFile .ActiveFile__fileName svg{margin-inline-end:.3em;transform:scaleY(.9);width:1.15em}@keyframes successStatusAnimation{0%{transform:scale(.35)}50%{transform:scale(1.25)}to{transform:scale(1)}}.excalidraw .ExcButton{--text-color:transparent;--border-color:transparent;--back-color:transparent;background-color:var(--back-color);border-color:var(--border-color);border-radius:.5rem;border-style:solid;border-width:1px;color:var(--text-color);font-family:var(--font-family);-webkit-user-select:none;user-select:none}.excalidraw .ExcButton:hover{transition:all .15s ease-out}.excalidraw .ExcButton .Spinner{--spinner-color:var(--color-surface-lowest)}.excalidraw .ExcButton .ExcButton__statusIcon{animation:successStatusAnimation .5s cubic-bezier(.3,1,.6,1);height:1.2rem;position:absolute;visibility:visible;width:1.2rem}.excalidraw .ExcButton.ExcButton--status-loading,.excalidraw .ExcButton.ExcButton--status-success{background-color:var(--color-success);pointer-events:none}.excalidraw .ExcButton.ExcButton--status-loading .ExcButton__contents,.excalidraw .ExcButton.ExcButton--status-success .ExcButton__contents{visibility:hidden}.excalidraw .ExcButton[disabled]{cursor:not-allowed}.excalidraw .ExcButton[disabled].ExcButton--variant-filled,.excalidraw .ExcButton[disabled]:hover{--back-color:var(--color-surface-low)!important;--text-color:var(--color-on-surface-variant)!important}.excalidraw .ExcButton[disabled].ExcButton--variant-icon,.excalidraw .ExcButton[disabled].ExcButton--variant-outlined{--text-color:var(--color-on-surface-variant);--border-color:var(--color-surface-high)}.excalidraw .ExcButton,.excalidraw .ExcButton__contents{align-items:center;display:flex;flex-shrink:0;flex-wrap:nowrap;justify-content:center;position:relative}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled{--text-color:var(--color-surface-lowest);--back-color:var(--color-primary)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:hover{--back-color:var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:active{--back-color:var(--color-brand-active)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined{--text-color:var(--color-primary);--border-color:var(--color-primary);--back-color:transparent}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:hover{--text-color:var(--color-brand-hover);--border-color:var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:active{--text-color:var(--color-brand-active);--border-color:var(--color-brand-active)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled{--text-color:var(--color-danger-text);--back-color:var(--color-danger-dark)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:hover{--back-color:var(--color-danger-darker)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:active{--back-color:var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined{--text-color:var(--color-danger);--border-color:var(--color-danger);--back-color:transparent}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:hover{--text-color:var(--color-danger-darkest);--border-color:var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:active{--text-color:var(--color-danger-darker);--border-color:var(--color-danger-darker)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled{--text-color:var(--color-success-text);--back-color:var(--color-success)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled .Spinner{--spinner-color:var(--color-success)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled:hover{--back-color:var(--color-success-darker)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled:active{--back-color:var(--color-success-darkest)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined{--text-color:var(--color-success-contrast);--border-color:var(--color-success-contrast);--back-color:transparent}.excalidraw .ExcButton--color-success.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined .Spinner{--spinner-color:var(--color-success-contrast)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined:hover{--text-color:var(--color-success-contrast-hover);--border-color:var(--color-success-contrast-hover)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined:active{--text-color:var(--color-success-contrast-active);--border-color:var(--color-success-contrast-active)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled{--text-color:var(--island-bg-color);--back-color:var(--color-gray-50)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:hover{--back-color:var(--color-gray-60)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:active{--back-color:var(--color-gray-80)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined{--text-color:var(--color-muted-background);--border-color:var(--color-muted);--back-color:var(--island-bg-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:hover{--text-color:var(--color-muted-background-darker);--border-color:var(--color-muted-darker)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:active{--text-color:var(--color-muted-background-darker);--border-color:var(--color-muted-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled{--text-color:#000;--back-color:var(--color-warning-dark)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:hover{--back-color:var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:active{--back-color:var(--color-warning-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined{--text-color:var(--color-warning-dark);--border-color:var(--color-warning-dark);--back-color:var(--input-bg-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:hover{--text-color:var(--color-warning-darker);--border-color:var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:active{--text-color:var(--color-warning-darkest);--border-color:var(--color-warning-darkest)}.excalidraw .ExcButton--size-large{font-size:.875rem;font-weight:600;letter-spacing:.4px;min-height:3rem;padding:.5rem 1.5rem}.excalidraw .ExcButton--size-large .ExcButton__contents{gap:.75rem}.excalidraw .ExcButton--size-medium{font-size:.75rem;font-weight:600;letter-spacing:normal;min-height:2.5rem;padding:.5rem 1rem}.excalidraw .ExcButton--size-medium .ExcButton__contents{gap:.5rem}.excalidraw .ExcButton--variant-icon{padding:.5rem .75rem;width:3rem}.excalidraw .ExcButton--fullWidth{width:100%}.excalidraw .ExcButton__icon{height:1.25rem;width:1.25rem}.excalidraw .OverwriteConfirm{align-items:center;display:flex;flex-direction:column;gap:.75rem;isolation:isolate}.excalidraw .OverwriteConfirm h3{align-self:flex-start;color:var(--text-primary-color);font-size:1.3125rem;font-weight:700;line-height:130%;margin:0}.excalidraw .OverwriteConfirm__Description{align-items:center;background:var(--color-danger-background);border-radius:.5rem;box-sizing:border-box;color:var(--color-danger-color);display:flex;flex-direction:row;font-family:Assistant;font-size:1rem;font-style:normal;font-weight:400;gap:1rem;line-height:150%;padding:2.5rem;width:100%}.excalidraw--mobile.excalidraw .OverwriteConfirm__Description{flex-direction:column;text-align:center}.excalidraw .OverwriteConfirm__Description__spacer{flex-grow:1}.excalidraw .OverwriteConfirm__Description__icon{align-items:center;background:var(--color-danger-icon-background);border-radius:2.5rem;box-sizing:border-box;display:flex;height:3.5rem;justify-content:center;padding:.75rem;width:3.5rem}.excalidraw .OverwriteConfirm__Description__icon svg{color:var(--color-danger-icon-color);height:1.5rem;width:1.5rem}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning{background:var(--color-warning-background);color:var(--color-warning-color)}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon{background:var(--color-warning-icon-background);flex:0 0 auto}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon svg{color:var(--color-warning-icon-color)}.excalidraw .OverwriteConfirm__Actions{align-items:stretch;display:flex;flex-direction:row;gap:1.5rem;justify-content:center;justify-items:stretch}.excalidraw--mobile.excalidraw .OverwriteConfirm__Actions{flex-direction:column}.excalidraw .OverwriteConfirm__Actions__Action{align-items:center;display:flex;flex-basis:50%;flex-direction:column;flex-grow:0;gap:.75rem;padding:1.5rem}.excalidraw .OverwriteConfirm__Actions__Action__content{font-size:.875rem;height:100%;text-align:center}.excalidraw .OverwriteConfirm__Actions__Action h4{color:var(--text-primary-color);font-size:1.125rem;font-weight:700;line-height:130%;margin:0}.excalidraw .layer-ui__search{display:flex;flex:1 0 auto;flex-direction:column;padding:8px 0 0}.excalidraw .layer-ui__search-header{align-items:center;display:flex;justify-content:space-between;padding:0 .75rem}.excalidraw .layer-ui__search-header .ExcTextField{flex:1 0 auto}.excalidraw .layer-ui__search-header .ExcTextField__input{background-color:var(--color-gray-50);border:0;border-radius:var(--border-radius-md)}.excalidraw.theme--dark.excalidraw .layer-ui__search-header .ExcTextField__input{background-color:var(--color-gray-50)}.excalidraw .layer-ui__search-header .ExcTextField__input input::placeholder{font-size:.9rem}.excalidraw .layer-ui__search-count{align-items:center;display:flex;font-size:.8em;justify-content:space-between;margin:0 .75rem .25rem;padding:8px 8px 0}.excalidraw .layer-ui__search-count .result-nav{display:flex}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn{height:36px;width:36px;--button-border:transparent}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn:active{background-color:var(--color-surface-high)}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn:first-child{margin-right:4px}.excalidraw .layer-ui__search-result-container{display:flex;flex:1 1 0;flex-direction:column;gap:.125rem;overflow-y:auto;padding:0 .75rem}.excalidraw .layer-ui__search .collapsible-items{gap:2px}.excalidraw .layer-ui__search-result-title{align-items:center;display:flex;font-size:.875rem;font-weight:700;gap:.25rem;margin-bottom:.25rem}.excalidraw .layer-ui__search-result-title .title-icon{height:.875rem;margin-right:.25rem;width:.875rem}.excalidraw .layer-ui__search-result-title .title-icon svg g{stroke-width:1.25}.excalidraw .layer-ui__divider{margin-bottom:1rem;margin-top:.25rem;position:relative;width:100%}.excalidraw .layer-ui__result-item{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex:0 0 auto;font-size:16px;min-height:1.875rem;outline:none;padding:.25rem .75rem}.excalidraw .layer-ui__result-item .text-icon{height:1rem;margin-right:.75rem;width:1rem}.excalidraw .layer-ui__result-item .preview-text{flex:1;line-height:24px;max-height:48px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.excalidraw .layer-ui__result-item:hover{background-color:var(--color-surface-high)}.excalidraw .layer-ui__result-item:active{border-color:var(--color-primary)}.excalidraw .layer-ui__result-item.active{background-color:var(--color-surface-high)}.excalidraw .dialog-mermaid-title{font-size:1.25rem;font-weight:700;margin-block:.25rem;padding-inline:2.5rem}.excalidraw.theme--dark .chat-message--assistant .chat-message__content{background:var(--color-surface-lowest)}.excalidraw.theme--dark .chat-message--system .chat-message__content{color:var(--color-surface-low)}.excalidraw .chat-interface{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}@media screen and (max-width:861px){.excalidraw .chat-interface{min-height:200px}}.excalidraw .chat-interface__messages{border-top-left-radius:var(--border-radius-lg);border-top-right-radius:var(--border-radius-lg);display:flex;flex:1 1 0;flex-direction:column;gap:2rem;margin-bottom:.5rem;min-height:0;overflow-y:auto;padding:1rem .5rem 0}@media screen and (max-width:861px){.excalidraw .chat-interface__messages{min-height:100px;padding:.75rem}}.excalidraw .chat-interface__welcome-screen{align-items:center;display:flex;height:100%;justify-content:center;min-height:200px}.excalidraw .chat-interface__welcome-screen__welcome-message{text-align:center}.excalidraw .chat-interface__welcome-screen__welcome-message h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.excalidraw .chat-interface__welcome-screen__welcome-message p{color:var(--color-on-surface);font-size:.875rem;margin:0 0 .2rem}@media screen and (max-width:861px){.excalidraw .chat-interface__welcome-screen{min-height:100px}}.excalidraw .chat-interface__input-outer{min-height:71px;position:relative}.excalidraw .chat-interface__input-container{display:flex;flex-direction:column;justify-content:flex-end}.excalidraw .chat-interface__input-wrapper{align-items:flex-end;background:var(--color-surface-lowest);border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);bottom:0;display:flex;gap:.5rem;left:0;padding:.75rem;position:absolute;right:0;transition:border-color .2s ease}.excalidraw .chat-interface__input-wrapper:focus-within{border-color:var(--color-primary)}@media screen and (max-width:861px){.excalidraw .chat-interface__input-wrapper{padding:.5rem .75rem}}.excalidraw .chat-interface__input{background:transparent!important;border:none;border:none!important;color:var(--color-on-surface);flex:1;font-size:.875rem;line-height:1.5;max-height:120px;min-height:24px;outline:none;overflow-x:hidden}.excalidraw .chat-interface__input::placeholder{color:var(--color-gray-40)}@media screen and (max-width:861px){.excalidraw .chat-interface__input{line-height:1.4;max-height:100px;min-height:20px;padding:0;resize:none}.excalidraw .chat-interface__input::placeholder{opacity:.6}}.excalidraw .chat-interface__send-button{align-items:center;background:var(--color-primary);border:none;border-radius:50%;color:var(--color-surface-lowest);cursor:pointer;display:flex;height:32px;justify-content:center;margin-bottom:8px;width:32px}.excalidraw .chat-interface__send-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.excalidraw .chat-interface__send-button:hover{background-color:var(--color-primary-darker)}.excalidraw .chat-interface__send-button svg{transform:rotate(-90deg)}.excalidraw .chat-message{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message--user{justify-content:flex-end}.excalidraw .chat-message--user .chat-message__content{background:var(--color-primary-light);border-radius:var(--border-radius-md);color:var(--text-primary-color);min-width:6rem}.excalidraw .chat-message--assistant{align-items:flex-start;flex-direction:column;justify-content:flex-start}.excalidraw .chat-message--assistant .chat-message__content{background:var(--color-surface-low);border-radius:var(--border-radius-md);color:var(--color-on-surface);min-width:6rem}.excalidraw .chat-message--assistant .chat-message__content .chat-message__body{font-family:monospace}.excalidraw .chat-message--system{justify-content:flex-start;margin-bottom:0}.excalidraw .chat-message--system .chat-message__content{background:var(--color-warning);border-radius:var(--border-radius-md);color:var(--color-on-surface);min-width:6rem}.excalidraw .chat-message--system .chat-message__content .chat-message__body{font-family:monospace}.excalidraw .chat-message__content{box-shadow:var(--chat-msg-shadow);max-width:80%;padding:.75rem 1rem}.excalidraw .chat-message__header{align-items:center;display:flex;font-size:.75rem;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.excalidraw .chat-message__role{font-weight:600}.excalidraw .chat-message__timestamp{font-size:.625rem}.excalidraw .chat-message__actions{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message__action{align-items:center;background:none;border:none;color:var(--color-gray-60);cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;padding:.25rem 0;transition:color .2s ease}.excalidraw .chat-message__action.invisible{pointer-events:none;visibility:hidden}.excalidraw .chat-message__action:hover{color:var(--color-primary)}.excalidraw .chat-message__action svg{height:14px;width:14px}.excalidraw .chat-message__action--danger:hover{color:var(--color-danger)}.excalidraw .chat-message__body{line-height:1.5}.excalidraw .chat-message__text{white-space:pre-wrap;word-wrap:break-word}.excalidraw .chat-message__cursor{animation:blink 1s infinite;color:currentColor;display:inline-block;margin-left:2px}.excalidraw .chat-message__loading{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message__typing-indicator{display:flex;gap:.25rem}.excalidraw .chat-message__typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:currentColor;border-radius:50%;height:6px;opacity:.4;width:6px}.excalidraw .chat-message__typing-indicator span:first-child{animation-delay:-.32s}.excalidraw .chat-message__typing-indicator span:nth-child(2){animation-delay:-.16s}.excalidraw .chat-message__typing-indicator span:nth-child(3){animation-delay:0s}.excalidraw .chat-message__error{color:var(--color-danger);font-weight:500;white-space:pre-wrap;word-wrap:break-word;display:flex;flex-direction:column;gap:.5rem}.excalidraw .chat-message__error_message{background:var(--color-warning-background);border-radius:var(--border-radius-md);color:var(--color-warning-color);font-size:.875rem;margin-top:1rem;padding:.5rem .75rem}.excalidraw .chat-message__error-link{align-items:center;background:none;border:none;color:var(--link-color);cursor:pointer;display:flex;font-family:inherit;font-size:.875rem;font-weight:500;margin-top:1rem;padding:0;text-decoration:underline}.excalidraw .chat-message__error-link:hover{color:var(--link-color-hover)}.excalidraw .chat-message__error-link:active{color:var(--link-color-active)}.excalidraw .chat-message__error-link:disabled{cursor:not-allowed;text-decoration:none}@keyframes typing{0%,80%,to{opacity:.4;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.excalidraw .Modal.Dialog.ttd-dialog{padding:1.25rem}.excalidraw .Modal.Dialog.ttd-dialog.Dialog--fullscreen{margin-top:0}.excalidraw .Modal.Dialog.ttd-dialog .Island{display:flex;flex:1 1 auto;flex-direction:column;height:100%;padding-inline:0!important}.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{height:100%;max-height:100%;min-height:95vh}@media screen and (min-width:861px){.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{height:100%;max-height:min(950px,100vh - 4rem);min-height:unset}}.excalidraw .Modal.Dialog.ttd-dialog .Dialog__content{flex:1 1 auto}@media screen and (max-width:861px){.excalidraw .Modal.Dialog.ttd-dialog .Dialog__content{margin-top:0!important}}.excalidraw .ttd-dialog-desc{font-size:15px;font-style:italic;font-weight:500;margin:.5rem 0 1.5rem}.excalidraw .ttd-dialog-tabs-root{display:flex;flex-direction:column;height:100%;width:100%}.excalidraw .ttd-dialog-tab-trigger{background-color:transparent;border:0;color:var(--color-on-surface);font-family:inherit;font-size:.875rem;font-weight:600;height:2.875rem;letter-spacing:.4px;margin:0;padding:0 1rem}.excalidraw .ttd-dialog-tab-trigger[data-state=active]{border-bottom:2px solid var(--color-primary)}.excalidraw .ttd-dialog-tab-trigger__content{align-items:center;display:flex}.excalidraw .ttd-dialog-tab-trigger__badge{align-items:center;background:var(--color-promo);border-radius:12px;color:var(--color-surface-lowest);display:flex;font-size:10px;justify-content:center;margin-left:10px;padding:1px 6px}.excalidraw .ttd-dialog-triggers{border-bottom:1px solid var(--color-surface-high);margin-bottom:1rem;padding-inline:2.5rem}@media screen and (max-width:861px){.excalidraw .ttd-dialog-triggers{margin-bottom:1rem}}.excalidraw .ttd-dialog-content{display:flex;flex-direction:column;height:100%;outline:none;overflow:visible;padding-inline:2.5rem}.excalidraw .ttd-dialog-content[hidden]{display:none}@media screen and (max-width:861px){.excalidraw .ttd-dialog-content{flex-grow:1;padding-inline:1rem}}.excalidraw .ttd-dialog-panel__header .dropdown-menu{left:auto;margin:0;min-width:280px;right:0;z-index:2}.excalidraw .ttd-dialog-panel__header .dropdown-menu .dropdown-menu-container.dropdown-menu-container{background-color:var(--island-bg-color-alt);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);height:-moz-fit-content;height:fit-content;max-height:min(400px,70vh);overflow-y:auto;padding-inline:.5rem!important;padding-bottom:.5rem;padding-top:.5rem}.excalidraw .ttd-dialog-layout{display:grid;grid-template-columns:1fr 1fr;height:100%}.excalidraw .ttd-dialog-layout--split{gap:2rem;min-width:0}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split{grid-template-columns:1fr;grid-template-rows:1fr auto;grid-row-gap:0}}.excalidraw .ttd-dialog-layout--split .ttd-dialog-chat-panel{min-width:0}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split .ttd-dialog-chat-panel{flex:0 0 auto;height:auto;min-height:250px;width:100%}}.excalidraw .ttd-dialog-layout--split .ttd-dialog-preview-panel{min-width:0;overflow:hidden}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split .ttd-dialog-preview-panel{flex:0 0 auto;height:unset;max-width:100%;min-height:280px;width:100%}}.excalidraw .ttd-dialog-layout--chat-only{grid-template-columns:1fr}.excalidraw .ttd-dialog-layout--chat-only .invisible{display:none}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--chat-only .ttd-dialog-chat-panel{height:unset}.excalidraw .ttd-dialog-layout--chat-only .chat-interface{max-height:100%}.excalidraw .ttd-dialog-layout--chat-only .chat-interface__messages{max-height:unset}}.excalidraw .ttd-dialog-input{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;font-family:monospace;height:10rem;padding:.85rem;resize:none;text-wrap:wrap!important;white-space:pre-wrap;width:auto}@media screen and (min-width:861px){.excalidraw .ttd-dialog-input{height:100%;width:100%}}.excalidraw .ttd-dialog-input--loading{align-items:center;display:flex;justify-content:center}.excalidraw .ttd-dialog-input--codemirror{flex:1 1 0;height:0;min-height:0;overflow:hidden;padding:0}.excalidraw .ttd-dialog-input--codemirror .cm-editor{font-family:monospace;height:100%}.excalidraw .ttd-dialog-input--codemirror .cm-editor.cm-focused{outline:none}.excalidraw .ttd-dialog-input--codemirror .cm-scroller{overflow:auto;padding:.85rem 0}.excalidraw .ttd-dialog-input--codemirror .cm-gutters{padding-left:.25rem}.excalidraw .ttd-dialog-input--codemirror .cm-content{padding:0}.excalidraw .ttd-dialog-input--codemirror .cm-placeholder{color:var(--color-gray-40);font-style:italic}.excalidraw .ttd-dialog-output-wrapper{align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;height:400px;justify-content:center;max-height:100%;max-width:100%;overflow:hidden;position:relative;width:auto}@media screen and (max-width:600px){.excalidraw .ttd-dialog-output-wrapper{height:200px}}@media screen and (max-width:861px){.excalidraw .ttd-dialog-output-wrapper{max-width:100%;width:100%}}.excalidraw .ttd-dialog-output-wrapper--error{background:none;border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg)}.excalidraw .ttd-dialog-output-wrapper canvas{height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.excalidraw .ttd-dialog-output-canvas-container{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:100%}.excalidraw .ttd-dialog-output-canvas-container.invisible{pointer-events:none;visibility:hidden}.excalidraw .ttd-dialog-output-canvas-content{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;width:100%}.excalidraw .ttd-dialog-output-canvas-content canvas{image-rendering:auto}.excalidraw .ttd-dialog-output-error{align-items:center;display:flex;justify-content:center;padding:2rem;position:absolute;z-index:10}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-content{align-items:center;background:var(--color-surface-primary);display:flex;flex-direction:column;gap:1rem;padding:2.5rem 2rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-icon{align-items:center;color:var(--color-danger);display:flex;justify-content:center}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-icon svg{height:52px;stroke-width:1.5;width:52px}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-title{color:var(--color-danger);font-size:1.25rem;font-weight:600;margin-top:.25rem;text-align:center}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary{color:var(--color-gray-50);font-size:.9rem;max-width:640px;text-align:left;width:100%}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__headline{color:var(--color-gray-60);font-weight:600}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__label{font-weight:500;margin-top:.35rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__causes{margin:.35rem 0 0;padding-left:2rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-message{color:var(--color-gray-50);font-family:monospace;font-weight:400;max-width:640px;text-align:left;white-space:pre-wrap;width:100%;word-break:break-word}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-message__caret{color:var(--color-danger)}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-autofix-slot{align-items:flex-start;align-self:flex-start;display:flex;margin-top:.35rem;min-height:2.5rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-autofix{margin-top:0;white-space:nowrap}.excalidraw .ttd-dialog-panels{height:100%}@media screen and (min-width:861px){.excalidraw .ttd-dialog-panels{display:grid;gap:2rem;grid-template-columns:1fr 1fr}}.excalidraw .ttd-dialog-chat-panel,.excalidraw .ttd-dialog-preview-panel{align-items:stretch;display:flex;flex-direction:column;height:100%;min-width:0;width:100%}.excalidraw .ttd-dialog-panel{display:flex;flex-direction:column;height:100%;width:100%}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel{height:50%}}.excalidraw .ttd-dialog-panel__header{align-items:center;display:flex;flex-shrink:0;gap:.3rem;height:36px;margin-bottom:.5rem;margin-top:.2rem}.excalidraw .ttd-dialog-panel__header label{font-size:14px;font-style:normal;font-weight:600;line-height:22px}.excalidraw .ttd-dialog-panel__label-wrapper{align-items:center;display:flex;justify-content:space-between;width:100%}.excalidraw .ttd-dialog-panel__label-group{display:flex;gap:5px}.excalidraw .ttd-dialog-panel__header-right{align-items:center;display:flex;gap:.75rem}.excalidraw .ttd-dialog-panel__rate-limit{font-size:.75rem;font-weight:500;white-space:nowrap}.excalidraw .ttd-dialog-panel__rate-limit--danger{color:var(--color-danger)}.excalidraw .ttd-dialog-panel__menu-wrapper{position:relative}.excalidraw .ttd-dialog-panel__menu-wrapper .ttd-dialog-menu-trigger{height:40px;width:40px}.excalidraw .ttd-dialog-panel__menu-wrapper .dropdown-menu{margin-top:.375rem;right:0}.excalidraw .ttd-dialog-panel textarea{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;font-family:monospace;height:100%;padding:.85rem;resize:none;white-space:pre-wrap;width:100%}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel textarea{width:auto}}.excalidraw .ttd-dialog-panel-button-container{align-items:center;display:flex;flex-grow:0;flex-shrink:0;height:40px;margin-bottom:.5rem;margin-top:1rem}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-button-container{margin-top:.5rem}}.excalidraw .ttd-dialog-panel-button-container.invisible{visibility:hidden}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-button-container.invisible{display:none}}.excalidraw .ttd-dialog-panel-button.excalidraw-button{background-color:var(--color-primary);color:#fff;font-family:inherit;font-size:12px;font-weight:600;height:2.5rem;width:100%}.excalidraw .ttd-dialog-panel-button.excalidraw-button:hover{background-color:var(--color-primary-darker)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:active{background-color:var(--color-primary-darkest)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled{cursor:not-allowed;opacity:.5}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled:hover{background-color:var(--color-primary)}@media screen and (min-width:861px){.excalidraw .ttd-dialog-panel-button.excalidraw-button{min-width:7.5rem;width:auto}}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button.excalidraw-button{color:var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button{position:relative}.excalidraw .ttd-dialog-panel-button div{display:contents}.excalidraw .ttd-dialog-panel-button div.invisible{visibility:hidden}.excalidraw .ttd-dialog-panel-button div.Spinner{display:flex!important;inset:0;position:absolute;--spinner-color:#fff}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button div.Spinner{--spinner-color:var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button div span{display:flex;padding-left:.5rem}.excalidraw .ttd-dialog-submit-shortcut{display:flex;font-size:.625rem;gap:.125rem;margin-inline-start:.5rem;opacity:.6}.excalidraw .ttd-dialog-submit-shortcut__key{border:1px solid gray;border-radius:4px;padding:2px 3px}.excalidraw .ttd-dialog-panel-action-link{align-items:center;background:none;border:none;color:var(--color-primary);display:flex;font-family:inherit;font-weight:500;gap:.25rem;height:40px}.excalidraw .ttd-dialog-panel-action-link__icon{align-items:center;display:inline-flex}.excalidraw .ttd-dialog-panel-action-link__icon svg{height:12px;width:12px}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-action-link{height:unset}}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;display:flex;justify-content:space-between;margin-top:1px;padding:.25rem .5rem;position:relative;width:unset}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:hover{background-color:var(--button-hover-bg)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:active{border:1px solid var(--button-active-border)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item--active{background-color:var(--color-surface-primary-container)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:hover .ttd-chat-menu-item__delete{visibility:visible}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;margin-left:.5rem;padding:.25rem;visibility:hidden}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete:hover{color:var(--color-danger)}.excalidraw.theme--dark.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete svg{color:var(--color-on-surface)}.excalidraw.theme--dark.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete:hover svg{color:var(--color-danger)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete svg{height:16px;width:16px}.excalidraw .ttd-dialog-preview-panel--hidden{display:none}.excalidraw .ttd-chat-history-menu{align-items:center;display:flex;gap:1rem}.excalidraw .ElementLinkDialog{background-color:var(--island-bg-color);border-radius:10px;box-shadow:var(--shadow-island);display:flex;flex-direction:column;justify-content:space-between;left:var(--editor-container-padding);padding:1.5rem;position:absolute;top:var(--editor-container-padding);z-index:var(--zIndex-modal)}.excalidraw--mobile.excalidraw .ElementLinkDialog{box-sizing:border-box;left:0;margin-left:.5rem;margin-right:.5rem;width:calc(100% - 1rem);z-index:5}.excalidraw .ElementLinkDialog .ElementLinkDialog__header{margin-bottom:1.5rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__header h2{margin-bottom:.5rem;margin-top:0}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header h2{font-size:1.25rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__header p{margin:0}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header p{font-size:.875rem}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header{margin-bottom:1rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input{display:flex}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__input-field{flex:1}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove{color:#c92a2a;margin-left:1rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove .ToolIcon__icon{height:2rem;width:2rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove .ToolIcon__icon svg{color:#fa5252}.excalidraw .ElementLinkDialog .ElementLinkDialog__actions{display:flex;justify-content:flex-end;margin-top:1.5rem}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__actions{font-size:.875rem;margin-top:1rem}.excalidraw .HelpDialog .Modal__content{max-width:960px}.excalidraw .HelpDialog h3{font-size:1.125rem;font-weight:700;margin:1.5rem 0}.excalidraw .HelpDialog__header{display:flex;flex-wrap:wrap;gap:.75rem}.excalidraw .HelpDialog__btn{--background:var(--color-surface-mid);align-items:center;background-color:var(--background);border:1px solid var(--background);border-radius:var(--border-radius-lg);color:var(--text-primary-color);column-gap:.5rem;display:flex;font-size:.75rem;font-weight:600;letter-spacing:.4px;padding:.625rem 1rem}.excalidraw.theme--dark.excalidraw .HelpDialog__btn{--background:var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .HelpDialog__btn:hover{--background:#363541}.excalidraw .HelpDialog__btn:hover{--background:var(--color-surface-high);text-decoration:none}.excalidraw .HelpDialog__btn:active{border-color:var(--color-primary)}.excalidraw .HelpDialog__link-icon{line-height:0}.excalidraw .HelpDialog__link-icon svg{height:1rem;width:1rem}.excalidraw .HelpDialog__islands-container{display:grid;grid-column-gap:1.5rem;grid-row-gap:2rem}@media screen and (min-width:1024px){.excalidraw .HelpDialog__islands-container{grid-template-columns:1fr 1fr}.excalidraw .HelpDialog__island--tools{grid-area:1/1/2/2}.excalidraw .HelpDialog__island--view{grid-area:2/1/3/2}.excalidraw .HelpDialog__island--editor{grid-area:1/2/3/3}}.excalidraw .HelpDialog__island h4{font-size:1rem;font-weight:700;margin:0 0 .625rem}.excalidraw .HelpDialog__island-content{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg)}.excalidraw .HelpDialog__shortcut{align-items:center;border-bottom:1px solid var(--dialog-border-color);column-gap:.5rem;display:flex;font-size:.875rem;justify-content:space-between;padding:.375rem .75rem}.excalidraw .HelpDialog__shortcut:last-child{border-bottom:none}.excalidraw .HelpDialog__key-container{align-items:center;column-gap:.25rem;display:flex;flex-shrink:0}.excalidraw .HelpDialog__key{align-items:center;background-color:var(--color-primary-light);border-radius:var(--border-radius-md);box-sizing:border-box;display:flex;font-family:inherit;font-size:.625rem;line-height:1;padding:.5rem;word-break:keep-all}.excalidraw .HintViewer{box-sizing:border-box;color:var(--text-primary-color);display:flex;flex-direction:column;font-size:.75rem;justify-content:center;left:0;margin-top:.5rem;max-width:100%;pointer-events:none;position:absolute;text-align:center;top:100%;width:100%}.excalidraw--mobile.excalidraw .HintViewer{padding-right:2rem;position:static}.excalidraw .HintViewer>span{padding:.25rem}.excalidraw .HintViewer kbd{border:1px solid var(--color-gray-40);border-radius:4px;display:inline-block;font-family:monospace;font-size:10px;margin:0 1px;padding:1px 3px}.excalidraw.theme--dark .HintViewer{color:var(--color-gray-60)}.excalidraw.theme--dark .HintViewer kbd{border-color:var(--color-gray-60)}.excalidraw{--Switch-disabled-color:var(--color-border-outline);--Switch-disabled-toggled-background:var(--color-border-outline-variant);--Switch-disabled-border:var(--color-border-outline-variant);--Switch-track-background:var(--island-bg-color);--Switch-thumb-background:var(--color-on-surface);--Switch-hover-background:var(--color-brand-hover);--Switch-active-background:var(--color-brand-active)}.excalidraw .Switch{background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-color);border-radius:12px;box-sizing:border-box;height:20px;position:relative;transition-duration:.15s;transition-property:background,border;transition-timing-function:ease-out;width:40px}.excalidraw .Switch:hover{background:var(--Switch-track-background);border:1px solid var(--Switch-hover-background)}.excalidraw .Switch:active{border:1px solid var(--Switch-active-background)}.excalidraw .Switch.toggled{background:var(--color-primary);border:1px solid var(--color-primary)}.excalidraw .Switch.toggled:hover{background:var(--color-primary-darker);border:1px solid var(--color-primary-darker)}.excalidraw .Switch.disabled{background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-border)}.excalidraw .Switch.disabled.toggled{background:var(--Switch-disabled-toggled-background);border:1px solid var(--Switch-disabled-toggled-background)}.excalidraw .Switch:before{background:var(--Switch-thumb-background);border-radius:100%;box-sizing:border-box;content:"";display:block;height:10px;left:4px;pointer-events:none;position:absolute;top:4px;transition:all .15s ease-out;width:10px}.excalidraw .Switch:active:before{width:12px}.excalidraw .Switch.toggled:before{background:var(--Switch-track-background);height:14px;left:22px;top:2px;width:14px}.excalidraw .Switch.toggled:active:before{left:20px;width:16px}.excalidraw .Switch.disabled.toggled:before,.excalidraw .Switch.disabled:before{background:var(--Switch-disabled-color)}.excalidraw .Switch input{-webkit-appearance:none;appearance:none;border-radius:12px;cursor:pointer;height:100%;margin:0;width:100%}.excalidraw .Switch input:disabled{cursor:unset}.excalidraw{--ImageExportModal-preview-border:#d6d6d6}.excalidraw.theme--dark{--ImageExportModal-preview-border:#5c5c5c}.excalidraw .ImageExportModal{display:flex;flex-direction:row;justify-content:space-between;-webkit-user-select:none;user-select:none}.excalidraw .ImageExportModal h3{font-family:Assistant;font-size:1.313rem;font-style:normal;font-weight:700;line-height:130%;margin:0;padding:0}.excalidraw .ImageExportModal>h3,.excalidraw--mobile.excalidraw .ImageExportModal h3{display:none}.excalidraw--mobile.excalidraw .ImageExportModal>h3{display:block}.excalidraw--mobile.excalidraw .ImageExportModal{flex-direction:column;height:calc(100vh - 5rem)}.excalidraw .ImageExportModal__preview{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;height:360px;margin-right:1.5rem;width:55%}.excalidraw--mobile.excalidraw .ImageExportModal__preview{flex-grow:1;height:unset;margin-right:unset;max-width:unset;width:100%}.excalidraw .ImageExportModal__preview__filename>input{margin-top:1rem}.excalidraw .ImageExportModal__preview__canvas{align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;border:1px solid var(--ImageExportModal-preview-border);border-radius:12px;box-sizing:border-box;display:flex;flex-grow:1;height:100%;justify-content:center;overflow:hidden;padding:1rem;width:100%}.excalidraw .ImageExportModal__preview__canvas>canvas{filter:none!important;max-height:calc(100% - 2rem);max-width:calc(100% - 2rem)}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas>canvas{max-height:100%}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas{margin-top:24px;max-width:unset}.excalidraw .ImageExportModal__settings{display:flex;flex-direction:column;flex-wrap:wrap;gap:18px}.excalidraw--mobile.excalidraw .ImageExportModal__settings{align-content:flex-start;flex-direction:row;gap:6px 34px;margin-left:unset;margin-top:1rem}.excalidraw .ImageExportModal__settings__setting{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.excalidraw--mobile.excalidraw .ImageExportModal__settings__setting{align-items:start;flex-direction:column;height:52px;justify-content:unset}.excalidraw .ImageExportModal__settings__setting__label{align-items:center;display:flex;flex-direction:row;font-family:Assistant;font-size:1rem;font-weight:600;line-height:150%}.excalidraw .ImageExportModal__settings__setting__label svg{height:20px;margin-left:10px;width:20px}.excalidraw .ImageExportModal__settings__setting__content{align-items:center;display:flex;height:100%}.excalidraw .ImageExportModal__settings__buttons{align-content:flex-end;align-items:flex-end;display:flex;flex-direction:row;flex-grow:1;flex-wrap:wrap;gap:11px}.excalidraw--mobile.excalidraw .ImageExportModal__settings__buttons{flex-basis:100%;justify-content:center;padding-top:32px}.excalidraw .Card{align-items:center;display:flex;flex-direction:column;margin:1em;max-width:290px;text-align:center}.excalidraw .Card .Card-icon{background:var(--card-color);border-radius:50%;color:#fff;display:flex;flex:0 0 auto;font-size:2.6em;padding:1.4rem}.excalidraw .Card .Card-icon svg{height:2.8rem;width:2.8rem}.excalidraw .Card .Card-details{font-size:.96em;margin-bottom:auto;min-height:90px;padding:0 1em}.excalidraw .Card .Card-button.ToolIcon_type_button{background-color:var(--card-color);height:2.5rem;margin-bottom:.3em;margin-top:1em}.excalidraw .Card .Card-button.ToolIcon_type_button:hover{background-color:var(--card-color-darker)}.excalidraw .Card .Card-button.ToolIcon_type_button:active{background-color:var(--card-color-darkest)}.excalidraw .Card .Card-button.ToolIcon_type_button .ToolIcon__label{color:#fff}.excalidraw .Card .Card-button.ToolIcon_type_button .Spinner{--spinner-color:#fff}.excalidraw .ExportDialog__preview{--preview-padding:calc(var(--space-factor)*4);align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;display:flex;justify-content:center;margin-bottom:calc(var(--space-factor)*3);padding:var(--preview-padding);text-align:center}.excalidraw .ExportDialog__preview canvas{max-height:25rem;max-width:calc(100% - var(--preview-padding)*2)}.excalidraw.theme--dark .ExportDialog__preview canvas{filter:none}.excalidraw .ExportDialog__actions{display:flex;width:100%;grid-gap:calc(var(--space-factor)*2);align-items:top;justify-content:space-between}.excalidraw--mobile.excalidraw .ExportDialog{display:flex;flex-direction:column}.excalidraw--mobile.excalidraw .ExportDialog__actions{align-items:center;flex-direction:column}.excalidraw--mobile.excalidraw .ExportDialog__actions>*{margin-bottom:calc(var(--space-factor)*3)}.excalidraw--mobile.excalidraw .ExportDialog__preview canvas{max-height:30vh}.excalidraw--mobile.excalidraw .ExportDialog__dialog,.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{box-sizing:border-box;height:100%}.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{overflow-y:auto}.excalidraw .ExportDialog--json .ExportDialog-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-items:center;row-gap:2em}@media(max-width:460px){.excalidraw .ExportDialog--json .ExportDialog-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.excalidraw .ExportDialog--json .ExportDialog-cards .Card-details{min-height:40px}}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName{align-items:flex-start;flex-direction:column;margin:1em auto;width:-moz-fit-content;width:fit-content}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName .TextInput{width:auto}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName-label{font-weight:700;margin:.625em 0}.excalidraw button.ExportDialog-imageExportButton{align-items:center;background-color:var(--button-color);border:0;border-radius:1rem;box-shadow:0 3px 5px -1px rgba(0,0,0,.28),0 6px 10px 0 rgba(0,0,0,.14);color:#fff;display:flex;font-family:Cascadia;font-size:1.8em;height:5rem;justify-content:center;margin:0 .2em;padding:0;width:5rem}.excalidraw button.ExportDialog-imageExportButton:hover{background-color:var(--button-color-darker)}.excalidraw button.ExportDialog-imageExportButton:active{background-color:var(--button-color-darkest);box-shadow:none}.excalidraw button.ExportDialog-imageExportButton svg{width:.9em}.excalidraw .layer-ui__wrapper.animate{transition:width .1s ease-in-out}.excalidraw .layer-ui__wrapper{height:100%;pointer-events:none;position:absolute;width:100%;z-index:var(--zIndex-layerUI)}.excalidraw .layer-ui__wrapper__top-right{display:flex;justify-content:flex-end;pointer-events:none!important;width:100%}.excalidraw .layer-ui__wrapper__top-right--compact{gap:.5rem}.excalidraw .layer-ui__wrapper__top-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper__footer{width:100%}.excalidraw .layer-ui__wrapper__footer-right{display:flex;z-index:100}.excalidraw .layer-ui__wrapper .zen-mode-transition{transition:transform .5s ease-in-out}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(-999px)}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right,:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(999px)}:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right{transform:translate(-999px)}.excalidraw .layer-ui__wrapper .zen-mode-transition.layer-ui__wrapper__footer-left--transition-bottom{transform:translateY(92px)}.excalidraw .layer-ui__wrapper .disable-zen-mode{background-color:var(--island-bg-color);border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);bottom:0;color:var(--text-primary-color);font-family:var(--ui-font);font-size:.75rem;font-weight:500;line-height:1;opacity:0;padding:10px;position:absolute;transition:visibility 0s linear 0s,opacity .5s;visibility:hidden}[dir=ltr] .excalidraw .layer-ui__wrapper .disable-zen-mode{right:1rem}[dir=rtl] .excalidraw .layer-ui__wrapper .disable-zen-mode{left:1rem}.excalidraw .layer-ui__wrapper .disable-zen-mode:hover{background-color:var(--button-hover-bg)}.excalidraw .layer-ui__wrapper .disable-zen-mode:active{border-color:var(--color-primary)}.excalidraw .layer-ui__wrapper .disable-zen-mode--visible{opacity:1;pointer-events:var(--ui-pointerEvents);transition:visibility 0s linear .3s,opacity .5s;transition-delay:.8s;visibility:visible}.excalidraw .layer-ui__wrapper .footer-center>*,.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-left>*,.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right{margin-bottom:auto;margin-top:auto}.excalidraw .disable-view-mode{align-items:center;background-color:var(--island-bg-color);background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface))!important;cursor:pointer;display:flex;font-family:var(--ui-font);font-size:.8333rem;height:var(--mobile-action-button-size,var(--default-button-size));justify-content:center;padding:.5rem;text-decoration:none!important;width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .disable-view-mode:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .disable-view-mode:hover{background-color:var(--color-primary);color:#fff!important}.excalidraw .disable-view-mode:active{background-color:var(--color-primary-darker)}.excalidraw .disable-view-mode svg{height:20px;width:20px}.excalidraw .theme--dark .plus-banner:hover{color:#000!important}.excalidraw .App-toolbar--compact .ToolIcon__keybinding,.excalidraw .App-toolbar.zen-mode .HintViewer,.excalidraw .App-toolbar.zen-mode .ToolIcon__keybinding{display:none}.excalidraw .App-toolbar--compact .App-toolbar__divider{margin:0}.excalidraw .App-toolbar__divider{align-self:center;background-color:var(--default-border-color);height:1.5rem;margin:0 .25rem;width:1px}.excalidraw--mobile.excalidraw .App-toolbar__divider{margin:0}.excalidraw .App-toolbar__extra-tools-trigger{background-color:transparent;border:0;box-shadow:none}.excalidraw .App-toolbar__extra-tools-trigger:active{background-color:var(--button-hover-bg);box-shadow:0 0 0 1px var(--button-active-border,var(--color-primary-darkest)) inset}.excalidraw .App-toolbar__extra-tools-trigger:hover{background-color:transparent}.excalidraw .App-toolbar__extra-tools-trigger--selected,.excalidraw .App-toolbar__extra-tools-trigger--selected:hover{background:var(--color-primary-light);color:var(--color-primary)}.excalidraw .App-toolbar__extra-tools-dropdown{margin-top:.375rem;min-width:11.875rem;right:0;z-index:1}.excalidraw .SVGLayer{height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:var(--zIndex-svgLayer)}.excalidraw .SVGLayer svg{height:100%;image-rendering:auto;left:0;overflow:visible;position:absolute;top:0;width:100%}.excalidraw .UnlockPopup{align-items:center;background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);color:var(--color-gray-60);cursor:pointer;display:flex;gap:.5rem;justify-content:center;padding:.8rem;position:absolute;z-index:var(--zIndex-interactiveCanvas)}.excalidraw .UnlockPopup:focus{outline:none}.excalidraw .UnlockPopup svg{color:var(--color-gray-60);display:block;height:1.25rem;width:1.25rem}.excalidraw .UnlockPopup:hover svg{color:var(--color-primary)}.excalidraw .UnlockPopup:active svg{transform:scale(.95)}.footer-center{display:flex;justify-content:flex-start;margin-inline-end:.6rem;pointer-events:none;width:100%}.footer-center>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .collab-button{--button-bg:var(--color-primary);--button-color:var(--color-surface-lowest);--button-border:var(--color-primary);--button-width:var(--lg-button-size);--button-height:var(--lg-button-size);--button-hover-bg:var(--color-primary-darker);--button-hover-border:var(--color-primary-darker);--button-active-bg:var(--color-primary-darker);box-shadow:0 0 0 1px var(--color-surface-lowest);flex-shrink:0}.excalidraw .collab-button.active.active{background-color:#0fb884;border-color:#0fb884}.excalidraw .collab-button.active.active svg{color:#fff}.excalidraw .collab-button.active.active:active,.excalidraw .collab-button.active.active:hover{background-color:#0fb884;border-color:#0fb884}.excalidraw .CollabButton.is-collaborating{background-color:var(--button-special-active-bg-color)}.excalidraw .CollabButton.is-collaborating .ToolIcon__icon svg,.excalidraw .CollabButton.is-collaborating .ToolIcon__label{color:var(--icon-green-fill-color)}.excalidraw .CollabButton-collaborators{background-color:#b2f2bb;border-radius:50%;bottom:-5px;color:#2b8a3e;font-family:Cascadia;font-size:.6rem;line-height:1;min-height:1em;min-width:1em;padding:3px;position:absolute}:root[dir=ltr] .excalidraw .CollabButton-collaborators{right:-5px}:root[dir=rtl] .excalidraw .CollabButton-collaborators{left:-5px}.excalidraw .ExcalidrawLogo{--logo-icon--mobile:1rem;--logo-text--mobile:0.75rem;--logo-icon--xs:2rem;--logo-text--xs:1.5rem;--logo-icon--small:2.5rem;--logo-text--small:1.75rem;--logo-icon--normal:3rem;--logo-text--normal:2.2rem;--logo-icon--large:90px;--logo-text--large:65px;align-items:center;display:flex}.excalidraw .ExcalidrawLogo svg{flex:0 0 auto}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-icon{color:var(--color-logo-icon);width:auto}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-text{color:var(--color-logo-text);margin-left:.75rem;width:auto}.excalidraw .ExcalidrawLogo.is-mobile .ExcalidrawLogo-icon{height:var(--logo-icon--mobile)}.excalidraw .ExcalidrawLogo.is-mobile .ExcalidrawLogo-text{height:var(--logo-text--mobile);margin-left:.5rem}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-icon{height:var(--logo-icon--xs)}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-text{height:var(--logo-text--xs)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-icon{height:var(--logo-icon--small)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-text{height:var(--logo-text--small)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-icon{height:var(--logo-icon--normal)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-text{height:var(--logo-text--normal)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-icon{height:var(--logo-icon--large)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-text{height:var(--logo-text--large)}.excalidraw .excalifont{font-family:Excalifont,Xiaolai}.excalidraw .welcome-screen-decor{color:var(--color-gray-40);pointer-events:none}.excalidraw .welcome-screen-decor a{--color:var(--color-primary);color:var(--color);margin-bottom:-6px;text-decoration:none}.excalidraw.theme--dark .welcome-screen-decor{color:var(--color-gray-60)}@media(max-height:780px){.excalidraw .welcome-screen-decor-hint{display:none!important}}@media(max-width:1024px),(max-width:800px){.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--help,.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--menu{display:none}}.excalidraw .welcome-screen-decor-hint--help{bottom:100%;display:flex;position:absolute;right:0}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help{left:0;right:auto}.excalidraw .welcome-screen-decor-hint--help svg{height:71px;margin-top:.5rem;transform:scaleX(-1) rotate(80deg);width:85px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help svg{transform:rotate(80deg)}.excalidraw .welcome-screen-decor-hint--toolbar{align-items:baseline;display:flex;left:50%;margin-top:2.5rem;position:absolute;top:100%;transform:translateX(-50%)}.excalidraw .welcome-screen-decor-hint--toolbar .welcome-screen-decor-hint__label{position:relative;top:-.5rem;width:120px}.excalidraw .welcome-screen-decor-hint--toolbar svg{height:78px;width:38px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--toolbar svg{transform:scaleX(-1)}.excalidraw .welcome-screen-decor-hint--menu{align-items:flex-end;display:flex;font-size:1rem;gap:.5rem;margin-top:.25rem;margin-inline-start:.6rem;position:absolute;top:100%;width:320px}.excalidraw .welcome-screen-decor-hint--menu svg{height:94px;width:41px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--menu svg{transform:scaleX(-1)}@media(max-width:860px){.excalidraw .welcome-screen-decor-hint--menu .welcome-screen-decor-hint__label{max-width:160px}}.excalidraw .welcome-screen-center{align-items:center;bottom:1rem;display:flex;flex-direction:column;gap:2rem;justify-content:center;left:1rem;pointer-events:none;position:absolute;right:1rem;top:1rem}.excalidraw .welcome-screen-center__logo{align-items:center;column-gap:.75rem;display:flex;font-size:2.25rem}.excalidraw .welcome-screen-center__heading{font-size:1.125rem;line-height:1.35rem;text-align:center}.excalidraw .welcome-screen-menu{align-items:center;display:flex;flex-direction:column;gap:2px;justify-content:center}.excalidraw .welcome-screen-menu-item{align-items:center;background:none;border:1px solid transparent;border-radius:var(--border-radius-md);box-sizing:border-box;color:var(--color-gray-50);display:grid;font-size:.875rem;grid-template-columns:calc(var(--default-icon-size) + .5rem) 1fr;justify-content:space-between;max-width:400px;min-width:300px;padding:.25rem;pointer-events:var(--ui-pointerEvents);width:100%}.excalidraw .welcome-screen-menu-item__text{align-items:center;column-gap:.5rem;display:flex;margin-right:auto;text-align:left}.excalidraw .welcome-screen-menu-item__icon{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw .welcome-screen-menu-item__shortcut{color:var(--color-gray-40);font-size:.75rem;margin-left:auto}.excalidraw .welcome-screen-menu-item:hover{background:var(--button-hover-bg);text-decoration:none}.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__icon,.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut,.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw .welcome-screen-menu-item:active{background:var(--button-hover-bg);border-color:var(--color-brand-active)}.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__icon,.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__shortcut,.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw.theme--dark .welcome-screen-menu-item,.excalidraw.theme--dark .welcome-screen-menu-item__shortcut{color:var(--color-gray-60)}.excalidraw.theme--dark .welcome-screen-menu-item:hover{background-color:var(--color-surface-low)}.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__icon,.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__shortcut,.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__text,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__icon,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__text{color:var(--color-gray-10)}.excalidraw.excalidraw--mobile .welcome-screen-center{margin-bottom:2rem}@media(max-height:500px),(max-width:320px){.excalidraw .welcome-screen-center{display:none}}.visually-hidden{height:1px;overflow:hidden;position:absolute!important;width:1px;clip:rect(1px,1px,1px,1px);-webkit-user-select:none;user-select:none;white-space:nowrap}.LoadingMessage{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:999}.LoadingMessage .Spinner{font-size:2.8em}.LoadingMessage .LoadingMessage-text{font-size:.8em;margin-top:1em}.LoadingMessage--dark{background-color:#121212;color:#ced4da}.excalidraw{--theme-filter:none;--button-destructive-bg-color:#ffe3e3;--button-destructive-color:#c92a2a;--button-gray-1:#e9ecef;--button-gray-2:#ced4da;--button-gray-3:#adb5bd;--mobile-action-button-bg:hsla(0,0%,100%,.35);--mobile-color-border:var(--default-border-color);--button-special-active-bg-color:#ebfbee;--dialog-border-color:var(--color-gray-20);--dropdown-icon:url('data:image/svg+xml;charset=utf-8,');--focus-highlight-color:#a5d8ff;--icon-fill-color:var(--color-on-surface);--icon-green-fill-color:#2b8a3e;--default-bg-color:#fff;--input-bg-color:#fff;--input-border-color:#ced4da;--input-hover-bg-color:#f1f3f5;--input-label-color:#495057;--island-bg-color:#fff;--island-bg-color-alt:#fff;--keybinding-color:var(--color-gray-40);--link-color:#1c7ed6;--link-color-hover:#1971c2;--link-color-active:#a5d8ff;--overlay-bg-color:hsla(0,0%,100%,.88);--popup-bg-color:var(--island-bg-color);--popup-secondary-bg-color:#f1f3f5;--popup-text-color:#000;--popup-text-inverted-color:#fff;--select-highlight-color:#339af0;--shadow-island:0px 0px 1px 0px rgba(0,0,0,.17),0px 0px 3px 0px rgba(0,0,0,.08),0px 7px 14px 0px rgba(0,0,0,.05);--shadow-island-stronger:0px 0px 1px 0px rgba(0,0,0,.17),0px 0px 3px 0px rgba(0,0,0,.08),0px 7px 14px 0px rgba(0,0,0,.18);--button-hover-bg:var(--color-surface-high);--button-active-bg:var(--color-surface-high);--button-active-border:var(--color-brand-active);--default-border-color:var(--color-surface-high);--default-button-size:2rem;--default-icon-size:1rem;--lg-button-size:2.25rem;--lg-icon-size:1rem;--editor-container-padding:1rem;--mobile-action-button-size:2rem;--scrollbar-thumb:var(--button-gray-2);--scrollbar-thumb-hover:var(--button-gray-3);--color-slider-track:#ccf;--color-slider-thumb:var(--color-gray-80);--modal-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--avatar-border-color:var(--color-gray-20);--sidebar-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--sidebar-border-color:var(--color-surface-high);--sidebar-bg-color:var(--island-bg-color);--library-dropdown-shadow:0px 15px 6px rgba(0,0,0,.01),0px 8px 5px rgba(0,0,0,.05),0px 4px 4px rgba(0,0,0,.09),0px 1px 2px rgba(0,0,0,.1),0px 0px 0px rgba(0,0,0,.1);--chat-msg-shadow:0 1px 2px rgba(0,0,0,.1);--space-factor:0.25rem;--text-primary-color:var(--color-on-surface);--color-selection:#6965db;--color-icon-white:#fff;--color-primary:#6965db;--color-primary-darker:#5b57d1;--color-primary-darkest:#4a47b1;--color-primary-light:#e3e2fe;--color-primary-light-darker:#d7d5ff;--color-primary-hover:#5753d0;--color-gray-10:#f5f5f5;--color-gray-20:#ebebeb;--color-gray-30:#d6d6d6;--color-gray-40:#b8b8b8;--color-gray-50:#999;--color-gray-60:#7a7a7a;--color-gray-70:#5c5c5c;--color-gray-80:#3d3d3d;--color-gray-85:#242424;--color-gray-90:#1e1e1e;--color-gray-100:#121212;--color-disabled:var(--color-gray-40);--color-warning:#fceeca;--color-warning-dark:#f5c354;--color-warning-darker:#f3ab2c;--color-warning-darkest:#ec8b14;--color-text-warning:var(--text-primary-color);--color-danger:#db6965;--color-danger-dark:#db6965;--color-danger-darker:#d65550;--color-danger-darkest:#d1413c;--color-danger-text:#000;--color-danger-background:#fff0f0;--color-danger-icon-background:#ffdad6;--color-danger-color:#700000;--color-danger-icon-color:#700000;--color-warning-background:var(--color-warning);--color-warning-icon-background:var(--color-warning-dark);--color-warning-color:var(--text-primary-color);--color-warning-icon-color:var(--text-primary-color);--color-muted:var(--color-gray-30);--color-muted-darker:var(--color-gray-60);--color-muted-darkest:var(--color-gray-100);--color-muted-background:var(--color-gray-80);--color-muted-background-darker:var(--color-gray-100);--color-promo:var(--color-primary);--color-success:#cafccc;--color-success-darker:#bafabc;--color-success-darkest:#a5eba8;--color-success-text:#268029;--color-success-contrast:#65bb6a;--color-success-contrast-hover:#6bcf70;--color-success-contrast-active:#6edf74;--color-logo-icon:var(--color-primary);--color-logo-text:#190064;--border-radius-md:0.375rem;--border-radius-lg:0.5rem;--color-surface-high:#f1f0ff;--color-surface-mid:#f6f6f9;--color-surface-low:#ececf4;--color-surface-lowest:#fff;--color-on-surface:#1b1b1f;--color-brand-hover:#5753d0;--color-on-primary-container:#030064;--color-brand-active:#4440bf;--color-border-outline:#767680;--color-border-outline-variant:#c5c5d0;--color-surface-primary-container:#e0dfff;--color-badge:#0b6513;--background-color-badge:#d3ffd2}.excalidraw--mobile.excalidraw{--editor-container-padding:0.75rem}@media screen and (min-device-width:1921px){.excalidraw{--lg-button-size:2.5rem;--lg-icon-size:1.25rem;--default-button-size:2.25rem;--default-icon-size:1.25rem}}.excalidraw.theme--dark.theme--dark-background-none{background:none}.excalidraw.theme--dark{--theme-filter:invert(93%) hue-rotate(180deg);--button-destructive-bg-color:#5a0000;--button-destructive-color:#ffa8a8;--button-gray-1:#363636;--button-gray-2:#272727;--button-gray-3:#222;--mobile-action-button-bg:var(--island-bg-color);--mobile-color-border:hsla(0,0%,100%,.85);--button-special-active-bg-color:#204624;--dialog-border-color:var(--color-gray-80);--dropdown-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='292.4' height='292.4' viewBox='0 0 292 292'%3E%3Cpath fill='%23ced4da' d='M287 197 159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13'/%3E%3C/svg%3E");--focus-highlight-color:#228be6;--icon-green-fill-color:#69db7c;--default-bg-color:#121212;--input-bg-color:#121212;--input-border-color:#2e2e2e;--input-hover-bg-color:#181818;--input-label-color:#e9ecef;--island-bg-color:#232329;--island-bg-color-alt:#1b1b22;--keybinding-color:var(--color-gray-60);--link-color:#4dabf7;--overlay-bg-color:rgba(52,58,64,.12);--popup-secondary-bg-color:#222;--popup-text-color:#ced4da;--popup-text-inverted-color:#2c2c2c;--select-highlight-color:#4dabf7;--modal-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--avatar-border-color:var(--color-gray-85);--scrollbar-thumb:#343a40;--scrollbar-thumb-hover:#495057;--color-slider-track:#504d7a;--color-selection:#3530c4;--color-icon-white:var(--color-gray-90);--color-primary:#a8a5ff;--color-primary-darker:#b2aeff;--color-primary-darkest:#beb9ff;--color-primary-light:#4f4d6f;--color-primary-light-darker:#43415e;--color-primary-hover:#bbb8ff;--color-disabled:var(--color-gray-70);--color-text-warning:var(--color-gray-80);--color-danger:#ffa8a5;--color-danger-dark:#672120;--color-danger-darker:#8f2625;--color-danger-darkest:#ac2b29;--color-danger-text:#fbcbcc;--color-danger-background:#fbcbcc;--color-danger-icon-background:#672120;--color-danger-color:#261919;--color-danger-icon-color:#fbcbcc;--color-warning-background:var(--color-warning);--color-warning-icon-background:var(--color-warning-dark);--color-warning-color:var(--color-gray-80);--color-warning-icon-color:var(--color-gray-80);--color-muted:var(--color-gray-80);--color-muted-darker:var(--color-gray-60);--color-muted-darkest:var(--color-gray-20);--color-muted-background:var(--color-gray-40);--color-muted-background-darker:var(--color-gray-20);--color-logo-text:#e2dfff;--color-surface-high:#2e2d39;--color-surface-low:#232329;--color-surface-mid:#18181b;--color-surface-lowest:#121212;--color-on-surface:#e3e3e8;--color-brand-hover:#bbb8ff;--color-on-primary-container:#e0dfff;--color-brand-active:#d0ccff;--color-border-outline:#8e8d9c;--color-border-outline-variant:#46464f;--color-surface-primary-container:#403e6a}:root{--zIndex-canvas:1;--zIndex-interactiveCanvas:2;--zIndex-svgLayer:3;--zIndex-wysiwyg:3;--zIndex-canvasButtons:3;--zIndex-layerUI:4;--zIndex-eyeDropperBackdrop:5;--zIndex-eyeDropperPreview:6;--zIndex-hyperlinkContainer:7;--zIndex-ui-bottom:60;--zIndex-ui-context-menu:90;--zIndex-ui-styles-popup:100;--zIndex-ui-top:100;--zIndex-ui-main-menu:110;--zIndex-ui-library:120;--zIndex-modal:1000;--zIndex-popup:1001;--zIndex-toast:999999;--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left);--sar:env(safe-area-inset-right);--sat:env(safe-area-inset-top)}body.excalidraw-cursor-resize,body.excalidraw-cursor-resize *,body.excalidraw-cursor-resize a:hover{cursor:ew-resize}.excalidraw{--ui-font:Assistant,system-ui,BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;bottom:0;color:var(--text-primary-color);display:flex;font-family:var(--ui-font);height:100%;left:0;overflow:hidden;position:relative;right:0;top:0;-webkit-user-select:none;user-select:none;width:100%}.excalidraw button{font-size:.8333rem}.excalidraw button,.excalidraw label{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.excalidraw button{cursor:pointer;-webkit-user-select:none;user-select:none}.excalidraw:focus{outline:none}.excalidraw .excalidraw-link,.excalidraw a{color:var(--link-color);cursor:pointer;font-weight:500;text-decoration:none;-webkit-user-select:none;user-select:none}.excalidraw .excalidraw-link:hover,.excalidraw a:hover{text-decoration:underline}.excalidraw .excalidraw-link:active,.excalidraw a:active{text-decoration:none}.excalidraw canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;touch-action:none;z-index:var(--zIndex-canvas)}.excalidraw canvas.interactive{filter:var(--theme-filter);z-index:var(--zIndex-interactiveCanvas)}.excalidraw__canvas-wrapper,.excalidraw__canvas.static{pointer-events:none}.excalidraw__canvas{position:absolute}.excalidraw__embeddable{border:0;height:100%;width:100%}.excalidraw__embeddable-container{pointer-events:none;position:absolute;transform-origin:top left;z-index:2}.excalidraw .FixedSideContainer{padding:var(--sat,0) var(--sar,0) var(--sab,0) var(--sal,0)}.excalidraw .panelRow{display:flex;justify-content:space-between}.excalidraw .selected-shape-actions{display:flex;flex-direction:column;row-gap:.75rem}.excalidraw .selected-shape-actions .control-label,.excalidraw .selected-shape-actions h3,.excalidraw .selected-shape-actions legend{color:var(--text-primary-color);display:block;font-size:.75rem;font-weight:400;margin:0 0 .25rem}.excalidraw .selected-shape-actions .control-label input{display:block;width:100%}.excalidraw .selected-shape-actions legend{padding:0}.excalidraw .selected-shape-actions .iconSelectList{flex-wrap:wrap;position:relative}.excalidraw .selected-shape-actions .buttonList{column-gap:.5rem;display:flex;flex-wrap:wrap;row-gap:.5rem}.excalidraw .selected-shape-actions .buttonList label{font-size:.75rem}.excalidraw .selected-shape-actions .buttonList input[type=button],.excalidraw .selected-shape-actions .buttonList input[type=radio]{opacity:0;pointer-events:none;position:absolute}.excalidraw .selected-shape-actions .buttonList .iconRow{margin-top:8px}.excalidraw .selected-shape-actions fieldset{border:none;margin:0;padding:0}.excalidraw .divider{background-color:#e9ecef;margin:1px;width:1px}.excalidraw .buttonList label:focus-within,.excalidraw .dropdown-menu-item:focus-visible,.excalidraw .welcome-screen-menu-item:focus-visible,.excalidraw button:focus-visible,.excalidraw input:focus-visible{box-shadow:0 0 0 1px var(--color-brand-hover);outline:transparent}.excalidraw [data-radix-collection-item]:focus-visible{box-shadow:none!important}.excalidraw .buttonList .ToolIcon__icon{all:unset!important;display:flex!important}.excalidraw .buttonList button{background-color:transparent}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw .buttonList label{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .buttonList .zIndexButton svg,.excalidraw .buttonList button svg,.excalidraw .buttonList label svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .buttonList .zIndexButton:hover,.excalidraw .buttonList button:hover,.excalidraw .buttonList label:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .buttonList .zIndexButton:active,.excalidraw .buttonList button:active,.excalidraw .buttonList label:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .buttonList .zIndexButton.active,.excalidraw .buttonList button.active,.excalidraw .buttonList label.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .buttonList .zIndexButton.active:hover,.excalidraw .buttonList button.active:hover,.excalidraw .buttonList label.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .buttonList .zIndexButton.active svg,.excalidraw .buttonList button.active svg,.excalidraw .buttonList label.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw--mobile.excalidraw .buttonList label{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw .buttonList label{padding:0}.excalidraw .buttonList .zIndexButton svg,.excalidraw .buttonList button svg,.excalidraw .buttonList label svg{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw .App-top-bar{display:flex;flex-direction:column}.excalidraw .App-top-bar,.excalidraw .App-welcome-screen{z-index:var(--zIndex-layerUI)}.excalidraw .App-bottom-bar{bottom:0;left:50%;max-width:450px;position:absolute;transform:translateX(-50%);width:calc(100% - 28px);--bar-padding:calc(var(--space-factor)*4);display:flex;flex-direction:column;justify-content:center;pointer-events:none;z-index:var(--zIndex-ui-bottom)}.excalidraw--tray.excalidraw .App-bottom-bar{align-items:flex-end;flex-direction:row;justify-content:flex-start;left:0;max-width:19rem;transform:none}.excalidraw .App-bottom-bar>.Island{box-sizing:border-box;display:flex;flex-direction:column;max-height:100%;padding:4px;pointer-events:var(--ui-pointerEvents)}.excalidraw .App-toolbar{display:flex;justify-content:center}.excalidraw .App-toolbar .eraser.ToolIcon:hover{--icon-fill-color:#fff;--keybinding-color:#fff}.excalidraw .App-toolbar .eraser.active{background-color:var(--color-primary)}.excalidraw .excalidraw-ui-top-left,.excalidraw .excalidraw-ui-top-right{display:flex;gap:.5rem}.excalidraw .App-toolbar-content{display:flex;flex-direction:column;pointer-events:none}.excalidraw .App-toolbar-content>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .App-toolbar-content .dropdown-menu--tray{bottom:55px;top:auto}.excalidraw--tray.excalidraw .App-toolbar-content{flex-direction:row}.excalidraw .App-toolbar-content label.ToolIcon.is-mobile{background-color:var(--color-surface-low)}.excalidraw .App-mobile-menu{box-sizing:border-box;margin-bottom:var(--bar-padding);overflow-x:visible;overflow-y:auto;width:100%}.excalidraw .App-mobile-menu .selected-shape-actions{padding:8px 8px 0}.excalidraw .App-tray-menu{box-sizing:border-box;margin-bottom:var(--bar-padding);overflow-x:hidden;overflow-y:auto;scrollbar-width:none;width:100%}.excalidraw .App-tray-menu::-webkit-scrollbar{display:none;height:0;width:0}.excalidraw .App-tray-menu .selected-shape-actions{padding:8px 8px 0}.excalidraw .App-menu{color:var(--icon-fill-color);display:grid}.excalidraw .shapes-section{display:flex;justify-content:center;pointer-events:none!important}.excalidraw .shapes-section>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .App-menu_top{grid-template-columns:1fr 2fr 1fr;grid-gap:1rem;align-items:flex-start;cursor:default;pointer-events:none!important}.excalidraw .App-menu_top>*{pointer-events:var(--ui-pointerEvents)}@media(min-width:1536px){.excalidraw .App-menu_top{grid-template-columns:1fr 1fr 1fr;grid-gap:3rem}}.excalidraw .App-menu_top>:first-child{justify-self:flex-start}.excalidraw .selected-shape-actions-container{width:-moz-fit-content;width:fit-content}.excalidraw .selected-shape-actions-container--compact{min-width:48px}.excalidraw .App-menu_top>:last-child{justify-self:flex-end}.excalidraw .App-menu_bottom{align-items:flex-start;bottom:1rem;box-sizing:border-box;cursor:default;display:flex;justify-content:space-between;padding:0 1rem;pointer-events:none!important;position:absolute}.excalidraw .App-menu_bottom--transition-left section{width:185px}.excalidraw .App-menu_bottom section{display:flex}.excalidraw .App-menu_bottom>:first-child{justify-self:flex-start}.excalidraw .App-menu_bottom>:last-child{justify-self:flex-end}.excalidraw .App-menu_left{grid-template-rows:1fr auto 1fr;height:100%}.excalidraw .App-menu_right{grid-template-rows:1fr;height:100%}.excalidraw .App-menu__left{box-sizing:border-box;overflow-y:auto;padding:.75rem;position:absolute;width:12.5rem}.excalidraw .dropdown-select{-webkit-appearance:none;appearance:none;background-color:var(--button-gray-1);background-image:var(--dropdown-icon);background-position:right .7rem top 50%,0 0;background-repeat:no-repeat;background-size:.65em auto,100%;border:1px solid var(--button-gray-2);border-radius:var(--space-factor);color:var(--icon-fill-color);font-family:inherit;font-size:.8rem;height:1.5rem;outline:none;padding:0;padding-inline-end:1.5rem;padding-inline-start:.5rem}:root[dir=rtl] .excalidraw .dropdown-select{background-position:left .7rem top 50%,0 0}.excalidraw .dropdown-select:focus{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .dropdown-select:active,.excalidraw .dropdown-select:hover{background-color:var(--button-gray-2)}.excalidraw .dropdown-select__language{border-color:var(--default-border-color)!important;cursor:pointer;height:2rem}.excalidraw .dropdown-select__language,.excalidraw .dropdown-select__language:hover,.excalidraw .scroll-back-to-content{background-color:var(--island-bg-color)}.excalidraw .scroll-back-to-content{border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);bottom:30px;color:var(--icon-fill-color);font-family:inherit;left:50%;padding:10px 20px;pointer-events:var(--ui-pointerEvents);position:absolute;transform:translateX(-50%)}.excalidraw .scroll-back-to-content:hover{background-color:var(--button-hover-bg)}.excalidraw .scroll-back-to-content:active{border:1px solid var(--button-active-border)}.excalidraw .floating-status-stack{align-items:center;bottom:30px;display:flex;flex-direction:column;gap:.5rem;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.excalidraw .floating-status-stack .scroll-back-to-content{bottom:auto;left:auto;pointer-events:var(--ui-pointerEvents);position:static;transform:none}.excalidraw .help-icon{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size));width:var(--lg-button-size)}.excalidraw .help-icon svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .help-icon:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .help-icon:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .help-icon.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .help-icon.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .help-icon.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .help-icon{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .help-icon:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .help-icon{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .help-icon svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .reset-zoom-button{font-family:var(--ui-font)}.excalidraw .finalize-button{gap:.4em}.excalidraw .eraser-buttons,.excalidraw .finalize-button,.excalidraw .undo-redo-buttons{display:grid;grid-auto-flow:column;margin-bottom:auto;margin-top:auto;margin-inline-start:.6em}.excalidraw--mobile.excalidraw aside{display:none}.excalidraw--mobile.excalidraw .scroll-back-to-content{bottom:calc(100px + var(--sab, 0));z-index:-1}.excalidraw--tray.excalidraw aside{display:none}.excalidraw--tray.excalidraw .scroll-back-to-content{bottom:calc(80px + var(--sab, 0));z-index:-1}:root[dir=rtl] .excalidraw .rtl-mirror{transform:scaleX(-1)}.excalidraw .zen-mode-visibility{height:auto;opacity:1;transition:opacity .5s;visibility:visible;width:auto}.excalidraw .zen-mode-visibility.zen-mode-visibility--hidden{height:0;opacity:0;transition:opacity .5s;visibility:hidden;width:0}.excalidraw .disable-pointerEvents{pointer-events:none!important}.excalidraw.excalidraw--view-mode .App-menu{display:flex;justify-content:space-between}.excalidraw textarea.excalidraw-wysiwyg{border:none;border-radius:0;box-shadow:none;outline:none}.excalidraw input.is-redacted{-webkit-text-security:disc}.excalidraw input[type=text],.excalidraw textarea:not(.excalidraw-wysiwyg){background-color:var(--input-bg-color);border:1.5px solid var(--input-border-color);border-radius:var(--space-factor);color:var(--text-primary-color);padding:.75rem;white-space:nowrap}.excalidraw input[type=text]:not(:focus):hover,.excalidraw textarea:not(.excalidraw-wysiwyg):not(:focus):hover{border-color:var(--color-brand-hover)}.excalidraw input[type=text]:focus,.excalidraw textarea:not(.excalidraw-wysiwyg):focus{border-color:var(--color-brand-hover);outline:none}@media print{.excalidraw .App-bottom-bar,.excalidraw .FixedSideContainer,.excalidraw .layer-ui__wrapper{display:none}}.excalidraw ::-webkit-scrollbar{height:3px;width:4px}.excalidraw select::-webkit-scrollbar{width:10px}.excalidraw ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}.excalidraw ::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.excalidraw ::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb)}.excalidraw .mobile-misc-tools-container{background-color:var(--island-bg-color);border:1px solid var(--sidebar-border-color);border-bottom-left-radius:var(--border-radius-lg);border-right:0;border-top-left-radius:var(--border-radius-lg);display:flex;flex-direction:column;margin-right:3px;overflow:hidden;position:absolute;right:calc(var(--editor-container-padding)*-1);top:calc(5rem - var(--editor-container-padding))}.excalidraw .mobile-misc-tools-container .ToolIcon__icon{border-radius:0;height:2rem;width:2rem}.excalidraw .mobile-misc-tools-container .default-sidebar-trigger{border:0}.excalidraw .tray-misc-tools-container{background-color:var(--island-bg-color);border:1px solid var(--sidebar-border-color);border-bottom-left-radius:var(--border-radius-lg);border-right:0;border-top-left-radius:var(--border-radius-lg);display:flex;flex-direction:column;margin-right:3px;overflow:hidden;position:absolute;right:calc(var(--editor-container-padding)*-1);top:calc(5rem - var(--editor-container-padding))}.excalidraw .tray-misc-tools-container .ToolIcon__icon{border-radius:0;height:2rem;width:2rem}.excalidraw .tray-misc-tools-container .default-sidebar-trigger{border:0}.excalidraw .App-toolbar--mobile{max-width:98vw;overflow:visible}.excalidraw .App-toolbar--mobile .ToolIcon__keybinding{display:block}.excalidraw .App-toolbar--tray{max-width:98vw;overflow:visible}.excalidraw .App-toolbar--tray .ToolIcon__keybinding{display:block}.excalidraw .UserList-Wrapper{border:none;margin:0;padding:0;text-align:left}.excalidraw .UserList-Wrapper legend{display:block;font-size:.75rem;font-weight:400;margin:0 0 .25rem;padding:0}.excalidraw .main-menu{z-index:var(--zIndex-ui-main-menu)}.excalidraw .main-menu-trigger{background-color:var(--color-surface-low);border:none;box-shadow:0 0 0 1px var(--color-surface-lowest)}.excalidraw .main-menu-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .main-menu-trigger{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .App-menu__left,.excalidraw .App-mobile-menu,.excalidraw .App-tray-menu{--button-border:transparent;--button-bg:var(--color-surface-mid)}.excalidraw.theme--dark.excalidraw .App-menu__left,.excalidraw.theme--dark.excalidraw .App-mobile-menu,.excalidraw.theme--dark.excalidraw .App-tray-menu{--button-hover-bg:#363541;--button-bg:var(--color-surface-high)}.excalidraw .App-menu__left .buttonList{padding:.25rem 0}.excalidraw .excalidraw__paragraph{margin:1rem 0}.excalidraw .Modal__content .excalidraw__paragraph+.excalidraw__paragraph,.excalidraw .Modal__content .excalidraw__paragraph:first-child{margin-top:0}.excalidraw .link-button{display:flex;text-decoration:none!important}.ErrorSplash.excalidraw{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:auto;padding:20px 0;-webkit-user-select:text;user-select:text}.ErrorSplash.excalidraw .ErrorSplash-messageContainer{align-items:center;background-color:#ffe3e3;border:3px solid #c92a2a;display:flex;flex-direction:column;justify-content:center;padding:40px}.ErrorSplash.excalidraw .ErrorSplash-paragraph{margin:15px 0;max-width:600px}.ErrorSplash.excalidraw .ErrorSplash-paragraph.align-center{text-align:center}.ErrorSplash.excalidraw .bigger,.ErrorSplash.excalidraw .bigger button{font-size:1.1em}.ErrorSplash.excalidraw .smaller,.ErrorSplash.excalidraw .smaller button{font-size:.9em}.ErrorSplash.excalidraw .ErrorSplash-details{align-items:flex-start;display:flex;flex-direction:column}.ErrorSplash.excalidraw .ErrorSplash-details textarea{font-family:Cascadia;font-size:.8em;margin:10px 0;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable-container__inner{align-items:center;border-radius:var(--embeddable-radius);display:flex;justify-content:center;overflow:hidden}.excalidraw__embeddable-container .excalidraw__embeddable__outer{height:100%;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable__content{height:100%;transform-origin:top left;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable__content,.excalidraw__embeddable-container .excalidraw__embeddable__content>*{border-radius:var(--embeddable-radius)}.excalidraw__embeddable-container .excalidraw__embeddable-hint{align-items:center;background:rgba(0,0,0,.5);border-radius:12px;color:#fff;display:flex;font-family:Assistant;font-weight:700;height:33%;justify-content:center;letter-spacing:.6px;padding:1rem 1.6rem;position:absolute;width:33%;z-index:1}.App{font-family:sans-serif;text-align:center}.excalidraw-wrapper{background-color:var(--background-primary);height:100%;margin:0;position:relative}.context-menu-option__shortcut{background-color:transparent!important}.block-language-excalidraw{text-align:center}.excalidraw .github-corner{display:none}.excalidraw-embedded-img,svg.excalidraw-svg{width:100%}.excalidraw-svg-right-wrap{float:right;margin:0 0 20px 20px;width:100%}.excalidraw-svg-left-wrap{float:left;margin:0 35px 20px 0;width:100%}.excalidraw-svg-right{float:right}.excalidraw-svg-center{margin:auto;text-align:center;width:100%}.excalidraw-svg-left{float:left}div.excalidraw-svg-left,div.excalidraw-svg-right{display:table;width:100%}button.ToolIcon_type_button[title=Export]{display:none}.excalidraw-prompt-div{display:flex;max-width:800px}.excalidraw-prompt-form{display:flex;flex-grow:1}.excalidraw-prompt-input{flex-grow:1}.excalidraw-prompt-button{width:9em}.excalidraw-export-button{margin-left:10px;width:9em}.excalidraw-prompt-buttons-div{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-evenly}.excalidraw-export-buttons-div{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:right}li[data-testid]{border:0!important;margin:0!important;padding:0!important;width:100%!important}.excalidraw .context-menu-option-separator{margin:4px!important}.excalidraw .popover{background-color:transparent!important;border:0!important;overflow-y:auto!important;padding:0!important;position:fixed!important}.disable-zen-mode--visible{color:var(--text-primary-color)}.disable-zen-mode{width:9em!important}.ex-coffee-div{margin-bottom:10px;text-align:center}.excalidraw-mastery-promo{background:linear-gradient(135deg,var(--background-secondary),var(--background-primary));border:1px solid var(--background-modifier-border);border-radius:12px;box-sizing:border-box;margin:0 auto 1rem;max-width:calc(100% - 1.6em);padding:.35rem .75rem;width:calc(100% - 1.6em)}.excalidraw-mastery-promo__summary{align-items:center;cursor:pointer;display:flex;font-size:var(--font-ui-smaller);font-weight:var(--font-medium);gap:1rem;justify-content:space-between;list-style:revert}.excalidraw-mastery-promo__summary-title{color:var(--text-normal);font-size:var(--font-ui-smaller);font-weight:var(--font-medium)}.excalidraw-mastery-promo__summary-title.is-hidden{visibility:hidden}.excalidraw-mastery-promo__summary-state{color:var(--text-muted);font-size:var(--font-ui-smaller)}.excalidraw-mastery-promo__content{align-items:center;display:grid;gap:1rem;grid-template-columns:minmax(0,8rem) minmax(0,1fr);margin-top:.85rem}.excalidraw-mastery-promo__image-link{align-items:center;display:flex;justify-content:center}.excalidraw-mastery-promo__image{display:block;height:auto;max-width:8rem;width:100%}.excalidraw-mastery-promo__text p{line-height:1.5;margin:0 0 .7rem}.excalidraw-mastery-promo__text p:last-child{margin-bottom:0}.excalidraw-mastery-promo__text a{font-weight:var(--font-semibold)}.excalidraw-mastery-promo.is-collapsed{padding-bottom:.35rem}@media (max-width:600px){.excalidraw-mastery-promo__content{grid-template-columns:1fr;text-align:center}.excalidraw-mastery-promo__image{max-width:7rem}}.excalidraw-scriptengine-install td>img{max-width:800px;width:100%}.excalidraw-scriptengine-install img.coffee{width:130px}.excalidraw-scriptengine-install tr{vertical-align:top}.excalidraw-scriptengine-install table{max-width:130ch}.excalidraw-scriptengine-install td.label{font-weight:700;min-width:11ch;padding-right:5px}.excalidraw-scriptengine-install td.data{width:100%}.excalidraw-scriptengine-install .modal-content{max-width:130ch;user-select:text}.excalidraw-scriptengine-install .modal{max-height:90%;width:auto}.excalidraw-prompt-center{text-align:center!important}.excalidraw-prompt-center button{margin:0 10px}.excalidraw-prompt-center.filepath{font-weight:700;margin-bottom:2em;text-align:center}.excalidraw-dirty{color:var(--text-error)}.workspace-leaf-content .excalidraw-view{overflow:hidden;padding:0 1px}.excalidraw-videoWrapper{max-width:600px}.excalidraw-videoWrapper.settings{max-width:340px}.excalidraw-videoWrapper div{height:0;margin:0 auto;padding-bottom:56.25%;position:relative}.excalidraw-videoWrapper.settings iframe{margin-bottom:1rem;position:relative}.excalidraw-videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.excalidraw-release .modal-content{margin-right:-5px;padding-right:5px;user-select:text}.excalidraw-release .modal{max-height:80%;max-width:42em}.excalidraw .Island .scrollbar{--scrollbar-thumb-bg:silver}.excalidraw .ToolIcon__icon img{height:1rem}.excalidraw-scriptengine-install tbody>tr>td>div>img{background-color:silver;height:20px;padding:2px}.excalidraw-scriptengine-install tbody>tr>td>div{display:inline-block;width:50px}.excalidraw-release p>a>img{width:100%}.excalidraw .context-menu-option{box-shadow:none}.excalidraw-colorpicker-overlay{background:transparent;inset:0;position:fixed;z-index:9998}.excalidraw-colorpicker-popup{background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);padding:12px;position:absolute;scrollbar-gutter:stable both-edges;z-index:9999}.excalidraw-colorpicker-grid{display:grid;max-height:260px;overflow-y:auto;padding-right:4px}.excalidraw-colorpicker-swatch{border:1px solid var(--interactive-accent-hover);border-radius:6px;box-sizing:border-box;cursor:pointer;height:32px;width:32px}textarea.excalidraw-wysiwyg{border:none;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:none}.is-mobile .excalidraw button,.is-tablet .excalidraw button{height:1.8rem;padding:initial}.ToolIcon button,.excalidraw button{box-shadow:none;justify-content:normal}.excalidraw{--default-button-size:2rem!important;--default-icon-size:1rem!important;--lg-button-size:1.8rem!important;--lg-icon-size:1rem!important;--editor-container-padding:var(--size-4-2)}.excalidraw .tray-zoom{height:var(--default-button-size);padding-bottom:.05rem;padding-top:.05rem;pointer-events:auto}.excalidraw-container.theme--dark{background-color:#121212;color:#fff}.color-picker-content{max-height:10rem;overflow-y:auto}.excalidraw .ToolIcon__keybinding{font-size:.45rem!important}label.color-input-container>input{max-width:5rem}.excalidraw-hidden{display:none!important}.excalidraw .App-mobile-menu .panelColumn,.excalidraw .App-toolbar-content .dropdown-menu,.excalidraw .selected-shape-actions .panelColumn{max-height:70vh;overflow-y:auto}.excalidraw .App-mobile-menu{width:12.5rem!important}.excalidraw .panelColumn .buttonList{max-width:13rem}.excalidraw input[type=color]{height:1.65rem;width:1.65rem}.excalidraw input[type=color]::-webkit-color-swatch{height:1.65rem}.excalidraw input[type=color]::-webkit-color-swatch-wrapper{padding:0}.excalidraw-settings input[type=text]{min-width:10em}div.excalidraw-draginfo{background:var(--color-base-40);border-radius:5px;color:var(--text-normal);display:block;padding:3px;position:absolute;z-index:1000}.excalidraw :where(.mobile-misc-tools-container,.tray-misc-tools-container) .sidebar-trigger{background-color:unset;border-radius:0;box-shadow:none;--lg-button-size:var(--button-height,var(--default-button-size));&:active,&:hover{background-color:var(--button-hover-bg)}&:active{border:1px solid var(--button-active-border);box-shadow:none}}.excalidraw-sidepanel-container{height:100%}.excalidraw-sidepanel{display:flex;flex-direction:column;gap:0;height:100%}.excalidraw-sidepanel__controls{align-items:center;background-color:var(--background-secondary);border-bottom:1px solid var(--divider-color,var(--background-modifier-border));display:flex;gap:var(--size-4-1);padding:var(--size-4-2) var(--size-4-2)}.excalidraw-sidepanel__select{flex:1}.excalidraw-sidepanel__empty{color:var(--text-muted);padding:.75rem}.excalidraw-sidepanel__body{background-color:var(--background-primary);flex:1;overflow:hidden;position:relative}.excalidraw-sidepanel-tab{display:none;flex-direction:column;height:100%}.excalidraw-sidepanel-tab.is-active{display:flex}.excalidraw-sidepanel-tab__label{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}.excalidraw-sidepanel-tab__content{flex:1;overflow:auto;padding:.5rem}.excalidraw-sidepanel-tab__button{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.35rem;padding:.25rem .55rem}.excalidraw-sidepanel-tab__button.is-active{color:var(--text-normal)}.excalidraw-sidepanel-tab__button.is-active,.excalidraw-sidepanel-tab__button:hover{background:var(--background-primary-alt,var(--background-secondary))}.excalidraw-sidepanel-tab__icon{display:inline-flex}.excalidraw-sidepanel-tab__icon.is-hidden{display:none}.excalidraw-sidepanel-tab__close{background:transparent;border:none;border-radius:4px;color:inherit;display:inline-flex;padding:.1rem}.excalidraw-sidepanel-tab__close:hover{background:var(--background-modifier-hover)}.excalidraw-sidepanel-tab__close.is-hidden{display:none}.excalidraw__embeddable-container .view-header{display:none!important}.excalidraw__embeddable-container input{background:initial}.excalidraw .embeddable-menu{display:block;height:fit-content;position:absolute;transition:opacity var(--anim-duration-fast) ease-in-out;width:fit-content;z-index:var(--zIndex-canvasButtons);&[style*="opacity: 0.2;"]{transition-duration:var(--anim-duration-moderate)}}.excalidraw .welcome-screen-center__logo svg{width:5rem!important}.excalidraw-image-wrapper{text-align:center}.excalidraw-image-wrapper img{margin:auto}.modal-content.excalidraw-scriptengine-install .hit-count{font-size:smaller;margin-left:.5em;white-space:nowrap}.modal-content.excalidraw-scriptengine-install .active-highlight{background-color:var(--color-accent);border:2px solid var(--color-accent-2)}.excalidraw-svg svg a{text-decoration:none}.excalidraw .Modal{background-color:initial;border:initial;height:auto;max-height:none;max-width:none;width:auto}summary.excalidraw-setting-h1{color:var(--h1-color);font-family:var(--h1-font);font-size:var(--h1-size);font-style:var(--h1-style);font-variant:var(--h1-variant);font-weight:var(--h1-weight);letter-spacing:-.015em;line-height:var(--h1-line-height);margin-block-end:var(--p-spacing)}summary.excalidraw-setting-h3{color:var(--h3-color);font-family:var(--h3-font);font-size:var(--h3-size);font-style:var(--h3-style);font-variant:var(--h3-variant);font-weight:var(--h3-weight);letter-spacing:-.015em;line-height:var(--h3-line-height);margin-block-end:var(--p-spacing);margin-block-start:var(--p-spacing)}.modifier-key-header-row{border-top:none;min-height:unset;padding-block:2px}.modifier-key-col-header{color:var(--text-muted);display:inline-flex;font-size:var(--font-smallest);font-weight:var(--font-semibold);justify-content:center;letter-spacing:.03em;width:var(--toggle-width,40px)}summary.excalidraw-setting-h4{color:var(--h4-color);font-family:var(--h4-font);font-size:var(--h4-size);font-style:var(--h4-style);font-variant:var(--h4-variant);font-weight:var(--h4-weight);letter-spacing:-.015em;line-height:var(--h4-line-height);margin-block-end:var(--p-spacing);margin-block-start:var(--p-spacing)}hr.excalidraw-setting-hr{margin:1rem 0 0}.excalidraw-mdEmbed-hideFilename .mod-header{display:none}.excalidraw__embeddable-container .canvas-node:not(.is-editing).transparent{::-webkit-scrollbar,::-webkit-scrollbar-horizontal{display:none}}.excalidraw .canvas-node .ex-md-font-hand-drawn{--font-text:"Virgil"}.excalidraw .canvas-node .ex-md-font-code{--font-text:"Cascadia"}.excalidraw__embeddable-container .workspace-leaf,.excalidraw__embeddable-container .workspace-leaf .view-content{background-color:transparent!important;::-webkit-scrollbar,::-webkit-scrollbar-horizontal{display:none}}.excalidraw__embeddable-container .workspace-leaf-content .view-content{padding:0 2px}.excalidraw__embeddable-container .workspace-leaf .view-content{align-items:center;display:flex;justify-content:center}.excalidraw__embeddable-container .workspace-leaf-content .audio-container,.excalidraw__embeddable-container .workspace-leaf-content .image-container,.excalidraw__embeddable-container .workspace-leaf-content .video-container{display:flex}.excalidraw__embeddable-container .canvas-node-container{border:2px solid var(--canvas-color)}.excalidraw__embeddable-container .canvas-node{--shadow-border-themed-inset:inset 0 0 0 1px rgb(var(--canvas-color));--shadow-border-themed:0 0 0 2px rgb(var(--canvas-color))}.excalidraw__embeddable-container .canvas-node.is-focused.is-themed .canvas-node-container,.excalidraw__embeddable-container .canvas-node.is-selected.is-themed .canvas-node-container{border-color:var(--canvas-color)}.excalidraw-cropped-pdfpage svg,img.excalidraw-cropped-pdfpage{background-color:#fff}.excalidraw .pdf-container,.excalidraw .pdf-toolbar{width:100%}.ex-opacity-30{opacity:.3}.ex-opacity-15{opacity:.15}.ex-opacity-8{opacity:.08}.ex-opacity-5{opacity:.05}.ex-opacity-0{opacity:0}.popover .excalidraw-svg{height:100%;max-height:inherit;max-width:inherit;width:100%}root{--excalidraw-caret-color:initial}.excalidraw .ttd-dialog-content textarea,.excalidraw input,.excalidraw textarea.ttd-dialog-input{caret-color:var(--excalidraw-caret-color)!important}.excalidraw-settings-links-container{align-items:center;color:inherit;display:flex;flex-direction:row;flex-wrap:wrap;gap:.3em;justify-content:center;text-align:center;text-decoration:none}.excalidraw-settings-links-container a{align-items:center;display:flex;margin-left:4px;margin-right:4px;text-align:left}.ex-setting-actions-container svg,.excalidraw-settings-links-container svg{height:30px;margin-right:8px;width:30px}.excalidraw-rank{margin-bottom:.5rem;margin-top:.5rem;text-align:center}.excalidraw-rank svg{height:8rem;width:8rem}.excalidraw .color-picker-content input[type=color]{filter:var(--theme-filter)}.ExcTextField__input input::placeholder{color:var(--select-highlight-color)}.excalidraw textarea::placeholder{color:var(--color-gray-50)}.excalidraw .ToolIcon_type_button{color:var(--text-primary-color)}.excalidraw-setting-desc{background-color:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:5px;cursor:pointer;padding:10px;transition:background-color .3s ease,color .3s ease}.excalidraw-setting-desc:hover{background-color:var(--background-modifier-hover);color:var(--text-accent)}.excalidraw-release .nav-buttons-container{border-bottom:2px solid var(--background-modifier-border);display:flex;margin-bottom:20px}.excalidraw-release .nav-button{background:transparent;border:none;cursor:pointer;padding:8px 16px}.excalidraw-release .nav-button.is-active{border-bottom:2px solid var(--interactive-accent);margin-bottom:-2px}.is-mobile .modal-container.excalidraw-modal .modal.excalidraw-modal{align-self:flex-start;margin-top:calc(var(--safe-area-inset-top) + var(--header-height) + var(--size-4-2));transform:none!important;width:100%}.excalidraw .picker-content{grid-gap:.2rem!important}.excalidraw .picker-content button.picker-option{height:1.85rem!important;width:1.85rem!important}.excalidraw .picker{padding:.2rem!important}.excalidraw .context-menu{height:fit-content}.excalidraw-prompt-buttonbar-bottom,.excalidraw-prompt-buttonbar-top{align-items:flex-start;display:flex;flex-wrap:wrap;row-gap:.5em}.excalidraw-prompt-buttonbar-top{border-top:1px solid var(--background-modifier-border);padding:.5em 0}.excalidraw-prompt-buttonbar-bottom{margin-top:1rem}.excalidraw-prompt-buttonbar-bottom>div,.excalidraw-prompt-buttonbar-top>div{display:flex}.excalidraw-prompt-buttonbar-bottom>div:first-child,.excalidraw-prompt-buttonbar-top>div:first-child{margin-right:auto}.excalidraw-prompt-buttonbar-bottom>div:last-child,.excalidraw-prompt-buttonbar-top>div:last-child{margin-left:auto}.excalidraw-search.document-search-container{background:var(--background-secondary);border-radius:8px;box-shadow:0 1px 4px 0 rgba(0,0,0,.1);display:flex;flex-direction:column;margin-bottom:.5em;margin-left:auto;margin-right:auto;max-width:calc(100% - 1.6em);padding:.5em .8em;position:sticky;top:0}.excalidraw-search .document-search{align-items:center;align-self:center}.excalidraw-search .search-input-container.document-search-input{align-items:center;background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:6px;display:flex;flex:1 1 auto;min-width:0}.excalidraw-search .search-input-container .clickable-icon{align-items:center;color:var(--text-faint);display:flex}.excalidraw-search .search-input-container input[type=text]{background:transparent;border:none;color:var(--text-normal);flex:1 1 auto;font-size:1em;margin:0;outline:none;padding:.1em 2em}.excalidraw-search .document-search-count{color:var(--text-faint);font-size:.95em;margin-left:.5em;min-width:3.5em;text-align:right;white-space:nowrap}.excalidraw-search .document-search-buttons{align-items:center;display:flex;gap:2px}.excalidraw-search .document-search-button{align-items:center;background:none;border:none;border-radius:4px;box-shadow:none;color:var(--text-faint);cursor:pointer;display:flex;height:2em;justify-content:center;margin:0 1px;outline:none;padding:.1em .2em;transition:background .15s;width:2em}.excalidraw-search .document-search-button:focus,.excalidraw-search .document-search-button:hover{background:var(--background-modifier-hover);color:var(--text-accent)}.excalidraw-search .document-search-button svg{fill:none;height:1.3em;pointer-events:none;stroke:currentColor;width:1.3em}.excalidraw__embeddable-container canvas{image-rendering:auto}.excalidraw__embeddable-container .mod-nofilter canvas{filter:none!important}.excalidraw__embeddable-container .canvas-node.is-focused .canvas-node-container,.excalidraw__embeddable-container .canvas-node.is-selected .canvas-node-container{border-color:inherit;box-shadow:inherit}.excalidraw__embeddable-container .pdf-toolbar-right{display:none}.excalidraw-scriptengine-install .modal-close-button{z-index:9999}.excalidraw .App-bottom-bar .App-toolbar{justify-content:start}.excalidraw-left-handed .excalidraw .App-bottom-bar{justify-content:flex-end!important;left:auto!important;right:0!important;transform:none!important;.App-toolbar{justify-content:end}}.excalidraw--tray .App-bottom-bar>.Island>.App-toolbar>.App-toolbar-content{>:not([class]){display:contents}>.ToolIcon__icon:empty{display:none}}.excalidraw .excalidraw-ui-top-right.library-and-pen,.excalidraw.excalidraw--mobile .excalidraw-ui-top-right{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--size-4-1);justify-content:center}.excalidraw .excalidraw-ui-top-right.library-and-pen .ToolIcon__penMode{margin:auto}.excalidraw :is(.mobile-misc-tools-container,.tray-misc-tools-container){margin-right:unset;&.layer-ui__wrapper__top-right--compact{gap:0}}.excalidraw .FixedSideContainer_side_top{padding-top:0!important}.excalidraw .ToolIcon.ToolIcon__penMode{height:fit-content}.excalidraw-LatexPrompt{.cm-editor{align-items:center;anchor-name:--latex-editor;justify-content:center;margin-top:var(--size-4-2);&>.cm-announcment,&>.cm-scroller{align-self:start;width:100%}&.cm-focused{border-color:var(--background-modifier-border-focus);box-shadow:0 0 0 var(--input-border-width-focus) var(--background-modifier-border-focus);transition:box-shadow .15s ease-in-out,border .15s ease-in-out}& .cm-tooltip-cursor.cm-tooltip{left:unset!important;& .cm-tooltip-arrow{left:50%!important;transform:translateX(-50%)}}mjx-container[jax=CHTML][display=true]{margin:0}}.cm-content{caret-color:var(--caret-color)}}@supports (anchor-name:--test){.excalidraw-LatexPrompt .cm-editor .cm-tooltip-cursor.cm-tooltip{margin:var(--size-4-2) 0;max-width:calc(100vw - var(--size-4-4));overflow-x:clip;position:fixed!important;position-anchor:--latex-editor;top:unset!important;&.cm-tooltip-above{bottom:anchor(top)}&.cm-tooltip-below{top:anchor(bottom)!important}}}.excalidraw-filetype-tag{order:99}.excalidraw-mobile-navbar-docked{position:relative}.excalidraw svg.svg-icon{color:var(--icon-fill-color)}.is-mobile .excalidraw.excalidraw--mobile .FixedSideContainer.FixedSideContainer_side_top.App-top-bar{margin-top:1rem}.excalidraw__embeddable__outer .lj-content-view{height:var(--embeddable-height);width:var(--embeddable-width)}.excalidraw__embeddable__outer #sheet-box{height:calc(var(--embeddable-height) - var(--lj-toolbar-height) + 40px)}.excalidraw__embeddable__outer .lj-univer .univer-relative.univer-grid{width:var(--embeddable-width)}.excalidraw input[type=radio]:active,.excalidraw input[type=radio]:checked,.excalidraw input[type=radio]:focus,.excalidraw input[type=radio]:focus-visible{background-color:revert;border-color:revert;box-shadow:none;outline:revert}.excalidraw input[type=radio]:after,.excalidraw input[type=radio]:checked:after{background-color:transparent!important;content:none!important;display:none!important;-webkit-mask-image:none!important;-webkit-mask-position:initial!important;-webkit-mask-size:initial!important} \ No newline at end of file +@font-face{font-family:Assistant;font-weight:400;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Regular.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:500;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Medium.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:600;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-SemiBold.woff2) format("woff2");style:normal;display:swap}@font-face{font-family:Assistant;font-weight:700;src:url(https://unpkg.com/@zsviczian/excalidraw@0.17.6-2/dist/excalidraw-assets/Assistant-Bold.woff2) format("woff2");style:normal;display:swap}.excalidraw .ToolIcon{align-items:center;border-radius:var(--border-radius-lg);cursor:pointer;display:inline-flex;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none}.excalidraw .ToolIcon__hidden{display:none!important}.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon,.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon{--icon-fill-color:var(--color-on-primary-container)}.excalidraw .ToolIcon.fillable .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon.fillable .ToolIcon_type_radio:checked+.ToolIcon__icon svg{fill:var(--icon-fill-color)}.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon,.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon{background:var(--color-surface-primary-container);--keybinding-color:var(--color-on-primary-container);--icon-fill-color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon_type_checkbox:checked+.ToolIcon__icon svg,.excalidraw .ToolIcon .ToolIcon_type_radio:checked+.ToolIcon__icon svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon__keybinding{bottom:4px;right:4px}.excalidraw .ToolIcon .ToolIcon__icon:hover{background:var(--button-hover-bg)}.excalidraw .ToolIcon .ToolIcon__icon:active{background:var(--button-hover-bg);border:1px solid var(--button-active-border)}.excalidraw .ToolIcon .ToolIcon__icon:active svg{color:var(--color-on-primary-container)}.excalidraw .ToolIcon .ToolIcon__icon[aria-disabled=true]{background:initial;border:none}.excalidraw .ToolIcon .ToolIcon__icon[aria-disabled=true] svg{color:var(--color-disabled)}.excalidraw .ToolIcon--plain{background-color:transparent}.excalidraw .ToolIcon--plain .ToolIcon__icon{height:2rem;width:2rem}.excalidraw .ToolIcon_type_checkbox,.excalidraw .ToolIcon_type_radio{opacity:0;pointer-events:none;position:absolute}.excalidraw .ToolIcon__icon{align-items:center;border-radius:var(--border-radius-lg);box-sizing:border-box;color:var(--icon-fill-color);display:flex;height:var(--default-button-size);justify-content:center;width:var(--default-button-size)}.excalidraw .ToolIcon__icon+.ToolIcon__label{margin-inline-start:0}.excalidraw .ToolIcon__icon svg{color:var(--icon-fill-color);height:var(--default-icon-size);position:relative;width:var(--default-icon-size)}.excalidraw .ToolIcon__label{align-items:center;color:var(--icon-fill-color);display:flex;font-family:var(--ui-font);margin:0 .8em;text-overflow:ellipsis}.excalidraw .ToolIcon__label .Spinner{margin-left:.6em}.excalidraw .ToolIcon_size_small .ToolIcon__icon{font-size:.8em;height:2rem;width:2rem}.excalidraw .Modal .ToolIcon_type_button,.excalidraw .ToolIcon_type_button{background-color:initial;border:none;font-size:inherit;margin:0;padding:0}.excalidraw .Modal .ToolIcon_type_button:focus-visible,.excalidraw .ToolIcon_type_button:focus-visible{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,.excalidraw .ToolIcon_type_button.ToolIcon--selected{background-color:var(--button-gray-2)}.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .Modal .ToolIcon_type_button:active,.excalidraw .ToolIcon_type_button.ToolIcon--selected:active,.excalidraw .ToolIcon_type_button:active{background-color:var(--button-gray-3)}.excalidraw .Modal .ToolIcon_type_button:disabled,.excalidraw .ToolIcon_type_button:disabled{cursor:default}.excalidraw .Modal .ToolIcon_type_button:disabled:active,.excalidraw .Modal .ToolIcon_type_button:disabled:focus-visible,.excalidraw .Modal .ToolIcon_type_button:disabled:hover,.excalidraw .ToolIcon_type_button:disabled:active,.excalidraw .ToolIcon_type_button:disabled:focus-visible,.excalidraw .ToolIcon_type_button:disabled:hover{background-color:initial;border:none;box-shadow:none}.excalidraw .Modal .ToolIcon_type_button:disabled svg,.excalidraw .ToolIcon_type_button:disabled svg{color:var(--color-disabled)}.excalidraw .Modal .ToolIcon_type_button--show,.excalidraw .ToolIcon_type_button--show{visibility:visible}.excalidraw .Modal .ToolIcon_type_button--hide,.excalidraw .ToolIcon_type_button--hide{display:none!important}.excalidraw .ToolIcon_type_floating,.excalidraw .ToolIcon_type_floating:active,.excalidraw .ToolIcon_type_floating:hover{background-color:transparent}.excalidraw .ToolIcon_type_floating .ToolIcon__icon{background-color:var(--button-gray-1);height:2rem;width:2rem}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover{background-color:var(--button-gray-2)}.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active{background-color:var(--button-gray-3)}.excalidraw .ToolIcon__keybinding{bottom:2px;color:var(--keybinding-color);font-family:var(--ui-font);font-size:.625rem;position:absolute;right:3px;-webkit-user-select:none;user-select:none}:root[dir=ltr] .excalidraw .unlocked-icon{left:2px}:root[dir=rtl] .excalidraw .unlocked-icon{right:2px}.excalidraw .App-toolbar-container .ToolIcon__icon{height:var(--lg-button-size);width:var(--lg-button-size)}@media screen and (max-width:450px){.excalidraw .App-toolbar-container .ToolIcon__icon{height:1.8rem;width:1.8rem}}@media screen and (max-width:379px){.excalidraw .App-toolbar-container .ToolIcon__icon{height:1.5rem;width:1.5rem}}.excalidraw .App-toolbar-container .ToolIcon__icon svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .App-toolbar-container .ToolIcon__LaserPointer .ToolIcon__icon,.excalidraw .App-toolbar-container .ToolIcon__MagicButton .ToolIcon__icon{height:var(--default-button-size);width:var(--default-button-size)}.excalidraw .Spinner{align-items:center;display:flex;height:100%;justify-content:center;margin-left:auto;margin-right:auto;--spinner-color:var(--icon-fill-color)}.excalidraw .Spinner svg{animation:rotate 1.6s linear infinite;animation-delay:var(--spinner-delay);transform-origin:center center}.excalidraw .Spinner circle{animation:dash 1.6s linear 0s infinite;stroke:var(--spinner-color);stroke-linecap:round}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,300;stroke-dashoffset:0}50%{stroke-dasharray:150,300;stroke-dashoffset:-200}to{stroke-dasharray:1,300;stroke-dashoffset:-280}}.excalidraw button.standalone{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw button.standalone svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw button.standalone:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw button.standalone:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw button.standalone.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw button.standalone.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw button.standalone.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw button.standalone{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw button.standalone{padding:0}.excalidraw button.standalone svg{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw button.standalone>*{pointer-events:none}.excalidraw .excalidraw-eye-dropper-backdrop,.excalidraw .excalidraw-eye-dropper-container{height:100%;position:absolute;touch-action:none;width:100%;z-index:var(--zIndex-eyeDropperBackdrop)}.excalidraw .excalidraw-eye-dropper-container{pointer-events:none}.excalidraw .excalidraw-eye-dropper-backdrop{pointer-events:all}.excalidraw .excalidraw-eye-dropper-preview{border:1px solid var(--default-border-color);border-radius:1rem;filter:var(--theme-filter);height:3rem;pointer-events:none;position:absolute;width:3rem;z-index:var(--zIndex-eyeDropperPreview)}.excalidraw .excalidraw-eye-dropper-trigger{border-radius:.5rem;color:var(--icon-fill-color);cursor:pointer;height:1.25rem;margin-left:-2px;margin-right:-4px;width:1.25rem}.excalidraw .excalidraw-eye-dropper-trigger:hover{background:var(--button-hover-bg)}.excalidraw .excalidraw-eye-dropper-trigger.selected{background:var(--color-primary-light);color:var(--color-primary)}.excalidraw .Island{--padding:0;background-color:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);box-sizing:border-box;padding:calc(var(--padding)*var(--space-factor));position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .Island.zen-mode{box-shadow:none}.excalidraw .focus-visible-none:focus-visible{outline:none!important}.excalidraw .color-picker__title{font-size:.875rem;padding:0 .5rem;text-align:left}.excalidraw .color-picker__heading{font-size:.75rem;padding:0 .5rem;text-align:left}.excalidraw .color-picker-container{align-items:center;display:grid;grid-template-columns:1fr 20px 1.625rem;padding:.25rem 0}.excalidraw--mobile.excalidraw .color-picker-container{max-width:11rem}.excalidraw .color-picker-container.color-picker-container--no-top-picks{display:flex;grid-template-columns:unset;justify-content:center}.excalidraw .color-picker__top-picks{align-items:center;display:flex;justify-content:space-between}.excalidraw .color-picker__button{--radius:4px;--size:1.375rem;background-color:var(--swatch-color);background-position:0;border:0;border-radius:var(--radius);box-sizing:border-box;filter:var(--theme-filter);font-family:inherit;height:var(--size);margin:0;padding:0;position:relative;width:var(--size)}.excalidraw .color-picker__button.has-outline{box-shadow:inset 0 0 0 1px #d9d9d9}.excalidraw .color-picker__button:hover:not(.active):not(.color-picker__button--large){transform:scale(1.075)}.excalidraw .color-picker__button:hover:not(.active).color-picker__button--large:after{border-radius:var(--radius);bottom:-1px;box-shadow:0 0 0 1px var(--color-gray-30);content:"";filter:var(--theme-filter);left:-1px;position:absolute;right:-1px;top:-1px}.excalidraw .color-picker__button .color-picker__button-outline{align-items:center;display:flex;justify-content:center}.excalidraw .color-picker__button .color-picker__button-outline svg{color:var(--color-gray-60);height:1.25rem;width:1.25rem}.excalidraw .color-picker__button .color-picker__button-background{align-items:center;display:flex;justify-content:center}.excalidraw .color-picker__button .color-picker__button-background svg{height:100%;width:100%}.excalidraw .color-picker__button.active .color-picker__button-outline{position:absolute;--offset:-1px;border-radius:var(--radius);bottom:var(--offset);box-shadow:0 0 0 1px var(--color-primary-darkest);filter:var(--theme-filter);left:var(--offset);right:var(--offset);top:var(--offset);z-index:1}.excalidraw .color-picker__button:focus-visible{outline:none}.excalidraw .color-picker__button:focus-visible:after{border:3px solid var(--focus-highlight-color);border-radius:calc(var(--radius) + 1px);bottom:-4px;content:"";left:-4px;position:absolute;right:-4px;top:-4px}.excalidraw .color-picker__button:focus-visible.active .color-picker__button-outline{display:none}.excalidraw .color-picker__button--large{--radius:0.5rem;height:1.875rem;width:1.875rem}.excalidraw .color-picker__button.is-transparent{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==)}.excalidraw .color-picker__button--no-focus-visible{border:0}.excalidraw .color-picker__button--no-focus-visible:after{display:none}.excalidraw .color-picker__button--no-focus-visible:focus-visible{outline:none!important}.excalidraw .color-picker__button.active-color{border-radius:calc(var(--radius) + 1px);height:1.625rem;width:1.625rem}.excalidraw .color-picker__button.compact-sizing{height:var(--mobile-action-button-size);width:var(--mobile-action-button-size)}.excalidraw .color-picker__button.mobile-border{border:1px solid var(--mobile-color-border)}.excalidraw .color-picker__button__hotkey-label{bottom:3px;filter:none;font-size:11px;font-weight:500;position:absolute;right:5px}.excalidraw .color-picker{background:var(--popup-bg-color);border:0 solid hsla(0,0%,100%,.25);border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.25);position:absolute}:root[dir=ltr] .excalidraw .color-picker{left:-5.5px}:root[dir=rtl] .excalidraw .color-picker{right:-5.5px}.excalidraw .color-picker-control-container{align-items:center;column-gap:.5rem;display:grid;grid-template-columns:auto 1fr}.excalidraw .color-picker-control-container+.popover{position:static}.excalidraw .color-picker-popover-container{margin-top:-.25rem}:root[dir=ltr] .excalidraw .color-picker-popover-container{margin-left:.5rem}:root[dir=rtl] .excalidraw .color-picker-popover-container{margin-left:-3rem}.excalidraw .color-picker-triangle{border-color:transparent transparent var(--popup-bg-color);border-style:solid;border-width:0 9px 10px;height:0;position:absolute;top:10px;width:0}:root[dir=ltr] .excalidraw .color-picker-triangle{left:-14px;transform:rotate(270deg)}:root[dir=rtl] .excalidraw .color-picker-triangle{right:-14px;transform:rotate(90deg)}.excalidraw .color-picker-triangle-shadow{border-color:transparent transparent rgba(0,0,0,.1)}:root[dir=ltr] .excalidraw .color-picker-triangle-shadow{left:-14px}:root[dir=rtl] .excalidraw .color-picker-triangle-shadow{right:-16px}.excalidraw .color-picker-content{display:flex;flex-direction:column;gap:.75rem;max-height:none;outline:none}.excalidraw .color-picker-content--default{display:grid;grid-template-columns:repeat(5,1.875rem);padding:.5rem;grid-gap:.25rem;border-radius:4px}.excalidraw .color-picker-content--default:focus{box-shadow:0 0 0 2px var(--focus-highlight-color);outline:none}.excalidraw .color-picker-content--canvas{display:flex;flex-direction:column;padding:.25rem}.excalidraw .color-picker-content--canvas-title{color:#868e96;font-size:12px;padding:0 .25rem}.excalidraw .color-picker-content--canvas-colors{padding:.5rem 0}.excalidraw .color-picker-content--canvas-colors .color-picker-swatch{margin:0 .25rem}.excalidraw .color-picker-content .color-input-container{grid-column:1/span 5}.excalidraw .color-picker-swatch{background-color:currentColor!important;border:1px solid #ddd;border-radius:4px;box-sizing:border-box;cursor:pointer;filter:var(--theme-filter);height:1.875rem;margin:0;position:relative;width:1.875rem}.excalidraw .color-picker-swatch:focus{border-color:var(--select-highlight-color);box-shadow:0 0 4px 1px currentColor}.excalidraw .color-picker-transparent{border-radius:4px;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);left:0;position:absolute;right:0;top:0}.excalidraw .color-picker-label-swatch,.excalidraw .color-picker-transparent{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0}.excalidraw .color-picker-hash{align-items:center;border:1px solid var(--default-border-color);border-right:0;box-sizing:border-box;color:var(--input-label-color);display:flex;flex-shrink:0;height:var(--default-button-size);justify-content:center;padding:.5rem .5rem .5rem .75rem;position:relative}:root[dir=ltr] .excalidraw .color-picker-hash{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}:root[dir=rtl] .excalidraw .color-picker-hash{border-left:0;border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0;border-right:1px solid var(--default-border-color)}.excalidraw .color-input-container{display:flex}.excalidraw .color-input-container:focus-within{border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .color-picker__input-label{align-items:center;border:1px solid var(--default-border-color);border-radius:8px;box-sizing:border-box;display:grid;gap:8px;grid-template-columns:auto 1fr auto auto auto;margin:8px;padding:0 12px}.excalidraw .color-picker__input-label:focus-within{border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .color-picker__input-hash{padding:0 .25rem}.excalidraw .color-picker-input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0;border:1px solid var(--default-border-color);border-left:0;box-sizing:border-box;color:var(--text-primary-color);font-family:inherit;font-size:.875rem;height:var(--default-button-size);letter-spacing:.4px;margin:0;outline:none;padding:.5rem .5rem .5rem .25rem;width:100%}:root[dir=ltr] .excalidraw .color-picker-input{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}:root[dir=rtl] .excalidraw .color-picker-input{border-left:1px solid var(--default-border-color);border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg);border-right:0}.excalidraw .color-picker-input:focus-visible{box-shadow:none}.excalidraw .color-picker-label-swatch-container{border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;height:var(--default-button-size);overflow:hidden;width:var(--default-button-size)}.excalidraw .color-picker-label-swatch{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--swatch-color)!important;border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;border:0!important;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;filter:var(--theme-filter);font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;overflow:hidden;padding:.625rem;position:relative;width:var(--button-width,var(--default-button-size))}.excalidraw .color-picker-label-swatch svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .color-picker-label-swatch:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .color-picker-label-swatch:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .color-picker-label-swatch.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .color-picker-label-swatch.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .color-picker-label-swatch{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .color-picker-label-swatch:after{background:var(--swatch-color);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.excalidraw .color-picker-keybinding{bottom:2px;font-size:.7em;position:absolute}:root[dir=ltr] .excalidraw .color-picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .color-picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .color-picker-keybinding{display:none}.excalidraw .color-picker-type-canvasBackground .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementBackground .color-picker-keybinding{color:#fff}.excalidraw .color-picker-swatch[aria-label=transparent] .color-picker-keybinding{color:#aaa}.excalidraw .color-picker-type-elementStroke .color-picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .color-picker-swatch[aria-label=transparent] .color-picker-keybinding,.excalidraw.theme--dark .color-picker-type-elementBackground .color-picker-keybinding{color:#000}.excalidraw{--list-border-color:var(--color-gray-20)}.excalidraw .QuickSearch__wrapper{border-bottom:1px solid var(--list-border-color);height:2.6rem;position:relative}.excalidraw .QuickSearch__wrapper svg{color:var(--color-gray-40);height:1.25rem;left:.75rem;position:absolute;top:47.5%;transform:translateY(-50%);width:1.25rem;z-index:1}.excalidraw.theme--dark{--list-border-color:var(--color-gray-80)}.excalidraw.theme--dark .QuickSearch__wrapper{border-bottom:none}.excalidraw .QuickSearch__input{border:0!important;box-sizing:border-box;font-size:.875rem;left:0;padding-left:2.5rem!important;padding-right:.75rem!important;position:absolute;top:0;width:100%}.excalidraw .QuickSearch__input::placeholder{color:var(--color-gray-40)}.excalidraw .QuickSearch__input:focus{box-shadow:none!important}.excalidraw .ScrollableList__wrapper{border:none;font-size:.875rem;overflow-y:auto;position:static!important}.excalidraw .ScrollableList__wrapper>.empty,.excalidraw .ScrollableList__wrapper>.hint{align-items:center;color:var(--color-gray-60);display:flex;font-size:.75rem;justify-content:center;line-height:150%;overflow:hidden;padding:.5rem;text-align:center}.excalidraw .FontPicker__container{align-items:center;display:grid;grid-template-columns:calc(1rem + var(--default-button-size)*3) 1rem 1fr}.excalidraw--mobile.excalidraw .FontPicker__container{max-width:calc(2rem + var(--default-button-size)*4)}.excalidraw .FontPicker__container--compact{display:block;grid-template-columns:none}.excalidraw .picker{background:var(--popup-bg-color);border:0 solid hsla(0,0%,100%,.25);border-radius:4px;box-shadow:var(--shadow-island-stronger);padding:.5rem}:root[dir=rtl] .excalidraw .picker{padding:.4rem}.excalidraw .picker-section,.excalidraw .picker-sections{display:flex;flex-direction:column;gap:.5rem}.excalidraw .picker button,.excalidraw .picker-container button{align-items:center;display:flex;justify-content:center;position:relative}.excalidraw .picker button:focus-visible,.excalidraw .picker-container button:focus-visible{background-color:var(--button-gray-2);outline:transparent}.excalidraw .picker button:focus-visible svg,.excalidraw .picker-container button:focus-visible svg{opacity:1}.excalidraw .picker button:hover,.excalidraw .picker-container button:hover{background-color:var(--button-gray-2)}.excalidraw .picker button:active,.excalidraw .picker-container button:active{background-color:var(--button-gray-3)}.excalidraw .picker button:disabled,.excalidraw .picker-container button:disabled{cursor:not-allowed}.excalidraw .picker button svg,.excalidraw .picker-container button svg{height:18px;margin:0;pointer-events:none;width:36px}.excalidraw .picker button{padding:.25rem .28rem .35rem .25rem}.excalidraw .picker-content{display:grid;grid-template-columns:repeat(4,auto);grid-gap:.5rem;border-radius:4px}.excalidraw .picker-collapsible{padding:0}.excalidraw .picker-collapsible,.excalidraw .picker-section-label{color:var(--text-primary-color);font-size:.75rem}.excalidraw .picker-keybinding{bottom:2px;color:var(--keybinding-color);font-size:.7em;position:absolute}:root[dir=ltr] .excalidraw .picker-keybinding{right:2px}:root[dir=rtl] .excalidraw .picker-keybinding{left:2px}.excalidraw--mobile.excalidraw .picker-keybinding{display:none}.excalidraw .picker-type-canvasBackground .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementBackground .picker-keybinding{color:#fff}.excalidraw .picker-swatch[aria-label=transparent] .picker-keybinding{color:#aaa}.excalidraw .picker-type-elementStroke .picker-keybinding{color:#d4d4d4}.excalidraw.theme--dark .picker-swatch[aria-label=transparent] .picker-keybinding,.excalidraw.theme--dark .picker-type-elementBackground .picker-keybinding{color:#000}.excalidraw{--slider-thumb-size:16px}.excalidraw .range-wrapper{padding-bottom:25px;padding-top:10px;position:relative}.excalidraw .range-input{-webkit-appearance:none;background:var(--color-slider-track);border-radius:2px;height:4px;outline:none;width:100%}.excalidraw .range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-slider-thumb);border:none;border-radius:50%;cursor:pointer;height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.excalidraw .range-input::-moz-range-thumb{background:var(--color-slider-thumb);border:none;border-radius:50%;cursor:pointer;height:var(--slider-thumb-size);width:var(--slider-thumb-size)}.excalidraw .value-bubble{transform:translateX(-50%)}.excalidraw .value-bubble,.excalidraw .zero-label{bottom:0;color:var(--text-primary-color);font-size:12px;position:absolute}.excalidraw .zero-label{left:4px}.excalidraw .Checkbox{align-items:center;cursor:pointer;display:flex;margin:4px .3em;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus){box-shadow:0 0 0 2px #4dabf7}.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) svg{display:block;opacity:.3}.excalidraw .Checkbox:active .Checkbox-box{box-shadow:inset 0 0 2px 1px #1c7ed6!important}.excalidraw .Checkbox:hover .Checkbox-box{background-color:rgba(208,235,255,.2)}.excalidraw .Checkbox.is-checked .Checkbox-box{background-color:#d0ebff}.excalidraw .Checkbox.is-checked .Checkbox-box svg{display:block}.excalidraw .Checkbox.is-checked:hover .Checkbox-box{background-color:#a5d8ff}.excalidraw .Checkbox .Checkbox-box{align-items:center;background-color:transparent;border:0;border-radius:4px;box-shadow:0 0 0 2px #1c7ed6;color:#1c7ed6;display:flex;flex:0 0 auto;height:22px;justify-content:center;margin:0 1em;padding:0;width:22px}.excalidraw .Checkbox .Checkbox-box:focus{box-shadow:0 0 0 3px #1c7ed6}.excalidraw .Checkbox .Checkbox-box svg{display:none;height:16px;stroke-width:3px;width:16px}.excalidraw .Checkbox .Checkbox-label{align-items:center;display:flex}.excalidraw .Checkbox .excalidraw-tooltip-icon{height:1em;width:1em}.excalidraw .TextInput{display:inline-block}.ProjectName{align-items:center;display:flex;margin:auto}.ProjectName .TextInput{height:calc(1rem - 3px);margin-left:8px;overflow:hidden;text-align:center;text-overflow:ellipsis;width:200px}.ProjectName .TextInput--readonly{background:none;border:none;max-width:200px;padding-left:2px;width:auto}.ProjectName .TextInput--readonly:hover{background:none}.excalidraw .Toast{animation:Toast-fade-in .5s;background-color:var(--island-bg-color);border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--text-primary-color);cursor:default;max-width:min(360px,100vw - 32px);min-width:220px;padding:.5rem .75rem;pointer-events:none}.excalidraw .Toast .Toast__message{font-family:var(--ui-font);font-size:.75rem;line-height:1.25rem;padding:0 1.6rem;text-align:center;white-space:pre-wrap}.excalidraw .Toast .Toast__progress-bar{background-color:var(--button-gray-2);border-radius:999px;height:4px;margin-top:.35rem;overflow:hidden;width:100%}.excalidraw .Toast .Toast__progress-bar-fill{background-color:var(--color-primary);border-radius:inherit;height:100%}.excalidraw .Toast .close{padding:.4rem;pointer-events:auto;position:absolute;right:0;top:0}.excalidraw .Toast .close .ToolIcon__icon{height:1.2rem;width:1.2rem}@keyframes Toast-fade-in{0%{opacity:0}to{opacity:1}}.excalidraw-tooltip{--ui-font:Assistant,system-ui,BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;border-radius:6px;box-sizing:border-box;font-family:var(--ui-font);padding:8px;pointer-events:none;position:absolute;z-index:var(--zIndex-popup);word-wrap:break-word;background:#000;color:#fff;display:none;font-size:13px;font-weight:500;line-height:1.5;text-align:center}.excalidraw-tooltip.excalidraw-tooltip--visible{display:block}.excalidraw-tooltip-wrapper{display:flex}.excalidraw-tooltip-icon{display:flex;height:.9em;margin-left:5px;margin-top:1px;width:.9em}.excalidraw--mobile.excalidraw-tooltip-icon{display:none}.excalidraw .Avatar{align-items:center;border-radius:100%;color:var(--color-gray-90);cursor:pointer;display:flex;flex:0 0 auto;font-size:.75rem;font-weight:700;height:var(--avatar-size,1.5rem);justify-content:center;line-height:1;outline-offset:2px;position:relative;width:var(--avatar-size,1.5rem)}.excalidraw .Avatar:active{transform:scale(.94)}.excalidraw .Avatar-img{border-radius:100%;height:100%;width:100%}.excalidraw .Avatar:before{border-radius:100%;bottom:-3px;content:"";left:-3px;position:absolute;right:-3px;top:-3px}.excalidraw .Avatar.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .Avatar.is-current-user{cursor:auto}.excalidraw-hyperlinkContainer{align-items:center;background:var(--island-bg-color);border-radius:var(--border-radius-md);box-shadow:0 2px 4px 0 rgba(0,0,0,.3);box-sizing:border-box;display:flex;justify-content:space-between;min-height:42px;position:absolute;z-index:var(--zIndex-hyperlinkContainer)}.excalidraw-hyperlinkContainer button,.excalidraw-hyperlinkContainer-input{z-index:100}.excalidraw-hyperlinkContainer-input,.excalidraw-hyperlinkContainer-link{font-family:var(--ui-font);font-size:.9rem;font-weight:500;height:24px;line-height:24px;padding:0 8px}.excalidraw-hyperlinkContainer-input{background-color:transparent;border:none;box-shadow:none!important;color:var(--text-primary-color);outline:none;width:18rem}.excalidraw-hyperlinkContainer-link{max-width:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw-hyperlinkContainer button{background-color:transparent!important;color:#228be6;font-weight:500}.excalidraw-hyperlinkContainer button.excalidraw-hyperlinkContainer--remove{color:#c92a2a}.excalidraw-hyperlinkContainer--remove .ToolIcon__icon svg{color:#fa5252}.excalidraw-hyperlinkContainer .ToolIcon__icon{height:2rem;width:2rem}.excalidraw-hyperlinkContainer__buttons{flex:0 0 auto}.excalidraw .ConvertElementTypePopup{background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);display:flex;flex-wrap:wrap;gap:.2rem;justify-content:center;padding:.5rem}.excalidraw .ConvertElementTypePopup:focus{outline:none}.excalidraw .Dialog__action-button{align-items:center;background-color:transparent;border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);color:inherit;column-gap:.5rem;display:flex;font-family:inherit;font-size:.875rem;font-weight:600;height:3rem;letter-spacing:.4px;padding:.5rem 1.5rem;position:relative;-webkit-user-select:none;user-select:none}.excalidraw .Dialog__action-button svg{display:block;height:1rem;width:1rem}.excalidraw .Dialog__action-button--danger{background-color:var(--color-danger);border-color:var(--color-danger);color:#fff}.excalidraw .Dialog__action-button--primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.excalidraw.theme--dark .Dialog__action-button--danger,.excalidraw.theme--dark .Dialog__action-button--primary{color:var(--color-gray-100)}.excalidraw .confirm-dialog-buttons{column-gap:.5rem;display:flex;justify-content:flex-end}.excalidraw .publish-library__fields{display:flex;flex-direction:column}.excalidraw .publish-library__fields label{align-items:center;display:flex;justify-content:space-between;padding:1em 0}.excalidraw .publish-library__fields label span{color:#868e96;font-size:1rem;font-weight:500}.excalidraw .publish-library__fields label input,.excalidraw .publish-library__fields label textarea{font-family:var(--ui-font);padding:.6em;width:70%}.excalidraw .publish-library__fields label .required{color:#e03131;margin:.2rem}.excalidraw .publish-library__buttons{display:flex;gap:.5rem;justify-content:flex-end;padding:.2rem 0}.excalidraw .publish-library__buttons .ToolIcon__icon{font-size:1rem;min-width:2.5rem;width:auto}.excalidraw .publish-library__buttons .ToolIcon_type_button{margin-left:1rem;padding:0 .5rem}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button{background-color:#228be6}.excalidraw .publish-library__buttons--confirm.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button{background-color:#adb5bd}.excalidraw .publish-library__buttons--cancel.ToolIcon_type_button:hover{background-color:#868e96}.excalidraw .publish-library__buttons .ToolIcon__icon{color:#fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner{--spinner-color:#fff}.excalidraw .publish-library__buttons .ToolIcon__icon .Spinner svg{padding:.5rem}.excalidraw .publish-library .selected-library-items{display:flex;flex-wrap:wrap}.excalidraw .publish-library .selected-library-items .single-library-item-wrapper{width:9rem}.excalidraw .publish-library-warning{color:#fa5252}.excalidraw .publish-library-note{display:block;font-size:14px;font-style:italic;padding:1em 0}.excalidraw .single-library-item{position:relative}.excalidraw .single-library-item-status{background:hsla(0,0%,100%,.9);border-radius:.2rem;color:#f03e3e;font-size:.7rem;left:.3rem;padding:.1rem .2rem;position:absolute;top:.3rem}.excalidraw .single-library-item__svg{background-color:#fff;border:1px solid var(--button-gray-2);height:7.5rem;padding:.3rem;width:7.5rem}.excalidraw .single-library-item__svg svg{height:100%;width:100%}.excalidraw .single-library-item .ToolIcon__icon{background-color:#fff;height:auto;margin:0 .5rem;width:auto}.excalidraw .single-library-item .ToolIcon,.excalidraw .single-library-item .ToolIcon_type_button:hover{background-color:#fff}.excalidraw .single-library-item .error,.excalidraw .single-library-item .required{color:#e03131;font-size:1rem;font-weight:700;margin:.2rem}.excalidraw .single-library-item .error{font-weight:500;margin:0;padding:.3em 0}.excalidraw .single-library-item--remove{position:absolute;right:1rem;top:.2rem}.excalidraw .single-library-item--remove .ToolIcon__icon{background-color:#fa5252;margin:0}.excalidraw .single-library-item--remove .ToolIcon__icon:hover{background-color:#f03e3e}.excalidraw .single-library-item--remove .ToolIcon__icon:active{background-color:#e03131}.excalidraw .single-library-item--remove svg{border-radius:.3em;color:#fff;height:1rem;padding:.26rem;width:1rem}.excalidraw .Stack{--gap:0;display:grid;gap:calc(var(--space-factor)*var(--gap))}.excalidraw .Stack_vertical{grid-auto-flow:row;grid-auto-rows:min-content;grid-template-columns:auto}.excalidraw .Stack_horizontal{grid-auto-columns:min-content;grid-auto-flow:column;grid-template-rows:auto}.excalidraw .dropdown-menu{max-width:20rem;z-index:1}.excalidraw .dropdown-menu--placement-top{margin-bottom:.5rem}.excalidraw .dropdown-menu__submenu-trigger[aria-expanded=true] .dropdown-menu-item{background-color:var(--button-hover-bg)}.excalidraw .dropdown-menu__submenu-trigger-icon{margin-left:auto;opacity:.5}.excalidraw .dropdown-menu__submenu-trigger-icon svg g{stroke-width:2}.excalidraw .dropdown-menu--mobile{row-gap:.75rem;width:100%}.excalidraw .dropdown-menu--mobile.main-menu{margin-bottom:0;margin-top:0;min-width:232px}@media screen and (orientation:landscape){.excalidraw .dropdown-menu--mobile.main-menu{max-width:232px}}.excalidraw .dropdown-menu--mobile .dropdown-menu-container{border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto;padding:8px;position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .dropdown-menu--mobile .dropdown-menu-container.zen-mode{box-shadow:none}.excalidraw .dropdown-menu--tray{left:0;row-gap:.75rem;width:100%}.excalidraw .dropdown-menu--tray .dropdown-menu-container{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);box-sizing:border-box;display:flex;flex-direction:column;padding:8px;position:relative;transition:box-shadow .5s ease-in-out}.excalidraw .dropdown-menu--tray .dropdown-menu-container.zen-mode{box-shadow:none}.excalidraw .dropdown-menu .dropdown-menu-container{background-color:var(--island-bg-color);box-shadow:var(--box-shadow,var(--shadow-island));display:flex;flex-direction:column;gap:1px;max-height:calc(100svh - var(--editor-container-padding)*2 - 2.25rem);overflow-y:auto}.excalidraw.theme--dark.excalidraw .dropdown-menu .dropdown-menu-container{box-shadow:var(--box-shadow,var(--shadow-island)),0 0 0 1px rgba(0,0,0,.15)}.excalidraw .dropdown-menu .dropdown-menu-item-base{box-sizing:border-box;color:var(--color-on-surface);column-gap:.625rem;display:flex;font-family:inherit;font-size:.875rem;font-weight:400;padding:0 .5rem;width:100%}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item:hover{background-color:transparent}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item--hovered{background-color:var(--button-hover-bg)!important}.excalidraw .dropdown-menu.manual-hover .dropdown-menu-item--selected{background-color:var(--color-primary-light)!important}.excalidraw .dropdown-menu.fonts{margin-top:1rem;max-height:calc(17.95rem + 14px)}@media screen and (min-width:1921px){.excalidraw .dropdown-menu.fonts{max-height:calc(19.7rem + 14px)}}.excalidraw .dropdown-menu.fonts .dropdown-menu-item-base{display:inline-flex}.excalidraw .dropdown-menu.fonts .dropdown-menu-group:not(:first-child){margin-top:1rem}.excalidraw .dropdown-menu.fonts .dropdown-menu-group-title{font-size:.75rem;font-weight:400;line-height:1.3;margin:0 0 .5rem;text-align:left}.excalidraw .dropdown-menu .dropdown-menu-item{align-items:center;background-color:transparent;border:none;border-radius:var(--border-radius-md);cursor:pointer;flex:1 0 auto;height:2rem;padding:0 .5rem}@media screen and (min-width:1921px){.excalidraw .dropdown-menu .dropdown-menu-item{height:2.25rem}}.excalidraw .dropdown-menu .dropdown-menu-item__text{align-items:center;display:flex;gap:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.excalidraw .dropdown-menu .dropdown-menu-item__shortcut{margin-inline-start:auto;opacity:.5}.excalidraw .dropdown-menu .dropdown-menu-item__shortcut--orphaned{font-size:.875rem;padding:0 .625rem;text-align:right}.excalidraw .dropdown-menu .dropdown-menu-item--selected{background:var(--color-primary-light);--icon-fill-color:var(--color-primary-darker)}.excalidraw .dropdown-menu .dropdown-menu-item:hover{background-color:var(--button-hover)!important;text-decoration:none}.excalidraw .dropdown-menu .dropdown-menu-item:active{background-color:var(--button-hover-bg);box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]{cursor:not-allowed;opacity:.5;pointer-events:none}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]:hover{background-color:transparent}.excalidraw .dropdown-menu .dropdown-menu-item[disabled]:active{background-color:transparent;box-shadow:none}.excalidraw .dropdown-menu .dropdown-menu-item svg{display:block;height:1rem;width:1rem}.excalidraw .dropdown-menu .dropdown-menu-item-bare{align-items:center;height:2rem;justify-content:space-between}@media screen and (min-width:1921px){.excalidraw .dropdown-menu .dropdown-menu-item-bare{height:2.25rem}}.excalidraw .dropdown-menu .dropdown-menu-item-bare svg{display:block;height:1rem;width:1rem}.excalidraw .dropdown-menu .dropdown-menu-item-custom{margin-top:.5rem}.excalidraw .dropdown-menu .dropdown-menu-group-title{font-size:14px;font-weight:500;margin:10px 0;text-align:left}.excalidraw .dropdown-menu-button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;margin:0;padding:0;width:var(--button-width,var(--default-button-size));width:var(--lg-button-size);--background:var(--color-surface-mid);background-color:var(--background)}.excalidraw .dropdown-menu-button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .dropdown-menu-button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .dropdown-menu-button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .dropdown-menu-button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .dropdown-menu-button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .dropdown-menu-button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw.theme--dark.excalidraw .dropdown-menu-button{--background:var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .dropdown-menu-button:hover{--background:#363541}.excalidraw .dropdown-menu-button:hover{--background:var(--color-surface-high);background-color:var(--background);text-decoration:none}.excalidraw .dropdown-menu-button:active{box-shadow:0 0 0 1px var(--color-primary)}.excalidraw .dropdown-menu-button[disabled]{cursor:not-allowed}.excalidraw .dropdown-menu-button[disabled]:hover{--background:var(--color-surface-mid);background-color:var(--background)}.excalidraw .dropdown-menu-button[disabled]:active{box-shadow:none}.excalidraw.theme--dark.excalidraw .dropdown-menu-button[disabled]:hover{--background:var(--color-surface-high)}.excalidraw .dropdown-menu-button svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .dropdown-menu-button--mobile,.excalidraw .dropdown-menu-button--tray{border:none;height:var(--default-button-size);margin:0;padding:0;width:var(--default-button-size)}.excalidraw .library-unit{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;height:55px;justify-content:center;position:relative;width:55px}.excalidraw .library-unit svg{pointer-events:none}.excalidraw .library-unit--hover{background-color:var(--color-surface-mid)}.excalidraw .library-unit--selected,.excalidraw .library-unit:active:not(:has(.library-unit__checkbox:hover)){background-color:var(--color-surface-high)}.excalidraw .library-unit--skeleton{animation:library-unit__skeleton-opacity-animation .2s linear;background:linear-gradient(-45deg,var(--color-gray-10),var(--color-gray-20),var(--color-gray-10));background-size:200% 200%;opacity:.5}.excalidraw.theme--dark .library-unit--skeleton{background-image:linear-gradient(-45deg,var(--color-gray-100),var(--color-gray-80),var(--color-gray-100))}.excalidraw .library-unit__dragger{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.excalidraw .library-unit__dragger>svg{filter:var(--theme-filter);flex-grow:1;max-height:100%;max-width:100%}.excalidraw .library-unit__checkbox-container,.excalidraw .library-unit__checkbox-container:active,.excalidraw .library-unit__checkbox-container:hover{align-items:center;background:none;border:none;bottom:2rem;color:var(--icon-fill-color);cursor:pointer;display:flex;justify-content:center;left:2rem;margin:0;padding:.5rem;position:absolute}.excalidraw .library-unit__checkbox-container input,.excalidraw .library-unit__checkbox-container:active input,.excalidraw .library-unit__checkbox-container:hover input{cursor:pointer}.excalidraw .library-unit__checkbox{margin:0;position:absolute;right:.125rem;top:.125rem}.excalidraw .library-unit__checkbox .Checkbox-box{background-color:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:4px;box-shadow:none!important;height:1rem;margin:0;padding:2px;width:1rem}.excalidraw .library-unit__checkbox.Checkbox:hover .Checkbox-box{background-color:var(--color-primary-light)}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box{background-color:var(--color-primary)!important}.excalidraw .library-unit__checkbox.is-checked .Checkbox-box svg{color:var(--color-primary-light)}.excalidraw .library-unit__removeFromLibrary>svg{height:16px;width:16px}.excalidraw .library-unit__adder{align-items:center;animation:library-unit__adder-animation 1s ease-in infinite;background-color:var(--color-primary);border-radius:var(--border-radius-md);display:flex;height:1.5rem;justify-content:center;pointer-events:none;position:absolute;transform:scale(1);width:1.5rem}.excalidraw .library-unit__adder svg{color:var(--color-primary-light);height:1rem;width:1rem}.excalidraw .library-unit:active .library-unit__adder{animation:none;transform:scale(.8)}.excalidraw .library-unit__active{cursor:pointer}@keyframes library-unit__adder-animation{0%{transform:scale(.85)}50%{transform:scale(1)}to{transform:scale(.85)}}@keyframes library-unit__skeleton-opacity-animation{0%{opacity:0}75%{opacity:0}to{opacity:.5}}.excalidraw{--container-padding-y:1rem;--container-padding-x:0.75rem}.excalidraw .library-menu-items-header{display:flex;gap:.5rem;padding-bottom:.5rem;padding-top:1rem}.excalidraw .library-menu-items__no-items{align-items:center;color:var(--color-gray-70);display:flex;flex-direction:column;font-size:.875rem;justify-content:center;line-height:1.5;min-height:55px;text-align:center;width:100%}.excalidraw .library-menu-items__no-items__label{color:var(--color-primary);font-size:1.125rem;font-weight:700;margin-bottom:.25rem}.excalidraw .library-menu-items__no-items__hint{color:var(--color-border-outline);padding:.75rem 1rem}.excalidraw.theme--dark .library-menu-items__no-items{color:var(--color-gray-40)}.excalidraw .library-menu-items-container{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;flex-shrink:1;height:100%;justify-content:flex-start;margin:0;overflow-y:auto;position:relative;width:100%}.excalidraw .library-menu-items-container>div{padding-left:12px;padding-right:12px}.excalidraw .library-menu-items-container__row{display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}.excalidraw .library-menu-items-container__items{flex:1;overflow-x:hidden;overflow-y:auto;padding:1rem 0 var(--container-padding-y) 0;position:relative;row-gap:.5rem}.excalidraw .library-menu-items-container__header{align-items:center;box-sizing:border-box;color:var(--color-primary);display:flex;flex:1 1 auto;font-size:1.125rem;font-weight:700;margin-bottom:.75rem;width:100%}.excalidraw .library-menu-items-container__header--excal{margin-top:2rem}.excalidraw .library-menu-items-container__header__hint{color:var(--color-border-outline);font-size:10px;font-weight:400;margin-left:auto}.excalidraw .library-menu-items-container__header__hint kbd{border:1px solid var(--color-border-outline);border-radius:4px;font-family:monospace;padding:1px 3px}.excalidraw .library-menu-items-container__grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:16px}.excalidraw .library-menu-items-container__search{flex:1 1 auto;margin:0}.excalidraw .library-menu-items-container__search .ExcTextField__input{height:var(--lg-button-size)}.excalidraw .library-menu-items-container__search .ExcTextField__input input{font-size:.875rem}.excalidraw .library-menu-items-container__search.hideCancelButton input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.excalidraw .library-menu-items-container .separator{align-items:center;color:var(--text-primary-color);display:flex;font-size:.9rem;font-weight:500;margin:.6em .2em;width:100%}.excalidraw .library-menu-items-private-library-container{min-height:3.75rem;width:100%}.excalidraw .excalidraw-button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .excalidraw-button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .excalidraw-button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .excalidraw-button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .excalidraw-button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .excalidraw-button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .excalidraw-button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw{--ExcTextField--color:var(--color-on-surface);--ExcTextField--label-color:var(--color-on-surface);--ExcTextField--background:var(--color-surface-low);--ExcTextField--readonly--background:var(--color-surface-high);--ExcTextField--readonly--color:var(--color-on-surface);--ExcTextField--border:var(--color-gray-20);--ExcTextField--readonly--border:var(--color-border-outline-variant);--ExcTextField--border-hover:var(--color-brand-hover);--ExcTextField--border-active:var(--color-brand-active);--ExcTextField--placeholder:var(--color-border-outline-variant)}.excalidraw.theme--dark{--ExcTextField--border:var(--color-border-outline-variant)}.excalidraw .ExcTextField{position:relative}.excalidraw .ExcTextField svg{color:var(--color-gray-40);height:1.25rem;left:.75rem;position:absolute;top:50%;transform:translateY(-50%);width:1.25rem;z-index:1}.excalidraw .ExcTextField--fullWidth{flex-grow:1;width:100%}.excalidraw .ExcTextField__label{color:var(--ExcTextField--label-color);font-family:Assistant;font-size:.875rem;font-style:normal;font-weight:600;line-height:150%;margin-bottom:.25rem;-webkit-user-select:none;user-select:none}.excalidraw .ExcTextField__input{align-items:center;background:var(--ExcTextField--background);border:1px solid var(--ExcTextField--border);border-radius:.5rem;box-sizing:border-box;display:flex;flex-direction:row;height:3rem;padding:0 .75rem}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):hover{border-color:var(--ExcTextField--border-hover)}.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):active,.excalidraw .ExcTextField__input:not(.excalidraw .ExcTextField__input--readonly):focus-within{border-color:var(--ExcTextField--border-active)}.excalidraw .ExcTextField__input input{align-items:center;background:transparent;border:none;color:var(--ExcTextField--color);display:flex;font-family:Assistant;font-size:1rem;font-style:normal;font-weight:400;height:1.5rem;line-height:150%;margin:0;outline:none;padding:0;text-overflow:ellipsis;width:100%}.excalidraw .ExcTextField__input input:not(:focus):hover{background-color:initial}.excalidraw .ExcTextField__input input:focus{box-shadow:none;outline:initial}.excalidraw .ExcTextField__input--readonly{background:var(--ExcTextField--readonly--background);border-color:var(--ExcTextField--readonly--border)}.excalidraw .ExcTextField__input--readonly input{color:var(--ExcTextField--readonly--color)}.excalidraw .ExcTextField--hasIcon .ExcTextField__input{padding-left:2.5rem}.excalidraw .layer-ui__library{display:flex;flex:1 1 auto;flex-direction:column}.excalidraw .library-actions-counter{align-items:center;background-color:var(--color-primary);border-radius:50%;bottom:-.25rem;color:var(--color-primary-light);display:flex;font-size:.625rem;font-weight:700;height:1rem;justify-content:center;pointer-events:none;position:absolute;right:-.25rem;width:1rem}.excalidraw .layer-ui__library-message{align-items:center;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-width:200px;padding:2rem}.excalidraw .layer-ui__library-message span{font-size:.8em}.excalidraw .publish-library-success .Dialog__content{display:flex;flex-direction:column}.excalidraw .publish-library-success-close.ToolIcon_type_button{align-self:flex-end;background-color:#228be6}.excalidraw .publish-library-success-close.ToolIcon_type_button:hover{background-color:#1971c2}.excalidraw .publish-library-success-close.ToolIcon_type_button .ToolIcon__icon{color:#fff;font-size:1rem;padding:0 .5rem;width:auto}.excalidraw .library-menu-control-buttons{align-items:center;display:flex;flex-direction:column;gap:.625rem;height:5.5em;justify-content:center;position:relative}.excalidraw .library-menu-control-buttons--at-bottom:before{background:var(--sidebar-border-color);content:"";height:1px;position:absolute;top:-1px;width:calc(100% - 1.5rem)}.excalidraw .library-menu-browse-button{align-items:center;background-color:var(--color-primary);border-radius:var(--border-radius-lg);color:#fff;display:flex;flex:1;font-size:.75rem;font-weight:600;height:var(--lg-button-size);justify-content:center;overflow:hidden;position:relative;text-align:center;text-decoration:none!important;white-space:nowrap;width:100%}.excalidraw .library-menu-browse-button:hover{background-color:var(--color-brand-hover)}.excalidraw .library-menu-browse-button:active{background-color:var(--color-brand-active)}.excalidraw.theme--dark .library-menu-browse-button{color:var(--color-gray-100)}.excalidraw.excalidraw--mobile .library-menu-browse-button{height:var(--default-button-size)}.excalidraw .layer-ui__library .dropdown-menu{bottom:100%;left:auto;margin-bottom:.625rem;right:0;top:auto;width:auto}.excalidraw .layer-ui__library .dropdown-menu .dropdown-menu-container{border-radius:var(--border-radius-lg);padding:.25rem .5rem;width:196px;--box-shadow:var(--library-dropdown-shadow)}.excalidraw .layer-ui__library .library-menu-dropdown-container{position:relative;z-index:1}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading{margin-left:auto}.excalidraw .layer-ui__library .library-menu-dropdown-container--in-heading .dropdown-menu{top:100%}.excalidraw.excalidraw-modal-container{position:absolute;z-index:var(--zIndex-modal)}.excalidraw .Modal{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;overflow:auto;padding:calc(var(--space-factor)*10);position:absolute;right:0;top:0}.excalidraw .Modal .Island{border:0;border-radius:0;box-shadow:none;padding:2.5rem}.excalidraw .Modal.animations-disabled .Modal__background{animation:none}.excalidraw .Modal.animations-disabled .Modal__content{animation:none;opacity:1}.excalidraw .Modal__background{animation:Modal__background__fade-in .1s linear forwards;background-color:hsla(0,0%,7%,.2);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.excalidraw .Modal__content{animation:Modal__content_fade-in 25ms ease-out 0s forwards;background:var(--island-bg-color);border:1px solid var(--dialog-border-color);border-radius:.75rem;box-shadow:var(--modal-shadow);box-sizing:border-box;max-height:100%;max-width:var(--max-width);opacity:0;overflow-y:auto;position:relative;transform:translateY(10px);width:100%;z-index:2}.excalidraw .Modal__content:focus{outline:none}@keyframes Modal__background__fade-in{0%{opacity:0}to{opacity:1}}@keyframes Modal__content_fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.excalidraw .Modal__close{background-color:transparent;border:0;color:var(--icon-fill-color);cursor:pointer;line-height:0;margin:0;padding:.375rem;position:absolute;right:1rem;top:1rem}.excalidraw .Modal__close svg{height:1.5rem;width:1.5rem}.excalidraw .Dialog--fullscreen .Modal{padding:0}.excalidraw .Dialog--fullscreen .Modal__content{border:0;border-radius:0;bottom:0;left:0;max-width:100%;position:absolute;right:0;top:0}.excalidraw .Dialog{cursor:auto;-webkit-user-select:text;user-select:text}.excalidraw .Dialog__title{border-bottom:1px solid var(--dialog-border-color);font-size:1.25rem;margin:0 0 1.5rem;padding:0 0 .75rem;text-align:left}.excalidraw .Dialog__close{background-color:transparent;border:0;color:var(--color-gray-40);cursor:pointer;line-height:0;margin:0;position:absolute;right:.5rem;top:.75rem}.excalidraw .Dialog__close:hover{color:var(--color-gray-60)}.excalidraw .Dialog__close:active{color:var(--color-gray-40)}.excalidraw .Dialog__close svg{height:1.5rem;width:1.5rem}.excalidraw .Dialog__close+.Dialog__content{--offset:28px;height:calc(100% - var(--offset))!important;margin-top:var(--offset)!important}.excalidraw .Dialog--fullscreen .Dialog__close{right:1.25rem;top:1.25rem}.undo-redo-buttons,.zoom-actions{background-color:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest)}.undo-redo-buttons button,.zoom-button{background-color:var(--color-surface-low)!important;border-radius:0!important;font-size:.875rem!important;height:var(--lg-button-size);width:var(--lg-button-size)}.undo-redo-buttons button svg,.zoom-button svg{height:var(--lg-icon-size)!important;width:var(--lg-icon-size)!important}.undo-redo-buttons button .ToolIcon__icon,.zoom-button .ToolIcon__icon{height:100%;width:100%}.reset-zoom-button{border-left:0!important;border-right:0!important;color:var(--text-primary-color);justify-content:center!important;padding:0 .625rem!important;width:3.25rem!important}.zoom-out-button{border-bottom-left-radius:var(--border-radius-lg)!important;border-top-left-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-out-button{transform:scaleX(-1)}.zoom-out-button .ToolIcon__icon{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.zoom-in-button{border-bottom-right-radius:var(--border-radius-lg)!important;border-top-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .zoom-in-button{transform:scaleX(-1)}.zoom-in-button .ToolIcon__icon{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.undo-redo-buttons .undo-button-container button{border-bottom-left-radius:var(--border-radius-lg)!important;border-right:0!important;border-top-left-radius:var(--border-radius-lg)!important}:root[dir=rtl] .undo-redo-buttons .undo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .undo-button-container button .ToolIcon__icon{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.undo-redo-buttons .redo-button-container button{border-bottom-right-radius:var(--border-radius-lg)!important;border-top-right-radius:var(--border-radius-lg)!important}:root[dir=rtl] .undo-redo-buttons .redo-button-container button{transform:scaleX(-1)}.undo-redo-buttons .redo-button-container button .ToolIcon__icon{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.compact-shape-actions{display:flex;flex-direction:column;gap:.5rem;max-height:calc(100vh - 200px);overflow-y:auto;padding:.5rem}.compact-shape-actions .compact-action-item{align-items:center;display:flex;justify-content:center;min-height:2.5rem;pointer-events:auto;position:relative;--default-button-size:2rem}.compact-shape-actions .compact-action-item .compact-action-button{align-items:center;background:var(--mobile-action-button-bg);border:none;border-radius:var(--border-radius-lg);color:var(--color-on-surface);cursor:pointer;display:flex;height:var(--mobile-action-button-size);justify-content:center;transition:all .2s ease;width:var(--mobile-action-button-size)}.compact-shape-actions .compact-action-item .compact-action-button svg{flex:0 0 auto;height:1rem;width:1rem}.compact-shape-actions .compact-action-item .compact-action-button.active{background:var(--color-surface-primary-container,var(--mobile-action-button-bg))}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section{margin-bottom:1rem}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section:last-child{margin-bottom:0}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section .popover-section-title{color:var(--color-text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.compact-shape-actions .compact-action-item .compact-popover-content .popover-section .buttonList{display:flex;flex-wrap:wrap;gap:.25rem}.compact-shape-actions .ToolIcon .ToolIcon__icon{background:var(--mobile-action-button-bg);height:var(--mobile-action-button-size);width:var(--mobile-action-button-size)}.compact-shape-actions .ToolIcon .ToolIcon__icon:hover{background-color:transparent}.compact-shape-actions-island{overflow-x:hidden;width:-moz-fit-content;width:fit-content}.mobile-shape-actions{background:transparent;border-radius:var(--border-radius-lg);box-shadow:none;display:flex;flex-direction:row;justify-content:space-between;overflow:none;scrollbar-width:none;width:100%;z-index:999;-ms-overflow-style:none}.shape-actions-theme-scope{--button-border:transparent;--button-bg:var(--color-surface-mid)}:root.theme--dark .shape-actions-theme-scope{--button-hover-bg:#363541;--button-bg:var(--color-surface-high)}.excalidraw .tool-popover-content{background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);display:flex;flex-direction:row;gap:.25rem;padding:.5rem;z-index:var(--zIndex-layerUI)}.excalidraw .command-palette-dialog{-webkit-user-select:none;user-select:none}.excalidraw .command-palette-dialog .Modal__content{height:auto;max-height:100%}@media screen and (min-width:861px){.excalidraw .command-palette-dialog .Modal__content{height:100%;max-height:750px}}.excalidraw .command-palette-dialog .Modal__content .Island{height:100%;padding:1.5rem}.excalidraw .command-palette-dialog .Modal__content .Dialog__content{display:flex;flex-direction:column;height:100%}.excalidraw .command-palette-dialog .shortcuts-wrapper{align-items:center;display:flex;gap:1.5rem;justify-content:center;margin-top:12px}.excalidraw .command-palette-dialog .shortcut{align-items:center;display:flex;font-size:10px;gap:.25rem;height:16px;justify-content:center}.excalidraw .command-palette-dialog .shortcut .shortcut-wrapper{display:flex}.excalidraw .command-palette-dialog .shortcut .shortcut-plus{margin:0 4px}.excalidraw .command-palette-dialog .shortcut .shortcut-key{align-items:center;background-color:var(--color-primary-light);border-radius:4px;display:flex;height:16px;justify-content:center;padding:0 4px}.excalidraw .command-palette-dialog .shortcut .shortcut-desc{color:var(--color-gray-50);margin-left:4px}.excalidraw .command-palette-dialog .commands{box-sizing:border-box;color:var(--popup-text-color);margin-top:12px;overflow-y:auto;-webkit-user-select:none;user-select:none}.excalidraw .command-palette-dialog .commands .command-category{display:flex;flex-direction:column;margin-right:.25rem;padding:12px 0}.excalidraw .command-palette-dialog .commands .command-category-title{align-items:center;display:flex;font-size:1rem;font-weight:600;margin-bottom:6px}.excalidraw .command-palette-dialog .commands .command-item{align-items:center;border-radius:var(--border-radius-lg);box-sizing:border-box;color:var(--popup-text-color);cursor:pointer;display:flex;height:2.5rem;justify-content:space-between;padding:0 .5rem;--icon-size:1rem}.excalidraw .command-palette-dialog .commands .command-item.command-item-large{height:2.75rem;--icon-size:1.5rem}.excalidraw .command-palette-dialog .commands .command-item.command-item-large .icon{height:var(--icon-size);margin-right:.625rem;width:var(--icon-size)}.excalidraw .command-palette-dialog .commands .command-item:active{background-color:var(--color-surface-low)}.excalidraw .command-palette-dialog .commands .command-item .name{align-items:center;display:flex;gap:.25rem;overflow:hidden}.excalidraw .command-palette-dialog .commands .item-selected{background-color:var(--color-surface-mid)}.excalidraw .command-palette-dialog .commands .item-disabled{cursor:not-allowed;opacity:.3}.excalidraw .command-palette-dialog .commands .no-match{align-items:center;display:flex;justify-content:center;margin-top:36px}.excalidraw .command-palette-dialog .icon{height:var(--icon-size,1rem);margin-right:.375rem;width:var(--icon-size,1rem)}.excalidraw .command-palette-dialog .icon .library-item-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.excalidraw .excalidraw-canvas-buttons{background:var(--island-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 2px 4px 0 rgba(0,0,0,.3);display:flex;flex-direction:column;gap:.375rem;position:absolute;z-index:var(--zIndex-canvasButtons)}.excalidraw .popover{outline:none;padding:5px 0;position:absolute;z-index:10}.excalidraw .context-menu-popover{z-index:var(--zIndex-ui-context-menu)}.excalidraw .context-menu{background-color:var(--popup-secondary-bg-color);border-radius:4px;box-shadow:0 3px 10px rgba(0,0,0,.2);cursor:default;list-style:none;margin:-.25rem 0 0 .125rem;padding:.5rem 0;position:relative;-webkit-user-select:none;user-select:none}body.is-mobile .excalidraw .context-menu{border:inherit;padding:5px .5rem 5px 2rem}.excalidraw .context-menu button{color:var(--popup-text-color)}.excalidraw .context-menu-item{align-items:center;background-color:transparent;border:none;border-radius:0;display:grid;font-family:inherit;grid-template-columns:1fr .2fr;margin:0;min-width:9.5rem;padding:.25rem 1rem .25rem 1.25rem;position:relative;text-align:start;white-space:nowrap;width:100%}.excalidraw .context-menu-item.checkmark:before{content:"✓";left:6px;margin-bottom:1px;position:absolute}body.is-mobile .excalidraw .context-menu-item.checkmark:before{left:-1.3rem}.excalidraw .context-menu-item.dangerous .context-menu-item__label{color:#f03e3e}.excalidraw .context-menu-item .context-menu-item__label{justify-self:start;margin-inline-end:20px}.excalidraw .context-menu-item .context-menu-item__shortcut{font-family:inherit;font-size:.7rem;justify-self:end;opacity:.6}.excalidraw .context-menu-item:hover{background-color:var(--select-highlight-color)}.excalidraw .context-menu-item:hover.dangerous{background-color:#fa5252}.excalidraw .context-menu-item:hover.dangerous .context-menu-item__label{color:var(--popup-bg-color)}.excalidraw .context-menu-item:focus{z-index:1}.excalidraw--mobile.excalidraw .context-menu-item{display:block}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__label{margin-inline-end:0}.excalidraw--mobile.excalidraw .context-menu-item .context-menu-item__shortcut{display:none}.excalidraw .context-menu-item-separator{border:none;border-top:1px solid #adb5bd;margin:0}.excalidraw .follow-mode{align-items:flex-end;border:2px solid var(--color-primary-hover);box-sizing:border-box;display:flex;justify-content:center;pointer-events:none;position:absolute;z-index:9999}.excalidraw .follow-mode__badge{align-items:center;background-color:var(--color-primary-hover);border-radius:.5rem;color:var(--color-primary-light);display:flex;font-size:.75rem;gap:.5rem;margin-bottom:.5rem;padding:.25rem .5rem;pointer-events:all}.excalidraw .follow-mode__badge__label{display:flex;line-height:1;white-space:pre-wrap}.excalidraw .follow-mode__badge__username{display:block;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .follow-mode__disconnect-btn{all:unset;border-radius:.25rem;cursor:pointer}.excalidraw .follow-mode__disconnect-btn:hover{background-color:var(--color-primary-darker)}.excalidraw .follow-mode__disconnect-btn:active{background-color:var(--color-primary-darkest)}.excalidraw .follow-mode__disconnect-btn svg{display:block;height:1rem;width:1rem}.excalidraw .excalidraw-mobile-toolbar{align-items:center;border-radius:var(--space-factor);display:flex;flex:1;gap:4px;overflow-x:auto;padding:0;scrollbar-width:none;-ms-overflow-style:none;justify-content:space-between}.excalidraw .excalidraw-mobile-toolbar::-webkit-scrollbar{display:none}.excalidraw .excalidraw-mobile-toolbar .ToolIcon{align-items:center;border-radius:4px;display:flex;flex-shrink:0;justify-content:center;min-height:2rem;min-width:2rem}.excalidraw .excalidraw-mobile-toolbar .ToolIcon .ToolIcon__icon{height:2.25rem;width:2.25rem}.excalidraw .excalidraw-mobile-toolbar .ToolIcon .ToolIcon__icon:hover{background-color:transparent}.excalidraw .excalidraw-mobile-toolbar .ToolIcon.active{background:var(--color-surface-primary-container,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .excalidraw-mobile-toolbar .ToolIcon svg{height:1rem;width:1rem}.excalidraw .excalidraw-mobile-toolbar .App-toolbar__extra-tools-dropdown{min-width:160px;z-index:var(--zIndex-layerUI)}.excalidraw .excalidraw-mobile-toolbar-separator{background:var(--default-border-color);flex-shrink:0;height:24px;margin:0 2px;width:1px}.excalidraw .excalidraw-mobile-toolbar-undo{align-items:center;display:flex}.excalidraw .excalidraw-mobile-toolbar-undo .ToolIcon{height:32px;min-height:32px;min-width:32px;width:32px}.excalidraw .FixedSideContainer{pointer-events:none;position:absolute}.excalidraw .FixedSideContainer>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .FixedSideContainer_side_top{bottom:var(--editor-container-padding);left:var(--editor-container-padding);right:var(--editor-container-padding);top:var(--editor-container-padding)}.excalidraw .FixedSideContainer_side_top.zen-mode{right:42px}.excalidraw .drag-input-container{border-radius:var(--border-radius-lg);display:flex;width:100%}.excalidraw .drag-input-container:focus-within{background:transparent;border-radius:var(--border-radius-md);box-shadow:0 0 0 1px var(--color-primary-darkest)}.excalidraw .disabled{opacity:.5;pointer-events:none}.excalidraw .drag-input-label{align-items:center;border:0;box-sizing:content-box;color:var(--popup-text-color);display:flex;flex-shrink:0;height:2rem;justify-content:center;min-width:1rem;padding:0 .5rem 0 .25rem;position:relative;width:1.5rem}.excalidraw .drag-input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:var(--text-primary-color);font-family:inherit;font-size:.875rem;height:2rem;letter-spacing:.4px;margin:0;outline:none;padding:.5rem .5rem .5rem .25rem;width:100%}.excalidraw .drag-input:focus-visible{box-shadow:none}.exc-stats{font-size:12px;pointer-events:var(--ui-pointerEvents);position:fixed;right:3em;top:60px;width:204px;z-index:var(--zIndex-layerUI)}:root[dir=rtl] .exc-stats{left:3em;right:auto}.exc-stats h2{font-size:1.5em;font-weight:700;margin-block-end:.83em;margin-block-start:.83em}.exc-stats h3{font-size:1.17em;font-weight:700;margin:0;white-space:nowrap}.exc-stats__rows{display:flex;flex-direction:column;gap:.3125rem}.exc-stats__row{align-items:center;display:flex;display:grid;gap:4px;justify-content:space-between}.exc-stats__row div+div{text-align:right}.exc-stats__row:empty{display:none}.exc-stats__row--heading{font-weight:700;margin:.25rem 0;text-align:center}.exc-stats .title{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.exc-stats .title h2{margin:0}.exc-stats .close{cursor:pointer;height:16px;width:16px}.exc-stats .close svg{height:100%;width:100%}.excalidraw .PasteChartDialog .PasteChartDialog__title{align-items:center;display:flex;gap:.5rem}.excalidraw .PasteChartDialog .PasteChartDialog__titleText{min-width:0}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn{align-items:center;border-radius:4px;color:var(--text-primary-color);cursor:pointer;display:inline-flex;flex:0 0 auto;height:1rem;justify-content:center;margin-left:auto;transition:transform .12s ease,background-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none;width:1rem}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn:hover{color:#228be6}.excalidraw .PasteChartDialog .PasteChartDialog__reshuffleBtn:active{transform:scale(.94)}.excalidraw--mobile.excalidraw .PasteChartDialog .Island{display:flex;flex-direction:column}.excalidraw .PasteChartDialog .container{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.excalidraw--mobile.excalidraw .PasteChartDialog .container{align-items:stretch;flex-direction:column;justify-content:center}.excalidraw .PasteChartDialog .ChartPreview{align-items:stretch;background:transparent;border:1px solid #ced4da;border-radius:8px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;min-height:190px;padding:10px;width:260px}.excalidraw .PasteChartDialog .ChartPreview .ChartPreview__canvas{align-items:center;display:flex;flex:1;justify-content:center;overflow:hidden}.excalidraw .PasteChartDialog .ChartPreview .ChartPreview__label{color:var(--text-primary-color);font-size:.875rem;font-weight:600;line-height:1;text-align:center}.excalidraw .PasteChartDialog .ChartPreview svg{max-height:144px;max-width:100%}.excalidraw .PasteChartDialog .ChartPreview:hover{border-color:#339af0}.excalidraw .PasteChartDialog .ChartPreview:active{border-color:#339af0;box-shadow:0 0 0 1px #339af0;transform:scale(.98)}.excalidraw .PasteChartDialog .ChartPreview:focus-visible{border-color:#339af0;box-shadow:0 0 0 1px #339af0}.excalidraw--mobile.excalidraw .PasteChartDialog .ChartPreview{min-height:200px;width:100%}.excalidraw{--avatar-size:1.75rem;--avatarList-gap:0.625rem;--userList-padding:var(--space-factor);--userlist-hint-bg-color:var(--color-gray-10);--userlist-hint-heading-color:var(--color-gray-80);--userlist-hint-text-color:var(--color-gray-60);--userlist-collaborators-border-color:var(--color-gray-20)}.excalidraw.theme--dark{--userlist-hint-bg-color:var(--color-gray-90);--userlist-hint-heading-color:var(--color-gray-30);--userlist-hint-text-color:var(--color-gray-40);--userlist-collaborators-border-color:var(--color-gray-80)}.excalidraw .UserList__wrapper{pointer-events:none!important;width:100%}.excalidraw .UserList,.excalidraw .UserList__wrapper{align-items:center;display:flex;justify-content:flex-end}.excalidraw .UserList{box-sizing:border-box;flex-wrap:wrap;gap:var(--avatarList-gap);padding:var(--userList-padding);pointer-events:none;--max-size:calc(var(--avatar-size)*var(--max-avatars, 2) + var(--avatarList-gap)*(var(--max-avatars, 2) - 1) + var(--userList-padding)*2);max-height:var(--max-size);max-width:var(--max-size)}.excalidraw .UserList>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .UserList_mobile{justify-content:normal;margin:.5rem 0;max-height:none;max-width:none;padding:0}.excalidraw .UserList__more{align-items:center;border-radius:100%;color:var(--color-gray-90);cursor:pointer;display:flex;flex:0 0 auto;font-size:.75rem;height:var(--avatar-size,1.5rem);justify-content:center;line-height:1;outline-offset:2px;position:relative;width:var(--avatar-size,1.5rem)}.excalidraw .UserList__more:active{transform:scale(.94)}.excalidraw .UserList__more-img{border-radius:100%;height:100%;width:100%}.excalidraw .UserList__more:before{border-radius:100%;bottom:-3px;content:"";left:-3px;position:absolute;right:-3px;top:-3px}.excalidraw .UserList__more.is-followed:before{border-color:var(--color-primary-hover);box-shadow:0 0 0 1px var(--color-primary-hover)}.excalidraw .UserList__more.is-current-user{cursor:auto}.excalidraw .UserList__more{background-color:var(--color-gray-20);border:0!important;color:var(--color-gray-100);flex-shrink:0;font-size:.625rem;font-weight:400;font-weight:700}.excalidraw .UserList__collaborator-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .UserList__collaborator--avatar-only{display:flex;flex:0 0 auto;position:relative}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon{--size:14px;bottom:-.25rem;display:flex;flex:0 0 auto;height:var(--size);position:absolute;right:-.25rem;width:var(--size)}.excalidraw .UserList__collaborator--avatar-only .UserList__collaborator-status-icon svg{flex:0 0 auto;height:var(--size);width:var(--size)}.excalidraw .UserList__collaborator-status-icons{display:flex;flex:0 0 auto;gap:.25rem;justify-content:flex-end;margin-left:auto;min-width:2.25rem}.excalidraw .UserList__collaborator.is-muted .UserList__collaborator-status-icon-microphone-muted{color:var(--color-danger);filter:drop-shadow(0 0 0 rgba(0,0,0,.5))}.excalidraw .UserList__collaborator-status-icon-speaking-indicator{align-items:center;box-sizing:border-box;display:flex;flex-flow:row nowrap;justify-content:space-between;padding:0 3px;width:1rem}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div{background-color:#a2f1a6;height:.4rem;width:.125rem}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:first-of-type{animation:speaking-indicator-anim 1s ease-in-out -.45s infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(2){animation:speaking-indicator-anim 1s ease-in-out -.9s infinite}.excalidraw .UserList__collaborator-status-icon-speaking-indicator div:nth-of-type(3){animation:speaking-indicator-anim 1s ease-in-out -.15s infinite}@keyframes speaking-indicator-anim{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.excalidraw .UserList__collaborators{max-height:50vh;top:auto}.excalidraw .sidebar-trigger{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);font-size:.75rem;gap:.5rem;height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;letter-spacing:.4px;line-height:0;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .sidebar-trigger svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .sidebar-trigger:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .sidebar-trigger:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .sidebar-trigger.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .sidebar-trigger.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .sidebar-trigger{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .sidebar-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .sidebar-trigger{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .sidebar-trigger svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .sidebar-trigger__label-element{align-self:flex-start}.excalidraw .default-sidebar-trigger .sidebar-trigger__label{display:block;white-space:nowrap}.excalidraw.excalidraw--mobile .default-sidebar-trigger .sidebar-trigger__label{display:none}.excalidraw .sidebar{background-color:var(--sidebar-bg-color);border-left:1px solid var(--sidebar-border-color);border-radius:0;bottom:0;box-shadow:var(--sidebar-shadow);box-sizing:border-box;display:flex;flex-direction:column;margin:0;overflow:hidden;padding:0;pointer-events:var(--ui-pointerEvents);position:absolute;right:0;top:0;width:calc(var(--right-sidebar-width) - var(--space-factor)*2);z-index:var(--zIndex-ui-library)}:root[dir=rtl] .excalidraw .sidebar{left:0;right:auto}.excalidraw .sidebar--docked{box-shadow:none}:root[dir=rtl] .excalidraw .sidebar{border-left:0;border-right:1px solid var(--sidebar-border-color)}.excalidraw .sidebar__header{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;padding:1rem .75rem;position:relative;width:100%}.excalidraw .sidebar__header:after{background:var(--sidebar-border-color);bottom:-1px;content:"";height:1px;position:absolute;width:calc(100% - 1.5rem)}.excalidraw .sidebar__header__buttons{align-items:center;display:flex;gap:0;margin-left:auto}.excalidraw .sidebar__header__buttons button{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;width:var(--button-width,var(--default-button-size));--button-bg:transparent;border:0!important;height:var(--lg-button-size);padding:0;width:var(--lg-button-size)}.excalidraw .sidebar__header__buttons button svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .sidebar__header__buttons button:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .sidebar__header__buttons button:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .sidebar__header__buttons button.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .sidebar__header__buttons button.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .sidebar__header__buttons button{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .sidebar__header__buttons button svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .sidebar__header__buttons button:hover{background:var(--button-hover-bg,var(--island-bg-color))}.excalidraw .sidebar__header__buttons .sidebar__dock.selected svg{fill:var(--color-primary);stroke:var(--color-primary)}.excalidraw .sidebar-tabs-root{display:flex;flex:1 1 auto;flex-direction:column;padding:1rem 0}.excalidraw .sidebar-tabs-root [role=tabpanel]{display:flex;flex:1;flex:1 1 auto;flex-direction:column;outline:none}.excalidraw .sidebar-tabs-root [role=tabpanel][data-state=inactive]{display:none!important}.excalidraw .sidebar-tabs-root [role=tablist]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.excalidraw .sidebar-tabs-root>.sidebar__header{padding-bottom:1rem;padding-top:0}.excalidraw .sidebar-tab-trigger{--button-width:auto;--button-bg:transparent;--button-hover-bg:transparent;--button-active-bg:var(--color-primary);--button-hover-color:var(--color-primary);--button-hover-border:var(--color-primary)}.excalidraw .sidebar-tab-trigger[data-state=active]{--button-bg:var(--color-primary);--button-hover-bg:var(--color-primary-darker);--button-hover-color:var(--color-icon-white);--button-border:var(--color-primary);color:var(--color-icon-white)}.excalidraw .default-sidebar{display:flex;flex-direction:column}.excalidraw .default-sidebar .sidebar-triggers{background:var(--default-bg-color);border:1px solid var(--sidebar-border-color);border-radius:.625rem;display:flex;gap:0;margin-bottom:-3px;margin-top:-3px;padding:2px}.excalidraw .default-sidebar .sidebar-triggers .sidebar-tab-trigger{border:none;height:var(--lg-button-size);width:var(--lg-button-size)}.excalidraw{--RadioGroup-background:var(--island-bg-color);--RadioGroup-border:var(--color-surface-high);--RadioGroup-choice-color-off:var(--color-primary);--RadioGroup-choice-color-off-hover:var(--color-brand-hover);--RadioGroup-choice-background-off:var(--island-bg-color);--RadioGroup-choice-background-off-active:var(--color-surface-high);--RadioGroup-choice-color-on:var(--color-surface-lowest);--RadioGroup-choice-background-on:var(--color-primary);--RadioGroup-choice-background-on-hover:var(--color-brand-hover);--RadioGroup-choice-background-on-active:var(--color-brand-active)}.excalidraw .RadioGroup{align-items:flex-start;background:var(--RadioGroup-background);border:1px solid var(--RadioGroup-border);border-radius:10px;box-sizing:border-box;display:flex;flex-direction:row;gap:2px;padding:3px}.excalidraw .RadioGroup__choice{align-items:center;background:var(--RadioGroup-choice-background-off);border-radius:8px;color:var(--RadioGroup-choice-color-off);display:flex;font-family:Assistant;font-size:.75rem;font-style:normal;font-weight:600;height:24px;justify-content:center;letter-spacing:.4px;line-height:100%;min-width:20px;padding:0 .375rem;position:relative;transition:all 75ms ease-out;-webkit-user-select:none;user-select:none}.excalidraw .RadioGroup__choice:hover{color:var(--RadioGroup-choice-color-off-hover)}.excalidraw .RadioGroup__choice:active{background:var(--RadioGroup-choice-background-off-active)}.excalidraw .RadioGroup__choice.active{background:var(--RadioGroup-choice-background-on);color:var(--RadioGroup-choice-color-on)}.excalidraw .RadioGroup__choice.active:hover{background:var(--RadioGroup-choice-background-on-hover)}.excalidraw .RadioGroup__choice.active:active{background:var(--RadioGroup-choice-background-on-active)}.excalidraw .RadioGroup__choice input{-webkit-appearance:none;appearance:none;border-radius:8px;cursor:pointer;height:100%;margin:0;padding:0;position:absolute;width:100%;z-index:1}.excalidraw .ActiveFile .ActiveFile__fileName{align-items:center;display:flex}.excalidraw .ActiveFile .ActiveFile__fileName span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:9.3em}.excalidraw .ActiveFile .ActiveFile__fileName svg{margin-inline-end:.3em;transform:scaleY(.9);width:1.15em}@keyframes successStatusAnimation{0%{transform:scale(.35)}50%{transform:scale(1.25)}to{transform:scale(1)}}.excalidraw .ExcButton{--text-color:transparent;--border-color:transparent;--back-color:transparent;background-color:var(--back-color);border-color:var(--border-color);border-radius:.5rem;border-style:solid;border-width:1px;color:var(--text-color);font-family:var(--font-family);-webkit-user-select:none;user-select:none}.excalidraw .ExcButton:hover{transition:all .15s ease-out}.excalidraw .ExcButton .Spinner{--spinner-color:var(--color-surface-lowest)}.excalidraw .ExcButton .ExcButton__statusIcon{animation:successStatusAnimation .5s cubic-bezier(.3,1,.6,1);height:1.2rem;position:absolute;visibility:visible;width:1.2rem}.excalidraw .ExcButton.ExcButton--status-loading,.excalidraw .ExcButton.ExcButton--status-success{background-color:var(--color-success);pointer-events:none}.excalidraw .ExcButton.ExcButton--status-loading .ExcButton__contents,.excalidraw .ExcButton.ExcButton--status-success .ExcButton__contents{visibility:hidden}.excalidraw .ExcButton[disabled]{cursor:not-allowed}.excalidraw .ExcButton[disabled].ExcButton--variant-filled,.excalidraw .ExcButton[disabled]:hover{--back-color:var(--color-surface-low)!important;--text-color:var(--color-on-surface-variant)!important}.excalidraw .ExcButton[disabled].ExcButton--variant-icon,.excalidraw .ExcButton[disabled].ExcButton--variant-outlined{--text-color:var(--color-on-surface-variant);--border-color:var(--color-surface-high)}.excalidraw .ExcButton,.excalidraw .ExcButton__contents{align-items:center;display:flex;flex-shrink:0;flex-wrap:nowrap;justify-content:center;position:relative}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled{--text-color:var(--color-surface-lowest);--back-color:var(--color-primary)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:hover{--back-color:var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-filled:active{--back-color:var(--color-brand-active)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined{--text-color:var(--color-primary);--border-color:var(--color-primary);--back-color:transparent}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:hover{--text-color:var(--color-brand-hover);--border-color:var(--color-brand-hover)}.excalidraw .ExcButton--color-primary.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-primary.ExcButton--variant-outlined:active{--text-color:var(--color-brand-active);--border-color:var(--color-brand-active)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled{--text-color:var(--color-danger-text);--back-color:var(--color-danger-dark)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:hover{--back-color:var(--color-danger-darker)}.excalidraw .ExcButton--color-danger.ExcButton--variant-filled:active{--back-color:var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined{--text-color:var(--color-danger);--border-color:var(--color-danger);--back-color:transparent}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:hover{--text-color:var(--color-danger-darkest);--border-color:var(--color-danger-darkest)}.excalidraw .ExcButton--color-danger.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-danger.ExcButton--variant-outlined:active{--text-color:var(--color-danger-darker);--border-color:var(--color-danger-darker)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled{--text-color:var(--color-success-text);--back-color:var(--color-success)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled .Spinner{--spinner-color:var(--color-success)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled:hover{--back-color:var(--color-success-darker)}.excalidraw .ExcButton--color-success.ExcButton--variant-filled:active{--back-color:var(--color-success-darkest)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined{--text-color:var(--color-success-contrast);--border-color:var(--color-success-contrast);--back-color:transparent}.excalidraw .ExcButton--color-success.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined .Spinner{--spinner-color:var(--color-success-contrast)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined:hover{--text-color:var(--color-success-contrast-hover);--border-color:var(--color-success-contrast-hover)}.excalidraw .ExcButton--color-success.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-success.ExcButton--variant-outlined:active{--text-color:var(--color-success-contrast-active);--border-color:var(--color-success-contrast-active)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled{--text-color:var(--island-bg-color);--back-color:var(--color-gray-50)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:hover{--back-color:var(--color-gray-60)}.excalidraw .ExcButton--color-muted.ExcButton--variant-filled:active{--back-color:var(--color-gray-80)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined{--text-color:var(--color-muted-background);--border-color:var(--color-muted);--back-color:var(--island-bg-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:hover{--text-color:var(--color-muted-background-darker);--border-color:var(--color-muted-darker)}.excalidraw .ExcButton--color-muted.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-muted.ExcButton--variant-outlined:active{--text-color:var(--color-muted-background-darker);--border-color:var(--color-muted-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled{--text-color:#000;--back-color:var(--color-warning-dark)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:hover{--back-color:var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-filled:active{--back-color:var(--color-warning-darkest)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined{--text-color:var(--color-warning-dark);--border-color:var(--color-warning-dark);--back-color:var(--input-bg-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon .Spinner,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined .Spinner{--spinner-color:var(--text-color)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:hover,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:hover{--text-color:var(--color-warning-darker);--border-color:var(--color-warning-darker)}.excalidraw .ExcButton--color-warning.ExcButton--variant-icon:active,.excalidraw .ExcButton--color-warning.ExcButton--variant-outlined:active{--text-color:var(--color-warning-darkest);--border-color:var(--color-warning-darkest)}.excalidraw .ExcButton--size-large{font-size:.875rem;font-weight:600;letter-spacing:.4px;min-height:3rem;padding:.5rem 1.5rem}.excalidraw .ExcButton--size-large .ExcButton__contents{gap:.75rem}.excalidraw .ExcButton--size-medium{font-size:.75rem;font-weight:600;letter-spacing:normal;min-height:2.5rem;padding:.5rem 1rem}.excalidraw .ExcButton--size-medium .ExcButton__contents{gap:.5rem}.excalidraw .ExcButton--variant-icon{padding:.5rem .75rem;width:3rem}.excalidraw .ExcButton--fullWidth{width:100%}.excalidraw .ExcButton__icon{height:1.25rem;width:1.25rem}.excalidraw .OverwriteConfirm{align-items:center;display:flex;flex-direction:column;gap:.75rem;isolation:isolate}.excalidraw .OverwriteConfirm h3{align-self:flex-start;color:var(--text-primary-color);font-size:1.3125rem;font-weight:700;line-height:130%;margin:0}.excalidraw .OverwriteConfirm__Description{align-items:center;background:var(--color-danger-background);border-radius:.5rem;box-sizing:border-box;color:var(--color-danger-color);display:flex;flex-direction:row;font-family:Assistant;font-size:1rem;font-style:normal;font-weight:400;gap:1rem;line-height:150%;padding:2.5rem;width:100%}.excalidraw--mobile.excalidraw .OverwriteConfirm__Description{flex-direction:column;text-align:center}.excalidraw .OverwriteConfirm__Description__spacer{flex-grow:1}.excalidraw .OverwriteConfirm__Description__icon{align-items:center;background:var(--color-danger-icon-background);border-radius:2.5rem;box-sizing:border-box;display:flex;height:3.5rem;justify-content:center;padding:.75rem;width:3.5rem}.excalidraw .OverwriteConfirm__Description__icon svg{color:var(--color-danger-icon-color);height:1.5rem;width:1.5rem}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning{background:var(--color-warning-background);color:var(--color-warning-color)}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon{background:var(--color-warning-icon-background);flex:0 0 auto}.excalidraw .OverwriteConfirm__Description.OverwriteConfirm__Description--color-warning .OverwriteConfirm__Description__icon svg{color:var(--color-warning-icon-color)}.excalidraw .OverwriteConfirm__Actions{align-items:stretch;display:flex;flex-direction:row;gap:1.5rem;justify-content:center;justify-items:stretch}.excalidraw--mobile.excalidraw .OverwriteConfirm__Actions{flex-direction:column}.excalidraw .OverwriteConfirm__Actions__Action{align-items:center;display:flex;flex-basis:50%;flex-direction:column;flex-grow:0;gap:.75rem;padding:1.5rem}.excalidraw .OverwriteConfirm__Actions__Action__content{font-size:.875rem;height:100%;text-align:center}.excalidraw .OverwriteConfirm__Actions__Action h4{color:var(--text-primary-color);font-size:1.125rem;font-weight:700;line-height:130%;margin:0}.excalidraw .layer-ui__search{display:flex;flex:1 0 auto;flex-direction:column;padding:8px 0 0}.excalidraw .layer-ui__search-header{align-items:center;display:flex;justify-content:space-between;padding:0 .75rem}.excalidraw .layer-ui__search-header .ExcTextField{flex:1 0 auto}.excalidraw .layer-ui__search-header .ExcTextField__input{background-color:var(--color-gray-50);border:0;border-radius:var(--border-radius-md)}.excalidraw.theme--dark.excalidraw .layer-ui__search-header .ExcTextField__input{background-color:var(--color-gray-50)}.excalidraw .layer-ui__search-header .ExcTextField__input input::placeholder{font-size:.9rem}.excalidraw .layer-ui__search-count{align-items:center;display:flex;font-size:.8em;justify-content:space-between;margin:0 .75rem .25rem;padding:8px 8px 0}.excalidraw .layer-ui__search-count .result-nav{display:flex}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn{height:36px;width:36px;--button-border:transparent}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn:active{background-color:var(--color-surface-high)}.excalidraw .layer-ui__search-count .result-nav .result-nav-btn:first-child{margin-right:4px}.excalidraw .layer-ui__search-result-container{display:flex;flex:1 1 0;flex-direction:column;gap:.125rem;overflow-y:auto;padding:0 .75rem}.excalidraw .layer-ui__search .collapsible-items{gap:2px}.excalidraw .layer-ui__search-result-title{align-items:center;display:flex;font-size:.875rem;font-weight:700;gap:.25rem;margin-bottom:.25rem}.excalidraw .layer-ui__search-result-title .title-icon{height:.875rem;margin-right:.25rem;width:.875rem}.excalidraw .layer-ui__search-result-title .title-icon svg g{stroke-width:1.25}.excalidraw .layer-ui__divider{margin-bottom:1rem;margin-top:.25rem;position:relative;width:100%}.excalidraw .layer-ui__result-item{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex:0 0 auto;font-size:16px;min-height:1.875rem;outline:none;padding:.25rem .75rem}.excalidraw .layer-ui__result-item .text-icon{height:1rem;margin-right:.75rem;width:1rem}.excalidraw .layer-ui__result-item .preview-text{flex:1;line-height:24px;max-height:48px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.excalidraw .layer-ui__result-item:hover{background-color:var(--color-surface-high)}.excalidraw .layer-ui__result-item:active{border-color:var(--color-primary)}.excalidraw .layer-ui__result-item.active{background-color:var(--color-surface-high)}.excalidraw .dialog-mermaid-title{font-size:1.25rem;font-weight:700;margin-block:.25rem;padding-inline:2.5rem}.excalidraw.theme--dark .chat-message--assistant .chat-message__content{background:var(--color-surface-lowest)}.excalidraw.theme--dark .chat-message--system .chat-message__content{color:var(--color-surface-low)}.excalidraw .chat-interface{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}@media screen and (max-width:861px){.excalidraw .chat-interface{min-height:200px}}.excalidraw .chat-interface__messages{border-top-left-radius:var(--border-radius-lg);border-top-right-radius:var(--border-radius-lg);display:flex;flex:1 1 0;flex-direction:column;gap:2rem;margin-bottom:.5rem;min-height:0;overflow-y:auto;padding:1rem .5rem 0}@media screen and (max-width:861px){.excalidraw .chat-interface__messages{min-height:100px;padding:.75rem}}.excalidraw .chat-interface__welcome-screen{align-items:center;display:flex;height:100%;justify-content:center;min-height:200px}.excalidraw .chat-interface__welcome-screen__welcome-message{text-align:center}.excalidraw .chat-interface__welcome-screen__welcome-message h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.excalidraw .chat-interface__welcome-screen__welcome-message p{color:var(--color-on-surface);font-size:.875rem;margin:0 0 .2rem}@media screen and (max-width:861px){.excalidraw .chat-interface__welcome-screen{min-height:100px}}.excalidraw .chat-interface__input-outer{min-height:71px;position:relative}.excalidraw .chat-interface__input-container{display:flex;flex-direction:column;justify-content:flex-end}.excalidraw .chat-interface__input-wrapper{align-items:flex-end;background:var(--color-surface-lowest);border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);bottom:0;display:flex;gap:.5rem;left:0;padding:.75rem;position:absolute;right:0;transition:border-color .2s ease}.excalidraw .chat-interface__input-wrapper:focus-within{border-color:var(--color-primary)}@media screen and (max-width:861px){.excalidraw .chat-interface__input-wrapper{padding:.5rem .75rem}}.excalidraw .chat-interface__input{background:transparent!important;border:none;border:none!important;color:var(--color-on-surface);flex:1;font-size:.875rem;line-height:1.5;max-height:120px;min-height:24px;outline:none;overflow-x:hidden}.excalidraw .chat-interface__input::placeholder{color:var(--color-gray-40)}@media screen and (max-width:861px){.excalidraw .chat-interface__input{line-height:1.4;max-height:100px;min-height:20px;padding:0;resize:none}.excalidraw .chat-interface__input::placeholder{opacity:.6}}.excalidraw .chat-interface__send-button{align-items:center;background:var(--color-primary);border:none;border-radius:50%;color:var(--color-surface-lowest);cursor:pointer;display:flex;height:32px;justify-content:center;margin-bottom:8px;width:32px}.excalidraw .chat-interface__send-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.excalidraw .chat-interface__send-button:hover{background-color:var(--color-primary-darker)}.excalidraw .chat-interface__send-button svg{transform:rotate(-90deg)}.excalidraw .chat-message{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message--user{justify-content:flex-end}.excalidraw .chat-message--user .chat-message__content{background:var(--color-primary-light);border-radius:var(--border-radius-md);color:var(--text-primary-color);min-width:6rem}.excalidraw .chat-message--assistant{align-items:flex-start;flex-direction:column;justify-content:flex-start}.excalidraw .chat-message--assistant .chat-message__content{background:var(--color-surface-low);border-radius:var(--border-radius-md);color:var(--color-on-surface);min-width:6rem}.excalidraw .chat-message--assistant .chat-message__content .chat-message__body{font-family:monospace}.excalidraw .chat-message--system{justify-content:flex-start;margin-bottom:0}.excalidraw .chat-message--system .chat-message__content{background:var(--color-warning);border-radius:var(--border-radius-md);color:var(--color-on-surface);min-width:6rem}.excalidraw .chat-message--system .chat-message__content .chat-message__body{font-family:monospace}.excalidraw .chat-message__content{box-shadow:var(--chat-msg-shadow);max-width:80%;padding:.75rem 1rem}.excalidraw .chat-message__header{align-items:center;display:flex;font-size:.75rem;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.excalidraw .chat-message__role{font-weight:600}.excalidraw .chat-message__timestamp{font-size:.625rem}.excalidraw .chat-message__actions{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message__action{align-items:center;background:none;border:none;color:var(--color-gray-60);cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;padding:.25rem 0;transition:color .2s ease}.excalidraw .chat-message__action.invisible{pointer-events:none;visibility:hidden}.excalidraw .chat-message__action:hover{color:var(--color-primary)}.excalidraw .chat-message__action svg{height:14px;width:14px}.excalidraw .chat-message__action--danger:hover{color:var(--color-danger)}.excalidraw .chat-message__body{line-height:1.5}.excalidraw .chat-message__text{white-space:pre-wrap;word-wrap:break-word}.excalidraw .chat-message__cursor{animation:blink 1s infinite;color:currentColor;display:inline-block;margin-left:2px}.excalidraw .chat-message__loading{align-items:center;display:flex;gap:.5rem}.excalidraw .chat-message__typing-indicator{display:flex;gap:.25rem}.excalidraw .chat-message__typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:currentColor;border-radius:50%;height:6px;opacity:.4;width:6px}.excalidraw .chat-message__typing-indicator span:first-child{animation-delay:-.32s}.excalidraw .chat-message__typing-indicator span:nth-child(2){animation-delay:-.16s}.excalidraw .chat-message__typing-indicator span:nth-child(3){animation-delay:0s}.excalidraw .chat-message__error{color:var(--color-danger);font-weight:500;white-space:pre-wrap;word-wrap:break-word;display:flex;flex-direction:column;gap:.5rem}.excalidraw .chat-message__error_message{background:var(--color-warning-background);border-radius:var(--border-radius-md);color:var(--color-warning-color);font-size:.875rem;margin-top:1rem;padding:.5rem .75rem}.excalidraw .chat-message__error-link{align-items:center;background:none;border:none;color:var(--link-color);cursor:pointer;display:flex;font-family:inherit;font-size:.875rem;font-weight:500;margin-top:1rem;padding:0;text-decoration:underline}.excalidraw .chat-message__error-link:hover{color:var(--link-color-hover)}.excalidraw .chat-message__error-link:active{color:var(--link-color-active)}.excalidraw .chat-message__error-link:disabled{cursor:not-allowed;text-decoration:none}@keyframes typing{0%,80%,to{opacity:.4;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.excalidraw .Modal.Dialog.ttd-dialog{padding:1.25rem}.excalidraw .Modal.Dialog.ttd-dialog.Dialog--fullscreen{margin-top:0}.excalidraw .Modal.Dialog.ttd-dialog .Island{display:flex;flex:1 1 auto;flex-direction:column;height:100%;padding-inline:0!important}.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{height:100%;max-height:100%;min-height:95vh}@media screen and (min-width:861px){.excalidraw .Modal.Dialog.ttd-dialog .Modal__content{height:100%;max-height:min(950px,100vh - 4rem);min-height:unset}}.excalidraw .Modal.Dialog.ttd-dialog .Dialog__content{flex:1 1 auto}@media screen and (max-width:861px){.excalidraw .Modal.Dialog.ttd-dialog .Dialog__content{margin-top:0!important}}.excalidraw .ttd-dialog-desc{font-size:15px;font-style:italic;font-weight:500;margin:.5rem 0 1.5rem}.excalidraw .ttd-dialog-tabs-root{display:flex;flex-direction:column;height:100%;width:100%}.excalidraw .ttd-dialog-tab-trigger{background-color:transparent;border:0;color:var(--color-on-surface);font-family:inherit;font-size:.875rem;font-weight:600;height:2.875rem;letter-spacing:.4px;margin:0;padding:0 1rem}.excalidraw .ttd-dialog-tab-trigger[data-state=active]{border-bottom:2px solid var(--color-primary)}.excalidraw .ttd-dialog-tab-trigger__content{align-items:center;display:flex}.excalidraw .ttd-dialog-tab-trigger__badge{align-items:center;background:var(--color-promo);border-radius:12px;color:var(--color-surface-lowest);display:flex;font-size:10px;justify-content:center;margin-left:10px;padding:1px 6px}.excalidraw .ttd-dialog-triggers{border-bottom:1px solid var(--color-surface-high);margin-bottom:1rem;padding-inline:2.5rem}@media screen and (max-width:861px){.excalidraw .ttd-dialog-triggers{margin-bottom:1rem}}.excalidraw .ttd-dialog-content{display:flex;flex-direction:column;height:100%;outline:none;overflow:visible;padding-inline:2.5rem}.excalidraw .ttd-dialog-content[hidden]{display:none}@media screen and (max-width:861px){.excalidraw .ttd-dialog-content{flex-grow:1;padding-inline:1rem}}.excalidraw .ttd-dialog-panel__header .dropdown-menu{left:auto;margin:0;min-width:280px;right:0;z-index:2}.excalidraw .ttd-dialog-panel__header .dropdown-menu .dropdown-menu-container.dropdown-menu-container{background-color:var(--island-bg-color-alt);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-island);height:-moz-fit-content;height:fit-content;max-height:min(400px,70vh);overflow-y:auto;padding-inline:.5rem!important;padding-bottom:.5rem;padding-top:.5rem}.excalidraw .ttd-dialog-layout{display:grid;grid-template-columns:1fr 1fr;height:100%}.excalidraw .ttd-dialog-layout--split{gap:2rem;min-width:0}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split{grid-template-columns:1fr;grid-template-rows:1fr auto;grid-row-gap:0}}.excalidraw .ttd-dialog-layout--split .ttd-dialog-chat-panel{min-width:0}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split .ttd-dialog-chat-panel{flex:0 0 auto;height:auto;min-height:250px;width:100%}}.excalidraw .ttd-dialog-layout--split .ttd-dialog-preview-panel{min-width:0;overflow:hidden}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--split .ttd-dialog-preview-panel{flex:0 0 auto;height:unset;max-width:100%;min-height:280px;width:100%}}.excalidraw .ttd-dialog-layout--chat-only{grid-template-columns:1fr}.excalidraw .ttd-dialog-layout--chat-only .invisible{display:none}@media screen and (max-width:861px){.excalidraw .ttd-dialog-layout--chat-only .ttd-dialog-chat-panel{height:unset}.excalidraw .ttd-dialog-layout--chat-only .chat-interface{max-height:100%}.excalidraw .ttd-dialog-layout--chat-only .chat-interface__messages{max-height:unset}}.excalidraw .ttd-dialog-input{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;font-family:monospace;height:10rem;padding:.85rem;resize:none;white-space:pre-wrap;text-wrap:wrap!important;width:auto}@media screen and (min-width:861px){.excalidraw .ttd-dialog-input{height:100%;width:100%}}.excalidraw .ttd-dialog-input--loading{align-items:center;display:flex;justify-content:center}.excalidraw .ttd-dialog-input--codemirror{flex:1 1 0;height:0;min-height:0;overflow:hidden;padding:0}.excalidraw .ttd-dialog-input--codemirror .cm-editor{font-family:monospace;height:100%}.excalidraw .ttd-dialog-input--codemirror .cm-editor.cm-focused{outline:none}.excalidraw .ttd-dialog-input--codemirror .cm-scroller{overflow:auto;padding:.85rem 0}.excalidraw .ttd-dialog-input--codemirror .cm-gutters{padding-left:.25rem}.excalidraw .ttd-dialog-input--codemirror .cm-content{padding:0}.excalidraw .ttd-dialog-input--codemirror .cm-placeholder{color:var(--color-gray-40);font-style:italic}.excalidraw .ttd-dialog-output-wrapper{align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;height:400px;justify-content:center;max-height:100%;max-width:100%;overflow:hidden;position:relative;width:auto}@media screen and (max-width:600px){.excalidraw .ttd-dialog-output-wrapper{height:200px}}@media screen and (max-width:861px){.excalidraw .ttd-dialog-output-wrapper{max-width:100%;width:100%}}.excalidraw .ttd-dialog-output-wrapper--error{background:none;border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg)}.excalidraw .ttd-dialog-output-wrapper canvas{height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.excalidraw .ttd-dialog-output-canvas-container{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:100%}.excalidraw .ttd-dialog-output-canvas-container.invisible{pointer-events:none;visibility:hidden}.excalidraw .ttd-dialog-output-canvas-content{align-items:center;display:flex;flex-grow:1;height:100%;justify-content:center;width:100%}.excalidraw .ttd-dialog-output-canvas-content canvas{image-rendering:auto}.excalidraw .ttd-dialog-output-error{align-items:center;display:flex;justify-content:center;padding:2rem;position:absolute;z-index:10}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-content{align-items:center;background:var(--color-surface-primary);display:flex;flex-direction:column;gap:1rem;padding:2.5rem 2rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-icon{align-items:center;color:var(--color-danger);display:flex;justify-content:center}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-icon svg{height:52px;stroke-width:1.5;width:52px}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-title{color:var(--color-danger);font-size:1.25rem;font-weight:600;margin-top:.25rem;text-align:center}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary{color:var(--color-gray-50);font-size:.9rem;max-width:640px;text-align:left;width:100%}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__headline{color:var(--color-gray-60);font-weight:600}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__label{font-weight:500;margin-top:.35rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-summary__causes{margin:.35rem 0 0;padding-left:2rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-message{color:var(--color-gray-50);font-family:monospace;font-weight:400;max-width:640px;text-align:left;white-space:pre-wrap;width:100%;word-break:break-word}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-message__caret{color:var(--color-danger)}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-autofix-slot{align-items:flex-start;align-self:flex-start;display:flex;margin-top:.35rem;min-height:2.5rem}.excalidraw .ttd-dialog-output-error .ttd-dialog-output-error-autofix{margin-top:0;white-space:nowrap}.excalidraw .ttd-dialog-panels{height:100%}@media screen and (min-width:861px){.excalidraw .ttd-dialog-panels{display:grid;gap:2rem;grid-template-columns:1fr 1fr}}.excalidraw .ttd-dialog-chat-panel,.excalidraw .ttd-dialog-preview-panel{align-items:stretch;display:flex;flex-direction:column;height:100%;min-width:0;width:100%}.excalidraw .ttd-dialog-panel{display:flex;flex-direction:column;height:100%;width:100%}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel{height:50%}}.excalidraw .ttd-dialog-panel__header{align-items:center;display:flex;flex-shrink:0;gap:.3rem;height:36px;margin-bottom:.5rem;margin-top:.2rem}.excalidraw .ttd-dialog-panel__header label{font-size:14px;font-style:normal;font-weight:600;line-height:22px}.excalidraw .ttd-dialog-panel__label-wrapper{align-items:center;display:flex;justify-content:space-between;width:100%}.excalidraw .ttd-dialog-panel__label-group{display:flex;gap:5px}.excalidraw .ttd-dialog-panel__header-right{align-items:center;display:flex;gap:.75rem}.excalidraw .ttd-dialog-panel__rate-limit{font-size:.75rem;font-weight:500;white-space:nowrap}.excalidraw .ttd-dialog-panel__rate-limit--danger{color:var(--color-danger)}.excalidraw .ttd-dialog-panel__menu-wrapper{position:relative}.excalidraw .ttd-dialog-panel__menu-wrapper .ttd-dialog-menu-trigger{height:40px;width:40px}.excalidraw .ttd-dialog-panel__menu-wrapper .dropdown-menu{margin-top:.375rem;right:0}.excalidraw .ttd-dialog-panel textarea{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg);box-sizing:border-box;font-family:monospace;height:100%;padding:.85rem;resize:none;white-space:pre-wrap;width:100%}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel textarea{width:auto}}.excalidraw .ttd-dialog-panel-button-container{align-items:center;display:flex;flex-grow:0;flex-shrink:0;height:40px;margin-bottom:.5rem;margin-top:1rem}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-button-container{margin-top:.5rem}}.excalidraw .ttd-dialog-panel-button-container.invisible{visibility:hidden}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-button-container.invisible{display:none}}.excalidraw .ttd-dialog-panel-button.excalidraw-button{background-color:var(--color-primary);color:#fff;font-family:inherit;font-size:12px;font-weight:600;height:2.5rem;width:100%}.excalidraw .ttd-dialog-panel-button.excalidraw-button:hover{background-color:var(--color-primary-darker)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:active{background-color:var(--color-primary-darkest)}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled{cursor:not-allowed;opacity:.5}.excalidraw .ttd-dialog-panel-button.excalidraw-button:disabled:hover{background-color:var(--color-primary)}@media screen and (min-width:861px){.excalidraw .ttd-dialog-panel-button.excalidraw-button{min-width:7.5rem;width:auto}}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button.excalidraw-button{color:var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button{position:relative}.excalidraw .ttd-dialog-panel-button div{display:contents}.excalidraw .ttd-dialog-panel-button div.invisible{visibility:hidden}.excalidraw .ttd-dialog-panel-button div.Spinner{display:flex!important;inset:0;position:absolute;--spinner-color:#fff}.excalidraw.theme--dark.excalidraw .ttd-dialog-panel-button div.Spinner{--spinner-color:var(--color-gray-100)}.excalidraw .ttd-dialog-panel-button div span{display:flex;padding-left:.5rem}.excalidraw .ttd-dialog-submit-shortcut{display:flex;font-size:.625rem;gap:.125rem;margin-inline-start:.5rem;opacity:.6}.excalidraw .ttd-dialog-submit-shortcut__key{border:1px solid gray;border-radius:4px;padding:2px 3px}.excalidraw .ttd-dialog-panel-action-link{align-items:center;background:none;border:none;color:var(--color-primary);display:flex;font-family:inherit;font-weight:500;gap:.25rem;height:40px}.excalidraw .ttd-dialog-panel-action-link__icon{align-items:center;display:inline-flex}.excalidraw .ttd-dialog-panel-action-link__icon svg{height:12px;width:12px}@media screen and (max-width:861px){.excalidraw .ttd-dialog-panel-action-link{height:unset}}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item{align-items:center;border:1px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;display:flex;justify-content:space-between;margin-top:1px;padding:.25rem .5rem;position:relative;width:unset}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:hover{background-color:var(--button-hover-bg)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:active{border:1px solid var(--button-active-border)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item--active{background-color:var(--color-surface-primary-container)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item:hover .ttd-chat-menu-item__delete{visibility:visible}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;margin-left:.5rem;padding:.25rem;visibility:hidden}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete:hover{color:var(--color-danger)}.excalidraw.theme--dark.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete svg{color:var(--color-on-surface)}.excalidraw.theme--dark.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete:hover svg{color:var(--color-danger)}.excalidraw .dropdown-menu-item-custom.ttd-chat-menu-item .ttd-chat-menu-item__delete svg{height:16px;width:16px}.excalidraw .ttd-dialog-preview-panel--hidden{display:none}.excalidraw .ttd-chat-history-menu{align-items:center;display:flex;gap:1rem}.excalidraw .ElementLinkDialog{background-color:var(--island-bg-color);border-radius:10px;box-shadow:var(--shadow-island);display:flex;flex-direction:column;justify-content:space-between;left:var(--editor-container-padding);padding:1.5rem;position:absolute;top:var(--editor-container-padding);z-index:var(--zIndex-modal)}.excalidraw--mobile.excalidraw .ElementLinkDialog{box-sizing:border-box;left:0;margin-left:.5rem;margin-right:.5rem;width:calc(100% - 1rem);z-index:5}.excalidraw .ElementLinkDialog .ElementLinkDialog__header{margin-bottom:1.5rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__header h2{margin-bottom:.5rem;margin-top:0}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header h2{font-size:1.25rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__header p{margin:0}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header p{font-size:.875rem}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__header{margin-bottom:1rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input{display:flex}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__input-field{flex:1}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove{color:#c92a2a;margin-left:1rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove .ToolIcon__icon{height:2rem;width:2rem}.excalidraw .ElementLinkDialog .ElementLinkDialog__input .ElementLinkDialog__remove .ToolIcon__icon svg{color:#fa5252}.excalidraw .ElementLinkDialog .ElementLinkDialog__actions{display:flex;justify-content:flex-end;margin-top:1.5rem}.excalidraw--mobile.excalidraw .ElementLinkDialog .ElementLinkDialog__actions{font-size:.875rem;margin-top:1rem}.excalidraw .HelpDialog .Modal__content{max-width:960px}.excalidraw .HelpDialog h3{font-size:1.125rem;font-weight:700;margin:1.5rem 0}.excalidraw .HelpDialog__header{display:flex;flex-wrap:wrap;gap:.75rem}.excalidraw .HelpDialog__btn{--background:var(--color-surface-mid);align-items:center;background-color:var(--background);border:1px solid var(--background);border-radius:var(--border-radius-lg);color:var(--text-primary-color);column-gap:.5rem;display:flex;font-size:.75rem;font-weight:600;letter-spacing:.4px;padding:.625rem 1rem}.excalidraw.theme--dark.excalidraw .HelpDialog__btn{--background:var(--color-surface-high)}.excalidraw.theme--dark.excalidraw .HelpDialog__btn:hover{--background:#363541}.excalidraw .HelpDialog__btn:hover{--background:var(--color-surface-high);text-decoration:none}.excalidraw .HelpDialog__btn:active{border-color:var(--color-primary)}.excalidraw .HelpDialog__link-icon{line-height:0}.excalidraw .HelpDialog__link-icon svg{height:1rem;width:1rem}.excalidraw .HelpDialog__islands-container{display:grid;grid-column-gap:1.5rem;grid-row-gap:2rem}@media screen and (min-width:1024px){.excalidraw .HelpDialog__islands-container{grid-template-columns:1fr 1fr}.excalidraw .HelpDialog__island--tools{grid-area:1/1/2/2}.excalidraw .HelpDialog__island--view{grid-area:2/1/3/2}.excalidraw .HelpDialog__island--editor{grid-area:1/2/3/3}}.excalidraw .HelpDialog__island h4{font-size:1rem;font-weight:700;margin:0 0 .625rem}.excalidraw .HelpDialog__island-content{border:1px solid var(--dialog-border-color);border-radius:var(--border-radius-lg)}.excalidraw .HelpDialog__shortcut{align-items:center;border-bottom:1px solid var(--dialog-border-color);column-gap:.5rem;display:flex;font-size:.875rem;justify-content:space-between;padding:.375rem .75rem}.excalidraw .HelpDialog__shortcut:last-child{border-bottom:none}.excalidraw .HelpDialog__key-container{align-items:center;column-gap:.25rem;display:flex;flex-shrink:0}.excalidraw .HelpDialog__key{align-items:center;background-color:var(--color-primary-light);border-radius:var(--border-radius-md);box-sizing:border-box;display:flex;font-family:inherit;font-size:.625rem;line-height:1;padding:.5rem;word-break:keep-all}.excalidraw .HintViewer{box-sizing:border-box;color:var(--text-primary-color);display:flex;flex-direction:column;font-size:.75rem;justify-content:center;left:0;margin-top:.5rem;max-width:100%;pointer-events:none;position:absolute;text-align:center;top:100%;width:100%}.excalidraw--mobile.excalidraw .HintViewer{padding-right:2rem;position:static}.excalidraw .HintViewer>span{padding:.25rem}.excalidraw .HintViewer kbd{border:1px solid var(--color-gray-40);border-radius:4px;display:inline-block;font-family:monospace;font-size:10px;margin:0 1px;padding:1px 3px}.excalidraw.theme--dark .HintViewer{color:var(--color-gray-60)}.excalidraw.theme--dark .HintViewer kbd{border-color:var(--color-gray-60)}.excalidraw{--Switch-disabled-color:var(--color-border-outline);--Switch-disabled-toggled-background:var(--color-border-outline-variant);--Switch-disabled-border:var(--color-border-outline-variant);--Switch-track-background:var(--island-bg-color);--Switch-thumb-background:var(--color-on-surface);--Switch-hover-background:var(--color-brand-hover);--Switch-active-background:var(--color-brand-active)}.excalidraw .Switch{background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-color);border-radius:12px;box-sizing:border-box;height:20px;position:relative;transition-duration:.15s;transition-property:background,border;transition-timing-function:ease-out;width:40px}.excalidraw .Switch:hover{background:var(--Switch-track-background);border:1px solid var(--Switch-hover-background)}.excalidraw .Switch:active{border:1px solid var(--Switch-active-background)}.excalidraw .Switch.toggled{background:var(--color-primary);border:1px solid var(--color-primary)}.excalidraw .Switch.toggled:hover{background:var(--color-primary-darker);border:1px solid var(--color-primary-darker)}.excalidraw .Switch.disabled{background:var(--Switch-track-background);border:1px solid var(--Switch-disabled-border)}.excalidraw .Switch.disabled.toggled{background:var(--Switch-disabled-toggled-background);border:1px solid var(--Switch-disabled-toggled-background)}.excalidraw .Switch:before{background:var(--Switch-thumb-background);border-radius:100%;box-sizing:border-box;content:"";display:block;height:10px;left:4px;pointer-events:none;position:absolute;top:4px;transition:all .15s ease-out;width:10px}.excalidraw .Switch:active:before{width:12px}.excalidraw .Switch.toggled:before{background:var(--Switch-track-background);height:14px;left:22px;top:2px;width:14px}.excalidraw .Switch.toggled:active:before{left:20px;width:16px}.excalidraw .Switch.disabled.toggled:before,.excalidraw .Switch.disabled:before{background:var(--Switch-disabled-color)}.excalidraw .Switch input{-webkit-appearance:none;appearance:none;border-radius:12px;cursor:pointer;height:100%;margin:0;width:100%}.excalidraw .Switch input:disabled{cursor:unset}.excalidraw{--ImageExportModal-preview-border:#d6d6d6}.excalidraw.theme--dark{--ImageExportModal-preview-border:#5c5c5c}.excalidraw .ImageExportModal{display:flex;flex-direction:row;justify-content:space-between;-webkit-user-select:none;user-select:none}.excalidraw .ImageExportModal h3{font-family:Assistant;font-size:1.313rem;font-style:normal;font-weight:700;line-height:130%;margin:0;padding:0}.excalidraw .ImageExportModal>h3,.excalidraw--mobile.excalidraw .ImageExportModal h3{display:none}.excalidraw--mobile.excalidraw .ImageExportModal>h3{display:block}.excalidraw--mobile.excalidraw .ImageExportModal{flex-direction:column;height:calc(100vh - 5rem)}.excalidraw .ImageExportModal__preview{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;height:360px;margin-right:1.5rem;width:55%}.excalidraw--mobile.excalidraw .ImageExportModal__preview{flex-grow:1;height:unset;margin-right:unset;max-width:unset;width:100%}.excalidraw .ImageExportModal__preview__filename>input{margin-top:1rem}.excalidraw .ImageExportModal__preview__canvas{align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;border:1px solid var(--ImageExportModal-preview-border);border-radius:12px;box-sizing:border-box;display:flex;flex-grow:1;height:100%;justify-content:center;overflow:hidden;padding:1rem;width:100%}.excalidraw .ImageExportModal__preview__canvas>canvas{filter:none!important;max-height:calc(100% - 2rem);max-width:calc(100% - 2rem)}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas>canvas{max-height:100%}.excalidraw--mobile.excalidraw .ImageExportModal__preview__canvas{margin-top:24px;max-width:unset}.excalidraw .ImageExportModal__settings{display:flex;flex-direction:column;flex-wrap:wrap;gap:18px}.excalidraw--mobile.excalidraw .ImageExportModal__settings{align-content:flex-start;flex-direction:row;gap:6px 34px;margin-left:unset;margin-top:1rem}.excalidraw .ImageExportModal__settings__setting{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.excalidraw--mobile.excalidraw .ImageExportModal__settings__setting{align-items:start;flex-direction:column;height:52px;justify-content:unset}.excalidraw .ImageExportModal__settings__setting__label{align-items:center;display:flex;flex-direction:row;font-family:Assistant;font-size:1rem;font-weight:600;line-height:150%}.excalidraw .ImageExportModal__settings__setting__label svg{height:20px;margin-left:10px;width:20px}.excalidraw .ImageExportModal__settings__setting__content{align-items:center;display:flex;height:100%}.excalidraw .ImageExportModal__settings__buttons{align-content:flex-end;align-items:flex-end;display:flex;flex-direction:row;flex-grow:1;flex-wrap:wrap;gap:11px}.excalidraw--mobile.excalidraw .ImageExportModal__settings__buttons{flex-basis:100%;justify-content:center;padding-top:32px}.excalidraw .Card{align-items:center;display:flex;flex-direction:column;margin:1em;max-width:290px;text-align:center}.excalidraw .Card .Card-icon{background:var(--card-color);border-radius:50%;color:#fff;display:flex;flex:0 0 auto;font-size:2.6em;padding:1.4rem}.excalidraw .Card .Card-icon svg{height:2.8rem;width:2.8rem}.excalidraw .Card .Card-details{font-size:.96em;margin-bottom:auto;min-height:90px;padding:0 1em}.excalidraw .Card .Card-button.ToolIcon_type_button{background-color:var(--card-color);height:2.5rem;margin-bottom:.3em;margin-top:1em}.excalidraw .Card .Card-button.ToolIcon_type_button:hover{background-color:var(--card-color-darker)}.excalidraw .Card .Card-button.ToolIcon_type_button:active{background-color:var(--card-color-darkest)}.excalidraw .Card .Card-button.ToolIcon_type_button .ToolIcon__label{color:#fff}.excalidraw .Card .Card-button.ToolIcon_type_button .Spinner{--spinner-color:#fff}.excalidraw .ExportDialog__preview{--preview-padding:calc(var(--space-factor)*4);align-items:center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==) 0;display:flex;justify-content:center;margin-bottom:calc(var(--space-factor)*3);padding:var(--preview-padding);text-align:center}.excalidraw .ExportDialog__preview canvas{max-height:25rem;max-width:calc(100% - var(--preview-padding)*2)}.excalidraw.theme--dark .ExportDialog__preview canvas{filter:none}.excalidraw .ExportDialog__actions{display:flex;width:100%;grid-gap:calc(var(--space-factor)*2);align-items:top;justify-content:space-between}.excalidraw--mobile.excalidraw .ExportDialog{display:flex;flex-direction:column}.excalidraw--mobile.excalidraw .ExportDialog__actions{align-items:center;flex-direction:column}.excalidraw--mobile.excalidraw .ExportDialog__actions>*{margin-bottom:calc(var(--space-factor)*3)}.excalidraw--mobile.excalidraw .ExportDialog__preview canvas{max-height:30vh}.excalidraw--mobile.excalidraw .ExportDialog__dialog,.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{box-sizing:border-box;height:100%}.excalidraw--mobile.excalidraw .ExportDialog__dialog .Island{overflow-y:auto}.excalidraw .ExportDialog--json .ExportDialog-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-items:center;row-gap:2em}@media(max-width:460px){.excalidraw .ExportDialog--json .ExportDialog-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.excalidraw .ExportDialog--json .ExportDialog-cards .Card-details{min-height:40px}}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName{align-items:flex-start;flex-direction:column;margin:1em auto;width:-moz-fit-content;width:fit-content}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName .TextInput{width:auto}.excalidraw .ExportDialog--json .ExportDialog-cards .ProjectName-label{font-weight:700;margin:.625em 0}.excalidraw button.ExportDialog-imageExportButton{align-items:center;background-color:var(--button-color);border:0;border-radius:1rem;box-shadow:0 3px 5px -1px rgba(0,0,0,.28),0 6px 10px 0 rgba(0,0,0,.14);color:#fff;display:flex;font-family:Cascadia;font-size:1.8em;height:5rem;justify-content:center;margin:0 .2em;padding:0;width:5rem}.excalidraw button.ExportDialog-imageExportButton:hover{background-color:var(--button-color-darker)}.excalidraw button.ExportDialog-imageExportButton:active{background-color:var(--button-color-darkest);box-shadow:none}.excalidraw button.ExportDialog-imageExportButton svg{width:.9em}.excalidraw .layer-ui__wrapper.animate{transition:width .1s ease-in-out}.excalidraw .layer-ui__wrapper{height:100%;pointer-events:none;position:absolute;width:100%;z-index:var(--zIndex-layerUI)}.excalidraw .layer-ui__wrapper__top-right{display:flex;justify-content:flex-end;pointer-events:none!important;width:100%}.excalidraw .layer-ui__wrapper__top-right--compact{gap:.5rem}.excalidraw .layer-ui__wrapper__top-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper__footer{width:100%}.excalidraw .layer-ui__wrapper__footer-right{display:flex;z-index:100}.excalidraw .layer-ui__wrapper .zen-mode-transition{transition:transform .5s ease-in-out}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(-999px)}:root[dir=ltr] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right,:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-left{transform:translate(999px)}:root[dir=rtl] .excalidraw .layer-ui__wrapper .zen-mode-transition.transition-right{transform:translate(-999px)}.excalidraw .layer-ui__wrapper .zen-mode-transition.layer-ui__wrapper__footer-left--transition-bottom{transform:translateY(92px)}.excalidraw .layer-ui__wrapper .disable-zen-mode{background-color:var(--island-bg-color);border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);bottom:0;color:var(--text-primary-color);font-family:var(--ui-font);font-size:.75rem;font-weight:500;line-height:1;opacity:0;padding:10px;position:absolute;transition:visibility 0s linear 0s,opacity .5s;visibility:hidden}[dir=ltr] .excalidraw .layer-ui__wrapper .disable-zen-mode{right:1rem}[dir=rtl] .excalidraw .layer-ui__wrapper .disable-zen-mode{left:1rem}.excalidraw .layer-ui__wrapper .disable-zen-mode:hover{background-color:var(--button-hover-bg)}.excalidraw .layer-ui__wrapper .disable-zen-mode:active{border-color:var(--color-primary)}.excalidraw .layer-ui__wrapper .disable-zen-mode--visible{opacity:1;pointer-events:var(--ui-pointerEvents);transition:visibility 0s linear .3s,opacity .5s;transition-delay:.8s;visibility:visible}.excalidraw .layer-ui__wrapper .footer-center>*,.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-left>*,.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .layer-ui__wrapper .layer-ui__wrapper__footer-right{margin-bottom:auto;margin-top:auto}.excalidraw .disable-view-mode{align-items:center;background-color:var(--island-bg-color);background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface))!important;cursor:pointer;display:flex;font-family:var(--ui-font);font-size:.8333rem;height:var(--mobile-action-button-size,var(--default-button-size));justify-content:center;padding:.5rem;text-decoration:none!important;width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .disable-view-mode:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw .disable-view-mode:hover{background-color:var(--color-primary);color:#fff!important}.excalidraw .disable-view-mode:active{background-color:var(--color-primary-darker)}.excalidraw .disable-view-mode svg{height:20px;width:20px}.excalidraw .theme--dark .plus-banner:hover{color:#000!important}.excalidraw .App-toolbar--compact .ToolIcon__keybinding,.excalidraw .App-toolbar.zen-mode .HintViewer,.excalidraw .App-toolbar.zen-mode .ToolIcon__keybinding{display:none}.excalidraw .App-toolbar--compact .App-toolbar__divider{margin:0}.excalidraw .App-toolbar__divider{align-self:center;background-color:var(--default-border-color);height:1.5rem;margin:0 .25rem;width:1px}.excalidraw--mobile.excalidraw .App-toolbar__divider{margin:0}.excalidraw .App-toolbar__extra-tools-trigger{background-color:transparent;border:0;box-shadow:none}.excalidraw .App-toolbar__extra-tools-trigger:active{background-color:var(--button-hover-bg);box-shadow:0 0 0 1px var(--button-active-border,var(--color-primary-darkest)) inset}.excalidraw .App-toolbar__extra-tools-trigger:hover{background-color:transparent}.excalidraw .App-toolbar__extra-tools-trigger--selected,.excalidraw .App-toolbar__extra-tools-trigger--selected:hover{background:var(--color-primary-light);color:var(--color-primary)}.excalidraw .App-toolbar__extra-tools-dropdown{margin-top:.375rem;min-width:11.875rem;right:0;z-index:1}.excalidraw .SVGLayer{height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:var(--zIndex-svgLayer)}.excalidraw .SVGLayer svg{height:100%;image-rendering:auto;left:0;overflow:visible;position:absolute;top:0;width:100%}.excalidraw .UnlockPopup{align-items:center;background:var(--island-bg-color);border-radius:.5rem;box-shadow:var(--shadow-island);color:var(--color-gray-60);cursor:pointer;display:flex;gap:.5rem;justify-content:center;padding:.8rem;position:absolute;z-index:var(--zIndex-interactiveCanvas)}.excalidraw .UnlockPopup:focus{outline:none}.excalidraw .UnlockPopup svg{color:var(--color-gray-60);display:block;height:1.25rem;width:1.25rem}.excalidraw .UnlockPopup:hover svg{color:var(--color-primary)}.excalidraw .UnlockPopup:active svg{transform:scale(.95)}.footer-center{display:flex;justify-content:flex-start;margin-inline-end:.6rem;pointer-events:none;width:100%}.footer-center>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .collab-button{--button-bg:var(--color-primary);--button-color:var(--color-surface-lowest);--button-border:var(--color-primary);--button-width:var(--lg-button-size);--button-height:var(--lg-button-size);--button-hover-bg:var(--color-primary-darker);--button-hover-border:var(--color-primary-darker);--button-active-bg:var(--color-primary-darker);box-shadow:0 0 0 1px var(--color-surface-lowest);flex-shrink:0}.excalidraw .collab-button.active.active{background-color:#0fb884;border-color:#0fb884}.excalidraw .collab-button.active.active svg{color:#fff}.excalidraw .collab-button.active.active:active,.excalidraw .collab-button.active.active:hover{background-color:#0fb884;border-color:#0fb884}.excalidraw .CollabButton.is-collaborating{background-color:var(--button-special-active-bg-color)}.excalidraw .CollabButton.is-collaborating .ToolIcon__icon svg,.excalidraw .CollabButton.is-collaborating .ToolIcon__label{color:var(--icon-green-fill-color)}.excalidraw .CollabButton-collaborators{background-color:#b2f2bb;border-radius:50%;bottom:-5px;color:#2b8a3e;font-family:Cascadia;font-size:.6rem;line-height:1;min-height:1em;min-width:1em;padding:3px;position:absolute}:root[dir=ltr] .excalidraw .CollabButton-collaborators{right:-5px}:root[dir=rtl] .excalidraw .CollabButton-collaborators{left:-5px}.excalidraw .ExcalidrawLogo{--logo-icon--mobile:1rem;--logo-text--mobile:0.75rem;--logo-icon--xs:2rem;--logo-text--xs:1.5rem;--logo-icon--small:2.5rem;--logo-text--small:1.75rem;--logo-icon--normal:3rem;--logo-text--normal:2.2rem;--logo-icon--large:90px;--logo-text--large:65px;align-items:center;display:flex}.excalidraw .ExcalidrawLogo svg{flex:0 0 auto}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-icon{color:var(--color-logo-icon);width:auto}.excalidraw .ExcalidrawLogo .ExcalidrawLogo-text{color:var(--color-logo-text);margin-left:.75rem;width:auto}.excalidraw .ExcalidrawLogo.is-mobile .ExcalidrawLogo-icon{height:var(--logo-icon--mobile)}.excalidraw .ExcalidrawLogo.is-mobile .ExcalidrawLogo-text{height:var(--logo-text--mobile);margin-left:.5rem}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-icon{height:var(--logo-icon--xs)}.excalidraw .ExcalidrawLogo.is-xs .ExcalidrawLogo-text{height:var(--logo-text--xs)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-icon{height:var(--logo-icon--small)}.excalidraw .ExcalidrawLogo.is-small .ExcalidrawLogo-text{height:var(--logo-text--small)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-icon{height:var(--logo-icon--normal)}.excalidraw .ExcalidrawLogo.is-normal .ExcalidrawLogo-text{height:var(--logo-text--normal)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-icon{height:var(--logo-icon--large)}.excalidraw .ExcalidrawLogo.is-large .ExcalidrawLogo-text{height:var(--logo-text--large)}.excalidraw .excalifont{font-family:Excalifont,Xiaolai}.excalidraw .welcome-screen-decor{color:var(--color-gray-40);pointer-events:none}.excalidraw .welcome-screen-decor a{--color:var(--color-primary);color:var(--color);margin-bottom:-6px;text-decoration:none}.excalidraw.theme--dark .welcome-screen-decor{color:var(--color-gray-60)}@media(max-height:780px){.excalidraw .welcome-screen-decor-hint{display:none!important}}@media(max-width:1024px),(max-width:800px){.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--help,.excalidraw .welcome-screen-decor-hint .welcome-screen-decor--menu{display:none}}.excalidraw .welcome-screen-decor-hint--help{bottom:100%;display:flex;position:absolute;right:0}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help{left:0;right:auto}.excalidraw .welcome-screen-decor-hint--help svg{height:71px;margin-top:.5rem;transform:scaleX(-1) rotate(80deg);width:85px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--help svg{transform:rotate(80deg)}.excalidraw .welcome-screen-decor-hint--toolbar{align-items:baseline;display:flex;left:50%;margin-top:2.5rem;position:absolute;top:100%;transform:translateX(-50%)}.excalidraw .welcome-screen-decor-hint--toolbar .welcome-screen-decor-hint__label{position:relative;top:-.5rem;width:120px}.excalidraw .welcome-screen-decor-hint--toolbar svg{height:78px;width:38px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--toolbar svg{transform:scaleX(-1)}.excalidraw .welcome-screen-decor-hint--menu{align-items:flex-end;display:flex;font-size:1rem;gap:.5rem;margin-top:.25rem;margin-inline-start:.6rem;position:absolute;top:100%;width:320px}.excalidraw .welcome-screen-decor-hint--menu svg{height:94px;width:41px}:root[dir=rtl] .excalidraw .welcome-screen-decor-hint--menu svg{transform:scaleX(-1)}@media(max-width:860px){.excalidraw .welcome-screen-decor-hint--menu .welcome-screen-decor-hint__label{max-width:160px}}.excalidraw .welcome-screen-center{align-items:center;bottom:1rem;display:flex;flex-direction:column;gap:2rem;justify-content:center;left:1rem;pointer-events:none;position:absolute;right:1rem;top:1rem}.excalidraw .welcome-screen-center__logo{align-items:center;column-gap:.75rem;display:flex;font-size:2.25rem}.excalidraw .welcome-screen-center__heading{font-size:1.125rem;line-height:1.35rem;text-align:center}.excalidraw .welcome-screen-menu{align-items:center;display:flex;flex-direction:column;gap:2px;justify-content:center}.excalidraw .welcome-screen-menu-item{align-items:center;background:none;border:1px solid transparent;border-radius:var(--border-radius-md);box-sizing:border-box;color:var(--color-gray-50);display:grid;font-size:.875rem;grid-template-columns:calc(var(--default-icon-size) + .5rem) 1fr;justify-content:space-between;max-width:400px;min-width:300px;padding:.25rem;pointer-events:var(--ui-pointerEvents);width:100%}.excalidraw .welcome-screen-menu-item__text{align-items:center;column-gap:.5rem;display:flex;margin-right:auto;text-align:left}.excalidraw .welcome-screen-menu-item__icon{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw .welcome-screen-menu-item__shortcut{color:var(--color-gray-40);font-size:.75rem;margin-left:auto}.excalidraw .welcome-screen-menu-item:hover{background:var(--button-hover-bg);text-decoration:none}.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__icon,.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut,.excalidraw .welcome-screen-menu-item:hover .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw .welcome-screen-menu-item:active{background:var(--button-hover-bg);border-color:var(--color-brand-active)}.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__icon,.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__shortcut,.excalidraw .welcome-screen-menu-item:active .welcome-screen-menu-item__text{color:var(--color-gray-100)}.excalidraw.theme--dark .welcome-screen-menu-item,.excalidraw.theme--dark .welcome-screen-menu-item__shortcut{color:var(--color-gray-60)}.excalidraw.theme--dark .welcome-screen-menu-item:hover{background-color:var(--color-surface-low)}.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__icon,.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__shortcut,.excalidraw.theme--dark .welcome-screen-menu-item:active .welcome-screen-menu-item__text,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__icon,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__shortcut,.excalidraw.theme--dark .welcome-screen-menu-item:hover .welcome-screen-menu-item__text{color:var(--color-gray-10)}.excalidraw.excalidraw--mobile .welcome-screen-center{margin-bottom:2rem}@media(max-height:500px),(max-width:320px){.excalidraw .welcome-screen-center{display:none}}.visually-hidden{height:1px;overflow:hidden;position:absolute!important;width:1px;clip:rect(1px,1px,1px,1px);-webkit-user-select:none;user-select:none;white-space:nowrap}.LoadingMessage{align-items:center;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:999}.LoadingMessage .Spinner{font-size:2.8em}.LoadingMessage .LoadingMessage-text{font-size:.8em;margin-top:1em}.LoadingMessage--dark{background-color:#121212;color:#ced4da}.excalidraw{--theme-filter:none;--button-destructive-bg-color:#ffe3e3;--button-destructive-color:#c92a2a;--button-gray-1:#e9ecef;--button-gray-2:#ced4da;--button-gray-3:#adb5bd;--mobile-action-button-bg:hsla(0,0%,100%,.35);--mobile-color-border:var(--default-border-color);--button-special-active-bg-color:#ebfbee;--dialog-border-color:var(--color-gray-20);--dropdown-icon:url('data:image/svg+xml;charset=utf-8,');--focus-highlight-color:#a5d8ff;--icon-fill-color:var(--color-on-surface);--icon-green-fill-color:#2b8a3e;--default-bg-color:#fff;--input-bg-color:#fff;--input-border-color:#ced4da;--input-hover-bg-color:#f1f3f5;--input-label-color:#495057;--island-bg-color:#fff;--island-bg-color-alt:#fff;--keybinding-color:var(--color-gray-40);--link-color:#1c7ed6;--link-color-hover:#1971c2;--link-color-active:#a5d8ff;--overlay-bg-color:hsla(0,0%,100%,.88);--popup-bg-color:var(--island-bg-color);--popup-secondary-bg-color:#f1f3f5;--popup-text-color:#000;--popup-text-inverted-color:#fff;--select-highlight-color:#339af0;--shadow-island:0px 0px 1px 0px rgba(0,0,0,.17),0px 0px 3px 0px rgba(0,0,0,.08),0px 7px 14px 0px rgba(0,0,0,.05);--shadow-island-stronger:0px 0px 1px 0px rgba(0,0,0,.17),0px 0px 3px 0px rgba(0,0,0,.08),0px 7px 14px 0px rgba(0,0,0,.18);--button-hover-bg:var(--color-surface-high);--button-active-bg:var(--color-surface-high);--button-active-border:var(--color-brand-active);--default-border-color:var(--color-surface-high);--default-button-size:2rem;--default-icon-size:1rem;--lg-button-size:2.25rem;--lg-icon-size:1rem;--editor-container-padding:1rem;--mobile-action-button-size:2rem;--scrollbar-thumb:var(--button-gray-2);--scrollbar-thumb-hover:var(--button-gray-3);--color-slider-track:#ccf;--color-slider-thumb:var(--color-gray-80);--modal-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--avatar-border-color:var(--color-gray-20);--sidebar-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--sidebar-border-color:var(--color-surface-high);--sidebar-bg-color:var(--island-bg-color);--library-dropdown-shadow:0px 15px 6px rgba(0,0,0,.01),0px 8px 5px rgba(0,0,0,.05),0px 4px 4px rgba(0,0,0,.09),0px 1px 2px rgba(0,0,0,.1),0px 0px 0px rgba(0,0,0,.1);--chat-msg-shadow:0 1px 2px rgba(0,0,0,.1);--space-factor:0.25rem;--text-primary-color:var(--color-on-surface);--color-selection:#6965db;--color-icon-white:#fff;--color-primary:#6965db;--color-primary-darker:#5b57d1;--color-primary-darkest:#4a47b1;--color-primary-light:#e3e2fe;--color-primary-light-darker:#d7d5ff;--color-primary-hover:#5753d0;--color-gray-10:#f5f5f5;--color-gray-20:#ebebeb;--color-gray-30:#d6d6d6;--color-gray-40:#b8b8b8;--color-gray-50:#999;--color-gray-60:#7a7a7a;--color-gray-70:#5c5c5c;--color-gray-80:#3d3d3d;--color-gray-85:#242424;--color-gray-90:#1e1e1e;--color-gray-100:#121212;--color-disabled:var(--color-gray-40);--color-warning:#fceeca;--color-warning-dark:#f5c354;--color-warning-darker:#f3ab2c;--color-warning-darkest:#ec8b14;--color-text-warning:var(--text-primary-color);--color-danger:#db6965;--color-danger-dark:#db6965;--color-danger-darker:#d65550;--color-danger-darkest:#d1413c;--color-danger-text:#000;--color-danger-background:#fff0f0;--color-danger-icon-background:#ffdad6;--color-danger-color:#700000;--color-danger-icon-color:#700000;--color-warning-background:var(--color-warning);--color-warning-icon-background:var(--color-warning-dark);--color-warning-color:var(--text-primary-color);--color-warning-icon-color:var(--text-primary-color);--color-muted:var(--color-gray-30);--color-muted-darker:var(--color-gray-60);--color-muted-darkest:var(--color-gray-100);--color-muted-background:var(--color-gray-80);--color-muted-background-darker:var(--color-gray-100);--color-promo:var(--color-primary);--color-success:#cafccc;--color-success-darker:#bafabc;--color-success-darkest:#a5eba8;--color-success-text:#268029;--color-success-contrast:#65bb6a;--color-success-contrast-hover:#6bcf70;--color-success-contrast-active:#6edf74;--color-logo-icon:var(--color-primary);--color-logo-text:#190064;--border-radius-md:0.375rem;--border-radius-lg:0.5rem;--color-surface-high:#f1f0ff;--color-surface-mid:#f6f6f9;--color-surface-low:#ececf4;--color-surface-lowest:#fff;--color-on-surface:#1b1b1f;--color-brand-hover:#5753d0;--color-on-primary-container:#030064;--color-brand-active:#4440bf;--color-border-outline:#767680;--color-border-outline-variant:#c5c5d0;--color-surface-primary-container:#e0dfff;--color-badge:#0b6513;--background-color-badge:#d3ffd2}.excalidraw--mobile.excalidraw{--editor-container-padding:0.75rem}@media screen and (min-device-width:1921px){.excalidraw{--lg-button-size:2.5rem;--lg-icon-size:1.25rem;--default-button-size:2.25rem;--default-icon-size:1.25rem}}.excalidraw.theme--dark.theme--dark-background-none{background:none}.excalidraw.theme--dark{--theme-filter:invert(93%) hue-rotate(180deg);--button-destructive-bg-color:#5a0000;--button-destructive-color:#ffa8a8;--button-gray-1:#363636;--button-gray-2:#272727;--button-gray-3:#222;--mobile-action-button-bg:var(--island-bg-color);--mobile-color-border:hsla(0,0%,100%,.85);--button-special-active-bg-color:#204624;--dialog-border-color:var(--color-gray-80);--dropdown-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='292.4' height='292.4' viewBox='0 0 292 292'%3E%3Cpath fill='%23ced4da' d='M287 197 159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13'/%3E%3C/svg%3E");--focus-highlight-color:#228be6;--icon-green-fill-color:#69db7c;--default-bg-color:#121212;--input-bg-color:#121212;--input-border-color:#2e2e2e;--input-hover-bg-color:#181818;--input-label-color:#e9ecef;--island-bg-color:#232329;--island-bg-color-alt:#1b1b22;--keybinding-color:var(--color-gray-60);--link-color:#4dabf7;--overlay-bg-color:rgba(52,58,64,.12);--popup-secondary-bg-color:#222;--popup-text-color:#ced4da;--popup-text-inverted-color:#2c2c2c;--select-highlight-color:#4dabf7;--modal-shadow:0px 100px 80px rgba(0,0,0,.07),0px 41.7776px 33.4221px rgba(0,0,0,.05),0px 22.3363px 17.869px rgba(0,0,0,.042),0px 12.5216px 10.0172px rgba(0,0,0,.035),0px 6.6501px 5.32008px rgba(0,0,0,.028),0px 2.76726px 2.21381px rgba(0,0,0,.02);--avatar-border-color:var(--color-gray-85);--scrollbar-thumb:#343a40;--scrollbar-thumb-hover:#495057;--color-slider-track:#504d7a;--color-selection:#3530c4;--color-icon-white:var(--color-gray-90);--color-primary:#a8a5ff;--color-primary-darker:#b2aeff;--color-primary-darkest:#beb9ff;--color-primary-light:#4f4d6f;--color-primary-light-darker:#43415e;--color-primary-hover:#bbb8ff;--color-disabled:var(--color-gray-70);--color-text-warning:var(--color-gray-80);--color-danger:#ffa8a5;--color-danger-dark:#672120;--color-danger-darker:#8f2625;--color-danger-darkest:#ac2b29;--color-danger-text:#fbcbcc;--color-danger-background:#fbcbcc;--color-danger-icon-background:#672120;--color-danger-color:#261919;--color-danger-icon-color:#fbcbcc;--color-warning-background:var(--color-warning);--color-warning-icon-background:var(--color-warning-dark);--color-warning-color:var(--color-gray-80);--color-warning-icon-color:var(--color-gray-80);--color-muted:var(--color-gray-80);--color-muted-darker:var(--color-gray-60);--color-muted-darkest:var(--color-gray-20);--color-muted-background:var(--color-gray-40);--color-muted-background-darker:var(--color-gray-20);--color-logo-text:#e2dfff;--color-surface-high:#2e2d39;--color-surface-low:#232329;--color-surface-mid:#18181b;--color-surface-lowest:#121212;--color-on-surface:#e3e3e8;--color-brand-hover:#bbb8ff;--color-on-primary-container:#e0dfff;--color-brand-active:#d0ccff;--color-border-outline:#8e8d9c;--color-border-outline-variant:#46464f;--color-surface-primary-container:#403e6a}:root{--zIndex-canvas:1;--zIndex-interactiveCanvas:2;--zIndex-svgLayer:3;--zIndex-wysiwyg:3;--zIndex-canvasButtons:3;--zIndex-layerUI:4;--zIndex-eyeDropperBackdrop:5;--zIndex-eyeDropperPreview:6;--zIndex-hyperlinkContainer:7;--zIndex-ui-bottom:60;--zIndex-ui-context-menu:90;--zIndex-ui-styles-popup:100;--zIndex-ui-top:100;--zIndex-ui-main-menu:110;--zIndex-ui-library:120;--zIndex-modal:1000;--zIndex-popup:1001;--zIndex-toast:999999;--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left);--sar:env(safe-area-inset-right);--sat:env(safe-area-inset-top)}body.excalidraw-cursor-resize,body.excalidraw-cursor-resize *,body.excalidraw-cursor-resize a:hover{cursor:ew-resize}.excalidraw{--ui-font:Assistant,system-ui,BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;bottom:0;color:var(--text-primary-color);display:flex;font-family:var(--ui-font);height:100%;left:0;overflow:hidden;position:relative;right:0;top:0;-webkit-user-select:none;user-select:none;width:100%}.excalidraw button{font-size:.8333rem}.excalidraw button,.excalidraw label{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.excalidraw button{cursor:pointer;-webkit-user-select:none;user-select:none}.excalidraw:focus{outline:none}.excalidraw .excalidraw-link,.excalidraw a{color:var(--link-color);cursor:pointer;font-weight:500;text-decoration:none;-webkit-user-select:none;user-select:none}.excalidraw .excalidraw-link:hover,.excalidraw a:hover{text-decoration:underline}.excalidraw .excalidraw-link:active,.excalidraw a:active{text-decoration:none}.excalidraw canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;touch-action:none;z-index:var(--zIndex-canvas)}.excalidraw canvas.interactive{filter:var(--theme-filter);z-index:var(--zIndex-interactiveCanvas)}.excalidraw__canvas-wrapper,.excalidraw__canvas.static{pointer-events:none}.excalidraw__canvas{position:absolute}.excalidraw__embeddable{border:0;height:100%;width:100%}.excalidraw__embeddable-container{pointer-events:none;position:absolute;transform-origin:top left;z-index:2}.excalidraw .FixedSideContainer{padding:var(--sat,0) var(--sar,0) var(--sab,0) var(--sal,0)}.excalidraw .panelRow{display:flex;justify-content:space-between}.excalidraw .selected-shape-actions{display:flex;flex-direction:column;row-gap:.75rem}.excalidraw .selected-shape-actions .control-label,.excalidraw .selected-shape-actions h3,.excalidraw .selected-shape-actions legend{color:var(--text-primary-color);display:block;font-size:.75rem;font-weight:400;margin:0 0 .25rem}.excalidraw .selected-shape-actions .control-label input{display:block;width:100%}.excalidraw .selected-shape-actions legend{padding:0}.excalidraw .selected-shape-actions .iconSelectList{flex-wrap:wrap;position:relative}.excalidraw .selected-shape-actions .buttonList{column-gap:.5rem;display:flex;flex-wrap:wrap;row-gap:.5rem}.excalidraw .selected-shape-actions .buttonList label{font-size:.75rem}.excalidraw .selected-shape-actions .buttonList input[type=button],.excalidraw .selected-shape-actions .buttonList input[type=radio]{opacity:0;pointer-events:none;position:absolute}.excalidraw .selected-shape-actions .buttonList .iconRow{margin-top:8px}.excalidraw .selected-shape-actions fieldset{border:none;margin:0;padding:0}.excalidraw .divider{background-color:#e9ecef;margin:1px;width:1px}.excalidraw .buttonList label:focus-within,.excalidraw .dropdown-menu-item:focus-visible,.excalidraw .welcome-screen-menu-item:focus-visible,.excalidraw button:focus-visible,.excalidraw input:focus-visible{box-shadow:0 0 0 1px var(--color-brand-hover);outline:transparent}.excalidraw [data-radix-collection-item]:focus-visible{box-shadow:none!important}.excalidraw .buttonList .ToolIcon__icon{all:unset!important;display:flex!important}.excalidraw .buttonList button{background-color:transparent}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw .buttonList label{align-items:center;background-color:var(--button-bg,var(--island-bg-color));border-color:var(--button-border,var(--default-border-color));border-radius:var(--border-radius-lg);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size))}.excalidraw .buttonList .zIndexButton svg,.excalidraw .buttonList button svg,.excalidraw .buttonList label svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .buttonList .zIndexButton:hover,.excalidraw .buttonList button:hover,.excalidraw .buttonList label:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .buttonList .zIndexButton:active,.excalidraw .buttonList button:active,.excalidraw .buttonList label:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .buttonList .zIndexButton.active,.excalidraw .buttonList button.active,.excalidraw .buttonList label.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .buttonList .zIndexButton.active:hover,.excalidraw .buttonList button.active:hover,.excalidraw .buttonList label.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .buttonList .zIndexButton.active svg,.excalidraw .buttonList button.active svg,.excalidraw .buttonList label.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw--mobile.excalidraw .buttonList label{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .buttonList .zIndexButton,.excalidraw .buttonList button,.excalidraw .buttonList label{padding:0}.excalidraw .buttonList .zIndexButton svg,.excalidraw .buttonList button svg,.excalidraw .buttonList label svg{height:var(--default-icon-size);width:var(--default-icon-size)}.excalidraw .App-top-bar{display:flex;flex-direction:column}.excalidraw .App-top-bar,.excalidraw .App-welcome-screen{z-index:var(--zIndex-layerUI)}.excalidraw .App-bottom-bar{bottom:0;left:50%;max-width:450px;position:absolute;transform:translateX(-50%);width:calc(100% - 28px);--bar-padding:calc(var(--space-factor)*4);display:flex;flex-direction:column;justify-content:center;pointer-events:none;z-index:var(--zIndex-ui-bottom)}.excalidraw--tray.excalidraw .App-bottom-bar{align-items:flex-end;flex-direction:row;justify-content:flex-start;left:0;max-width:19rem;transform:none}.excalidraw .App-bottom-bar>.Island{box-sizing:border-box;display:flex;flex-direction:column;max-height:100%;padding:4px;pointer-events:var(--ui-pointerEvents)}.excalidraw .App-toolbar{display:flex;justify-content:center}.excalidraw .App-toolbar .eraser.ToolIcon:hover{--icon-fill-color:#fff;--keybinding-color:#fff}.excalidraw .App-toolbar .eraser.active{background-color:var(--color-primary)}.excalidraw .excalidraw-ui-top-left,.excalidraw .excalidraw-ui-top-right{display:flex;gap:.5rem}.excalidraw .App-toolbar-content{display:flex;flex-direction:column;pointer-events:none}.excalidraw .App-toolbar-content>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .App-toolbar-content .dropdown-menu--tray{bottom:55px;top:auto}.excalidraw--tray.excalidraw .App-toolbar-content{flex-direction:row}.excalidraw .App-toolbar-content label.ToolIcon.is-mobile{background-color:var(--color-surface-low)}.excalidraw .App-mobile-menu{box-sizing:border-box;margin-bottom:var(--bar-padding);overflow-x:visible;overflow-y:auto;width:100%}.excalidraw .App-mobile-menu .selected-shape-actions{padding:8px 8px 0}.excalidraw .App-tray-menu{box-sizing:border-box;margin-bottom:var(--bar-padding);overflow-x:hidden;overflow-y:auto;scrollbar-width:none;width:100%}.excalidraw .App-tray-menu::-webkit-scrollbar{display:none;height:0;width:0}.excalidraw .App-tray-menu .selected-shape-actions{padding:8px 8px 0}.excalidraw .App-menu{color:var(--icon-fill-color);display:grid}.excalidraw .shapes-section{display:flex;justify-content:center;pointer-events:none!important}.excalidraw .shapes-section>*{pointer-events:var(--ui-pointerEvents)}.excalidraw .App-menu_top{grid-template-columns:1fr 2fr 1fr;grid-gap:1rem;align-items:flex-start;cursor:default;pointer-events:none!important}.excalidraw .App-menu_top>*{pointer-events:var(--ui-pointerEvents)}@media(min-width:1536px){.excalidraw .App-menu_top{grid-template-columns:1fr 1fr 1fr;grid-gap:3rem}}.excalidraw .App-menu_top>:first-child{justify-self:flex-start}.excalidraw .selected-shape-actions-container{width:-moz-fit-content;width:fit-content}.excalidraw .selected-shape-actions-container--compact{min-width:48px}.excalidraw .App-menu_top>:last-child{justify-self:flex-end}.excalidraw .App-menu_bottom{align-items:flex-start;bottom:1rem;box-sizing:border-box;cursor:default;display:flex;justify-content:space-between;padding:0 1rem;pointer-events:none!important;position:absolute}.excalidraw .App-menu_bottom--transition-left section{width:185px}.excalidraw .App-menu_bottom section{display:flex}.excalidraw .App-menu_bottom>:first-child{justify-self:flex-start}.excalidraw .App-menu_bottom>:last-child{justify-self:flex-end}.excalidraw .App-menu_left{grid-template-rows:1fr auto 1fr;height:100%}.excalidraw .App-menu_right{grid-template-rows:1fr;height:100%}.excalidraw .App-menu__left{box-sizing:border-box;overflow-y:auto;padding:.75rem;position:absolute;width:12.5rem}.excalidraw .dropdown-select{-webkit-appearance:none;appearance:none;background-color:var(--button-gray-1);background-image:var(--dropdown-icon);background-position:right .7rem top 50%,0 0;background-repeat:no-repeat;background-size:.65em auto,100%;border:1px solid var(--button-gray-2);border-radius:var(--space-factor);color:var(--icon-fill-color);font-family:inherit;font-size:.8rem;height:1.5rem;outline:none;padding:0;padding-inline-end:1.5rem;padding-inline-start:.5rem}:root[dir=rtl] .excalidraw .dropdown-select{background-position:left .7rem top 50%,0 0}.excalidraw .dropdown-select:focus{box-shadow:0 0 0 2px var(--focus-highlight-color)}.excalidraw .dropdown-select:active,.excalidraw .dropdown-select:hover{background-color:var(--button-gray-2)}.excalidraw .dropdown-select__language{border-color:var(--default-border-color)!important;cursor:pointer;height:2rem}.excalidraw .dropdown-select__language,.excalidraw .dropdown-select__language:hover,.excalidraw .scroll-back-to-content{background-color:var(--island-bg-color)}.excalidraw .scroll-back-to-content{border:1px solid var(--default-border-color);border-radius:var(--border-radius-lg);bottom:30px;color:var(--icon-fill-color);font-family:inherit;left:50%;padding:10px 20px;pointer-events:var(--ui-pointerEvents);position:absolute;transform:translateX(-50%)}.excalidraw .scroll-back-to-content:hover{background-color:var(--button-hover-bg)}.excalidraw .scroll-back-to-content:active{border:1px solid var(--button-active-border)}.excalidraw .floating-status-stack{align-items:center;bottom:30px;display:flex;flex-direction:column;gap:.5rem;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.excalidraw .floating-status-stack .scroll-back-to-content{bottom:auto;left:auto;pointer-events:var(--ui-pointerEvents);position:static;transform:none}.excalidraw .help-icon{align-items:center;background-color:var(--button-bg,var(--island-bg-color));background-color:var(--color-surface-low);border:none;border-radius:var(--border-radius-lg);box-shadow:0 0 0 1px var(--color-surface-lowest);box-sizing:border-box;color:var(--button-color,var(--color-on-surface));cursor:pointer;display:flex;font-family:var(--ui-font);height:var(--button-height,var(--default-button-size));height:var(--lg-button-size);justify-content:center;padding:.625rem;width:var(--button-width,var(--default-button-size));width:var(--lg-button-size)}.excalidraw .help-icon svg{height:var(--button-height,var(--lg-icon-size));width:var(--button-width,var(--lg-icon-size))}.excalidraw .help-icon:hover{background-color:var(--button-hover-bg,var(--island-bg-color));border-color:var(--button-hover-border,var(--button-border,var(--default-border-color)));color:var(--button-hover-color,var(--button-color,var(--text-primary-color,inherit)))}.excalidraw .help-icon:active{background-color:var(--button-active-bg,var(--island-bg-color));border-color:var(--button-active-border,var(--color-primary-darkest))}.excalidraw .help-icon.active{background-color:var(--button-selected-bg,var(--color-surface-primary-container));border-color:var(--button-selected-border,var(--color-surface-primary-container))}.excalidraw .help-icon.active:hover{background-color:var(--button-selected-hover-bg,var(--color-surface-primary-container))}.excalidraw .help-icon.active svg{color:var(--button-color,var(--color-on-primary-container))}.excalidraw--mobile.excalidraw .help-icon{height:var(--mobile-action-button-size,var(--default-button-size));width:var(--mobile-action-button-size,var(--default-button-size))}.excalidraw .help-icon:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .help-icon{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .help-icon svg{height:var(--lg-icon-size);width:var(--lg-icon-size)}.excalidraw .reset-zoom-button{font-family:var(--ui-font)}.excalidraw .finalize-button{gap:.4em}.excalidraw .eraser-buttons,.excalidraw .finalize-button,.excalidraw .undo-redo-buttons{display:grid;grid-auto-flow:column;margin-bottom:auto;margin-top:auto;margin-inline-start:.6em}.excalidraw--mobile.excalidraw aside{display:none}.excalidraw--mobile.excalidraw .scroll-back-to-content{bottom:calc(100px + var(--sab, 0));z-index:-1}.excalidraw--tray.excalidraw aside{display:none}.excalidraw--tray.excalidraw .scroll-back-to-content{bottom:calc(80px + var(--sab, 0));z-index:-1}:root[dir=rtl] .excalidraw .rtl-mirror{transform:scaleX(-1)}.excalidraw .zen-mode-visibility{height:auto;opacity:1;transition:opacity .5s;visibility:visible;width:auto}.excalidraw .zen-mode-visibility.zen-mode-visibility--hidden{height:0;opacity:0;transition:opacity .5s;visibility:hidden;width:0}.excalidraw .disable-pointerEvents{pointer-events:none!important}.excalidraw.excalidraw--view-mode .App-menu{display:flex;justify-content:space-between}.excalidraw textarea.excalidraw-wysiwyg{border:none;border-radius:0;box-shadow:none;outline:none}.excalidraw input.is-redacted{-webkit-text-security:disc}.excalidraw input[type=text],.excalidraw textarea:not(.excalidraw-wysiwyg){background-color:var(--input-bg-color);border:1.5px solid var(--input-border-color);border-radius:var(--space-factor);color:var(--text-primary-color);padding:.75rem;white-space:nowrap}.excalidraw input[type=text]:not(:focus):hover,.excalidraw textarea:not(.excalidraw-wysiwyg):not(:focus):hover{border-color:var(--color-brand-hover)}.excalidraw input[type=text]:focus,.excalidraw textarea:not(.excalidraw-wysiwyg):focus{border-color:var(--color-brand-hover);outline:none}@media print{.excalidraw .App-bottom-bar,.excalidraw .FixedSideContainer,.excalidraw .layer-ui__wrapper{display:none}}.excalidraw ::-webkit-scrollbar{height:3px;width:4px}.excalidraw select::-webkit-scrollbar{width:10px}.excalidraw ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}.excalidraw ::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.excalidraw ::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb)}.excalidraw .mobile-misc-tools-container{background-color:var(--island-bg-color);border:1px solid var(--sidebar-border-color);border-bottom-left-radius:var(--border-radius-lg);border-right:0;border-top-left-radius:var(--border-radius-lg);display:flex;flex-direction:column;margin-right:3px;overflow:hidden;position:absolute;right:calc(var(--editor-container-padding)*-1);top:calc(5rem - var(--editor-container-padding))}.excalidraw .mobile-misc-tools-container .ToolIcon__icon{border-radius:0;height:2rem;width:2rem}.excalidraw .mobile-misc-tools-container .default-sidebar-trigger{border:0}.excalidraw .tray-misc-tools-container{background-color:var(--island-bg-color);border:1px solid var(--sidebar-border-color);border-bottom-left-radius:var(--border-radius-lg);border-right:0;border-top-left-radius:var(--border-radius-lg);display:flex;flex-direction:column;margin-right:3px;overflow:hidden;position:absolute;right:calc(var(--editor-container-padding)*-1);top:calc(5rem - var(--editor-container-padding))}.excalidraw .tray-misc-tools-container .ToolIcon__icon{border-radius:0;height:2rem;width:2rem}.excalidraw .tray-misc-tools-container .default-sidebar-trigger{border:0}.excalidraw .App-toolbar--mobile{max-width:98vw;overflow:visible}.excalidraw .App-toolbar--mobile .ToolIcon__keybinding{display:block}.excalidraw .App-toolbar--tray{max-width:98vw;overflow:visible}.excalidraw .App-toolbar--tray .ToolIcon__keybinding{display:block}.excalidraw .UserList-Wrapper{border:none;margin:0;padding:0;text-align:left}.excalidraw .UserList-Wrapper legend{display:block;font-size:.75rem;font-weight:400;margin:0 0 .25rem;padding:0}.excalidraw .main-menu{z-index:var(--zIndex-ui-main-menu)}.excalidraw .main-menu-trigger{background-color:var(--color-surface-low);border:none;box-shadow:0 0 0 1px var(--color-surface-lowest)}.excalidraw .main-menu-trigger:active{box-shadow:0 0 0 1px var(--color-brand-active)}.excalidraw--mobile.excalidraw .main-menu-trigger{height:var(--mobile-action-button-size,2rem);width:var(--mobile-action-button-size,2rem)}.excalidraw .App-menu__left,.excalidraw .App-mobile-menu,.excalidraw .App-tray-menu{--button-border:transparent;--button-bg:var(--color-surface-mid)}.excalidraw.theme--dark.excalidraw .App-menu__left,.excalidraw.theme--dark.excalidraw .App-mobile-menu,.excalidraw.theme--dark.excalidraw .App-tray-menu{--button-hover-bg:#363541;--button-bg:var(--color-surface-high)}.excalidraw .App-menu__left .buttonList{padding:.25rem 0}.excalidraw .excalidraw__paragraph{margin:1rem 0}.excalidraw .Modal__content .excalidraw__paragraph+.excalidraw__paragraph,.excalidraw .Modal__content .excalidraw__paragraph:first-child{margin-top:0}.excalidraw .link-button{display:flex;text-decoration:none!important}.ErrorSplash.excalidraw{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:auto;padding:20px 0;-webkit-user-select:text;user-select:text}.ErrorSplash.excalidraw .ErrorSplash-messageContainer{align-items:center;background-color:#ffe3e3;border:3px solid #c92a2a;display:flex;flex-direction:column;justify-content:center;padding:40px}.ErrorSplash.excalidraw .ErrorSplash-paragraph{margin:15px 0;max-width:600px}.ErrorSplash.excalidraw .ErrorSplash-paragraph.align-center{text-align:center}.ErrorSplash.excalidraw .bigger,.ErrorSplash.excalidraw .bigger button{font-size:1.1em}.ErrorSplash.excalidraw .smaller,.ErrorSplash.excalidraw .smaller button{font-size:.9em}.ErrorSplash.excalidraw .ErrorSplash-details{align-items:flex-start;display:flex;flex-direction:column}.ErrorSplash.excalidraw .ErrorSplash-details textarea{font-family:Cascadia;font-size:.8em;margin:10px 0;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable-container__inner{align-items:center;border-radius:var(--embeddable-radius);display:flex;justify-content:center;overflow:hidden}.excalidraw__embeddable-container .excalidraw__embeddable__outer{height:100%;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable__content{height:100%;transform-origin:top left;width:100%}.excalidraw__embeddable-container .excalidraw__embeddable__content,.excalidraw__embeddable-container .excalidraw__embeddable__content>*{border-radius:var(--embeddable-radius)}.excalidraw__embeddable-container .excalidraw__embeddable-hint{align-items:center;background:rgba(0,0,0,.5);border-radius:12px;color:#fff;display:flex;font-family:Assistant;font-weight:700;height:33%;justify-content:center;letter-spacing:.6px;padding:1rem 1.6rem;position:absolute;width:33%;z-index:1}.App{font-family:sans-serif;text-align:center}.excalidraw-wrapper{background-color:var(--background-primary);height:100%;margin:0;position:relative}.context-menu-option__shortcut{background-color:transparent!important}.block-language-excalidraw{text-align:center}.excalidraw .github-corner{display:none}.excalidraw-embedded-img,svg.excalidraw-svg{width:100%}.excalidraw-svg-right-wrap{float:right;margin:0 0 20px 20px;width:100%}.excalidraw-svg-left-wrap{float:left;margin:0 35px 20px 0;width:100%}.excalidraw-svg-right{float:right}.excalidraw-svg-center{margin:auto;text-align:center;width:100%}.excalidraw-svg-left{float:left}div.excalidraw-svg-left,div.excalidraw-svg-right{display:table;width:100%}button.ToolIcon_type_button[title=Export]{display:none}.excalidraw-prompt-div{display:flex;max-width:800px}.excalidraw-prompt-form{display:flex;flex-grow:1}.excalidraw-prompt-input{flex-grow:1}.excalidraw-prompt-button{width:9em}.excalidraw-export-button{margin-left:10px;width:9em}.excalidraw-prompt-buttons-div{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-evenly}.excalidraw-export-buttons-div{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:right}li[data-testid]{border:0!important;margin:0!important;padding:0!important;width:100%!important}.excalidraw .context-menu-option-separator{margin:4px!important}.excalidraw .popover{background-color:transparent!important;border:0!important;overflow-y:auto!important;padding:0!important;position:fixed!important}.disable-zen-mode--visible{color:var(--text-primary-color)}.disable-zen-mode{width:9em!important}.ex-coffee-div{margin-bottom:10px;text-align:center}.excalidraw-mastery-promo{background:linear-gradient(135deg,var(--background-secondary),var(--background-primary));border:1px solid var(--background-modifier-border);border-radius:12px;box-sizing:border-box;margin:0 auto 1rem;max-width:calc(100% - 1.6em);padding:.35rem .75rem;width:calc(100% - 1.6em)}.excalidraw-mastery-promo__summary{align-items:center;cursor:pointer;display:flex;font-size:var(--font-ui-smaller);font-weight:var(--font-medium);gap:1rem;justify-content:space-between;list-style:revert}.excalidraw-mastery-promo__summary-title{color:var(--text-normal);font-size:var(--font-ui-smaller);font-weight:var(--font-medium)}.excalidraw-mastery-promo__summary-title.is-hidden{visibility:hidden}.excalidraw-mastery-promo__summary-state{color:var(--text-muted);font-size:var(--font-ui-smaller)}.excalidraw-mastery-promo__content{align-items:center;display:grid;gap:1rem;grid-template-columns:minmax(0,8rem) minmax(0,1fr);margin-top:.85rem}.excalidraw-mastery-promo__image-link{align-items:center;display:flex;justify-content:center}.excalidraw-mastery-promo__image{display:block;height:auto;max-width:8rem;width:100%}.excalidraw-mastery-promo__text p{line-height:1.5;margin:0 0 .7rem}.excalidraw-mastery-promo__text p:last-child{margin-bottom:0}.excalidraw-mastery-promo__text a{font-weight:var(--font-semibold)}.excalidraw-mastery-promo.is-collapsed{padding-bottom:.35rem}@media (max-width:600px){.excalidraw-mastery-promo__content{grid-template-columns:1fr;text-align:center}.excalidraw-mastery-promo__image{max-width:7rem}}.excalidraw-scriptengine-install td>img{max-width:800px;width:100%}.excalidraw-scriptengine-install img.coffee{width:130px}.excalidraw-scriptengine-install tr{vertical-align:top}.excalidraw-scriptengine-install table{max-width:130ch}.excalidraw-scriptengine-install td.label{font-weight:700;min-width:11ch;padding-right:5px}.excalidraw-scriptengine-install td.data{width:100%}.excalidraw-scriptengine-install .modal-content{max-width:130ch;user-select:text}.excalidraw-scriptengine-install .modal{max-height:90%;width:auto}.excalidraw-prompt-center{text-align:center!important}.excalidraw-prompt-center button{margin:0 10px}.excalidraw-prompt-center.filepath{font-weight:700;margin-bottom:2em;text-align:center}.excalidraw-dirty{color:var(--text-error)}.workspace-leaf-content .excalidraw-view{overflow:hidden;padding:0 1px}.excalidraw-videoWrapper{max-width:600px}.excalidraw-videoWrapper.settings{max-width:340px}.excalidraw-videoWrapper div{height:0;margin:0 auto;padding-bottom:56.25%;position:relative}.excalidraw-videoWrapper.settings iframe{margin-bottom:1rem;position:relative}.excalidraw-videoWrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.excalidraw-release .modal-content{margin-right:-5px;padding-right:5px;user-select:text}.excalidraw-release .modal{max-height:80%;max-width:42em}.excalidraw .Island .scrollbar{--scrollbar-thumb-bg:silver}.excalidraw .ToolIcon__icon img{height:1rem}.excalidraw-scriptengine-install tbody>tr>td>div>img{background-color:silver;height:20px;padding:2px}.excalidraw-scriptengine-install tbody>tr>td>div{display:inline-block;width:50px}.excalidraw-release p>a>img{width:100%}.excalidraw .context-menu-option{box-shadow:none}.excalidraw-colorpicker-overlay{background:transparent;inset:0;position:fixed;z-index:9998}.excalidraw-colorpicker-popup{background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);padding:12px;position:absolute;scrollbar-gutter:stable both-edges;z-index:9999}.excalidraw-colorpicker-grid{display:grid;max-height:260px;overflow-y:auto;padding-right:4px}.excalidraw-colorpicker-swatch{border:1px solid var(--interactive-accent-hover);border-radius:6px;box-sizing:border-box;cursor:pointer;height:32px;width:32px}textarea.excalidraw-wysiwyg{border:none;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:none}.is-mobile .excalidraw button,.is-tablet .excalidraw button{height:1.8rem;padding:initial}.ToolIcon button,.excalidraw button{box-shadow:none;justify-content:normal}.excalidraw{--default-button-size:2rem!important;--default-icon-size:1rem!important;--lg-button-size:1.8rem!important;--lg-icon-size:1rem!important;--editor-container-padding:var(--size-4-2)}.excalidraw .tray-zoom{height:var(--default-button-size);padding-bottom:.05rem;padding-top:.05rem;pointer-events:auto}.excalidraw-container.theme--dark{background-color:#121212;color:#fff}.color-picker-content{max-height:10rem;overflow-y:auto}.excalidraw .ToolIcon__keybinding{font-size:.45rem!important}label.color-input-container>input{max-width:5rem}.excalidraw-display-none,.excalidraw-hidden{display:none!important}.excalidraw-display-block{display:block!important}.excalidraw-display-flex{display:flex!important}.excalidraw .App-mobile-menu .panelColumn,.excalidraw .App-toolbar-content .dropdown-menu,.excalidraw .selected-shape-actions .panelColumn{max-height:70vh;overflow-y:auto}.excalidraw .App-mobile-menu{width:12.5rem!important}.excalidraw .panelColumn .buttonList{max-width:13rem}.excalidraw input[type=color]{height:1.65rem;width:1.65rem}.excalidraw input[type=color]::-webkit-color-swatch{height:1.65rem}.excalidraw input[type=color]::-webkit-color-swatch-wrapper{padding:0}.excalidraw-settings input[type=text]{min-width:10em}.excalidraw-ai-provider-table{background:var(--background-primary-alt);border:1px solid var(--background-modifier-border);border-radius:12px;margin:auto;overflow:hidden;width:80%}.excalidraw-ai-provider-table>.setting-item{margin-bottom:0;margin-top:0;padding-bottom:.5rem;padding-top:.5rem}.excalidraw-ai-provider-table__header{background:color-mix(in srgb,var(--background-secondary) 82%,var(--background-modifier-hover) 18%);border-bottom:2px solid var(--background-modifier-border-hover);padding-left:1rem}.excalidraw-ai-provider-table__row{min-height:0;padding-left:1rem}.excalidraw-ai-provider-table__row+.excalidraw-ai-provider-table__row{border-top:1px solid var(--background-modifier-border)}.excalidraw-ai-provider-table__header .setting-item-info,.excalidraw-ai-provider-table__row .setting-item-info{padding-bottom:.15rem;padding-top:.15rem}.excalidraw-ai-provider-table__header .setting-item-name,.excalidraw-ai-provider-table__row .setting-item-name{margin-bottom:.1rem}.excalidraw-ai-provider-table__header .setting-item-description,.excalidraw-ai-provider-table__row .setting-item-description{line-height:1.3}.excalidraw-ai-provider-table__header .setting-item-control,.excalidraw-ai-provider-table__row .setting-item-control{gap:.35rem;padding-left:.5rem}@media (max-width:480px){.excalidraw-ai-provider-table{margin-left:.2rem}.excalidraw-ai-provider-table__header,.excalidraw-ai-provider-table__row{padding-left:.15rem}}div.excalidraw-draginfo{background:var(--color-base-40);border-radius:5px;color:var(--text-normal);display:block;padding:3px;position:absolute;z-index:1000}.excalidraw :where(.mobile-misc-tools-container,.tray-misc-tools-container) .sidebar-trigger{background-color:unset;border-radius:0;box-shadow:none;--lg-button-size:var(--button-height,var(--default-button-size));&:active,&:hover{background-color:var(--button-hover-bg)}&:active{border:1px solid var(--button-active-border);box-shadow:none}}.excalidraw-sidepanel-container{height:100%}.excalidraw-sidepanel{display:flex;flex-direction:column;gap:0;height:100%}.excalidraw-sidepanel__controls{align-items:center;background-color:var(--background-secondary);border-bottom:1px solid var(--divider-color,var(--background-modifier-border));display:flex;gap:var(--size-4-1);padding:var(--size-4-2) var(--size-4-2)}.excalidraw-sidepanel__select{flex:1}.excalidraw-sidepanel__empty{color:var(--text-muted);padding:.75rem}.excalidraw-sidepanel__body{background-color:var(--background-primary);flex:1;overflow:hidden;position:relative}.excalidraw-sidepanel-tab{display:none;flex-direction:column;height:100%}.excalidraw-sidepanel-tab.is-active{display:flex}.excalidraw-sidepanel-tab__label{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}.excalidraw-sidepanel-tab__content{flex:1;overflow:auto;padding:.5rem}.excalidraw-sidepanel-tab__button{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.35rem;padding:.25rem .55rem}.excalidraw-sidepanel-tab__button.is-active{color:var(--text-normal)}.excalidraw-sidepanel-tab__button.is-active,.excalidraw-sidepanel-tab__button:hover{background:var(--background-primary-alt,var(--background-secondary))}.excalidraw-sidepanel-tab__icon{display:inline-flex}.excalidraw-sidepanel-tab__icon.is-hidden{display:none}.excalidraw-sidepanel-tab__close{background:transparent;border:none;border-radius:4px;color:inherit;display:inline-flex;padding:.1rem}.excalidraw-sidepanel-tab__close:hover{background:var(--background-modifier-hover)}.excalidraw-sidepanel-tab__close.is-hidden{display:none}.excalidraw__embeddable-container .view-header{display:none!important}.excalidraw__embeddable-container input{background:initial}.excalidraw .embeddable-menu{display:block;height:fit-content;position:absolute;transition:opacity var(--anim-duration-fast) ease-in-out;width:fit-content;z-index:var(--zIndex-canvasButtons);&[style*="opacity: 0.2;"]{transition-duration:var(--anim-duration-moderate)}}.excalidraw .welcome-screen-center__logo svg{width:5rem!important}.excalidraw-image-wrapper{text-align:center}.excalidraw-image-wrapper img{margin:auto}.modal-content.excalidraw-scriptengine-install .hit-count{font-size:smaller;margin-left:.5em;white-space:nowrap}.modal-content.excalidraw-scriptengine-install .active-highlight{background-color:var(--color-accent);border:2px solid var(--color-accent-2)}.excalidraw-svg svg a{text-decoration:none}.excalidraw .Modal{background-color:initial;border:initial;height:auto;max-height:none;max-width:none;width:auto}summary.excalidraw-setting-h1{color:var(--h1-color);font-family:var(--h1-font);font-size:var(--h1-size);font-style:var(--h1-style);font-variant:var(--h1-variant);font-weight:var(--h1-weight);letter-spacing:-.015em;line-height:var(--h1-line-height);margin-block-end:var(--p-spacing)}summary.excalidraw-setting-h3{color:var(--h3-color);font-family:var(--h3-font);font-size:var(--h3-size);font-style:var(--h3-style);font-variant:var(--h3-variant);font-weight:var(--h3-weight);letter-spacing:-.015em;line-height:var(--h3-line-height);margin-block-end:var(--p-spacing);margin-block-start:var(--p-spacing)}.modifier-key-header-row{border-top:none;min-height:unset;padding-block:2px}.modifier-key-col-header{color:var(--text-muted);display:inline-flex;font-size:var(--font-smallest);font-weight:var(--font-semibold);justify-content:center;letter-spacing:.03em;width:var(--toggle-width,40px)}summary.excalidraw-setting-h4{color:var(--h4-color);font-family:var(--h4-font);font-size:var(--h4-size);font-style:var(--h4-style);font-variant:var(--h4-variant);font-weight:var(--h4-weight);letter-spacing:-.015em;line-height:var(--h4-line-height);margin-block-end:var(--p-spacing);margin-block-start:var(--p-spacing)}hr.excalidraw-setting-hr{margin:1rem 0 0}.excalidraw-mdEmbed-hideFilename .mod-header{display:none}.excalidraw__embeddable-container .canvas-node:not(.is-editing).transparent{::-webkit-scrollbar,::-webkit-scrollbar-horizontal{display:none}}.excalidraw .canvas-node .ex-md-font-hand-drawn{--font-text:"Virgil"}.excalidraw .canvas-node .ex-md-font-code{--font-text:"Cascadia"}.excalidraw__embeddable-container .workspace-leaf,.excalidraw__embeddable-container .workspace-leaf .view-content{background-color:transparent!important;::-webkit-scrollbar,::-webkit-scrollbar-horizontal{display:none}}.excalidraw__embeddable-container .workspace-leaf-content .view-content{padding:0 2px}.excalidraw__embeddable-container .workspace-leaf .view-content{align-items:center;display:flex;justify-content:center}.excalidraw__embeddable-container .workspace-leaf-content .audio-container,.excalidraw__embeddable-container .workspace-leaf-content .image-container,.excalidraw__embeddable-container .workspace-leaf-content .video-container{display:flex}.excalidraw__embeddable-container .canvas-node-container{border:2px solid var(--canvas-color)}.excalidraw__embeddable-container .canvas-node{--shadow-border-themed-inset:inset 0 0 0 1px rgb(var(--canvas-color));--shadow-border-themed:0 0 0 2px rgb(var(--canvas-color))}.excalidraw__embeddable-container .canvas-node.is-focused.is-themed .canvas-node-container,.excalidraw__embeddable-container .canvas-node.is-selected.is-themed .canvas-node-container{border-color:var(--canvas-color)}.excalidraw-cropped-pdfpage svg,img.excalidraw-cropped-pdfpage{background-color:#fff}.excalidraw .pdf-container,.excalidraw .pdf-toolbar{width:100%}.ex-opacity-30{opacity:.3}.ex-opacity-15{opacity:.15}.ex-opacity-8{opacity:.08}.ex-opacity-5{opacity:.05}.ex-opacity-0{opacity:0}.popover .excalidraw-svg{height:100%;max-height:inherit;max-width:inherit;width:100%}root{--excalidraw-caret-color:initial}.excalidraw .ttd-dialog-content textarea,.excalidraw input,.excalidraw textarea.ttd-dialog-input{caret-color:var(--excalidraw-caret-color)!important}.excalidraw-settings-links-container{align-items:center;color:inherit;display:flex;flex-direction:row;flex-wrap:wrap;gap:.3em;justify-content:center;text-align:center;text-decoration:none}.excalidraw-settings-links-container a{align-items:center;display:flex;margin-left:4px;margin-right:4px;text-align:left}.ex-setting-actions-container svg,.excalidraw-settings-links-container svg{height:30px;margin-right:8px;width:30px}.excalidraw-rank{margin-bottom:.5rem;margin-top:.5rem;text-align:center}.excalidraw-rank svg{height:8rem;width:8rem}.excalidraw .color-picker-content input[type=color]{filter:var(--theme-filter)}.ExcTextField__input input::placeholder{color:var(--select-highlight-color)}.excalidraw textarea::placeholder{color:var(--color-gray-50)}.excalidraw .ToolIcon_type_button{color:var(--text-primary-color)}.excalidraw-setting-desc{background-color:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:5px;cursor:pointer;padding:10px;transition:background-color .3s ease,color .3s ease}.excalidraw-setting-desc:hover{background-color:var(--background-modifier-hover);color:var(--text-accent)}.excalidraw-release .nav-buttons-container{border-bottom:2px solid var(--background-modifier-border);display:flex;margin-bottom:20px}.excalidraw-release .nav-button{background:transparent;border:none;cursor:pointer;padding:8px 16px}.excalidraw-release .nav-button.is-active{border-bottom:2px solid var(--interactive-accent);margin-bottom:-2px}.is-mobile .modal-container.excalidraw-modal .modal.excalidraw-modal{align-self:flex-start;margin-top:calc(var(--safe-area-inset-top) + var(--header-height) + var(--size-4-2));transform:none!important;width:100%}.excalidraw .picker-content{grid-gap:.2rem!important}.excalidraw .picker-content button.picker-option{height:1.85rem!important;width:1.85rem!important}.excalidraw .picker{padding:.2rem!important}.excalidraw .context-menu{height:fit-content}.excalidraw-prompt-buttonbar-bottom,.excalidraw-prompt-buttonbar-top{align-items:flex-start;display:flex;flex-wrap:wrap;row-gap:.5em}.excalidraw-prompt-buttonbar-top{border-top:1px solid var(--background-modifier-border);padding:.5em 0}.excalidraw-prompt-buttonbar-bottom{margin-top:1rem}.excalidraw-prompt-buttonbar-bottom>div,.excalidraw-prompt-buttonbar-top>div{display:flex}.excalidraw-prompt-buttonbar-bottom>div:first-child,.excalidraw-prompt-buttonbar-top>div:first-child{margin-right:auto}.excalidraw-prompt-buttonbar-bottom>div:last-child,.excalidraw-prompt-buttonbar-top>div:last-child{margin-left:auto}.excalidraw-search.document-search-container{background:var(--background-secondary);border-radius:8px;box-shadow:0 1px 4px 0 rgba(0,0,0,.1);display:flex;flex-direction:column;margin-bottom:.5em;margin-left:auto;margin-right:auto;max-width:calc(100% - 1.6em);padding:.5em .8em;position:sticky;top:0}.excalidraw-search .document-search{align-items:center;align-self:center}.excalidraw-search .search-input-container.document-search-input{align-items:center;background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:6px;display:flex;flex:1 1 auto;min-width:0}.excalidraw-search .search-input-container .clickable-icon{align-items:center;color:var(--text-faint);display:flex}.excalidraw-search .search-input-container input[type=text]{background:transparent;border:none;color:var(--text-normal);flex:1 1 auto;font-size:1em;margin:0;outline:none;padding:.1em 2em}.excalidraw-search .document-search-count{color:var(--text-faint);font-size:.95em;margin-left:.5em;min-width:3.5em;text-align:right;white-space:nowrap}.excalidraw-search .document-search-buttons{align-items:center;display:flex;gap:2px}.excalidraw-search .document-search-button{align-items:center;background:none;border:none;border-radius:4px;box-shadow:none;color:var(--text-faint);cursor:pointer;display:flex;height:2em;justify-content:center;margin:0 1px;outline:none;padding:.1em .2em;transition:background .15s;width:2em}.excalidraw-search .document-search-button:focus,.excalidraw-search .document-search-button:hover{background:var(--background-modifier-hover);color:var(--text-accent)}.excalidraw-search .document-search-button svg{fill:none;height:1.3em;pointer-events:none;stroke:currentColor;width:1.3em}.excalidraw__embeddable-container canvas{image-rendering:auto}.excalidraw__embeddable-container .mod-nofilter canvas{filter:none!important}.excalidraw__embeddable-container .canvas-node.is-focused .canvas-node-container,.excalidraw__embeddable-container .canvas-node.is-selected .canvas-node-container{border-color:inherit;box-shadow:inherit}.excalidraw__embeddable-container .pdf-toolbar-right{display:none}.excalidraw-scriptengine-install .modal-close-button{z-index:9999}.excalidraw .App-bottom-bar .App-toolbar{justify-content:start}.excalidraw-left-handed .excalidraw .App-bottom-bar{justify-content:flex-end!important;left:auto!important;right:0!important;transform:none!important;.App-toolbar{justify-content:end}}.excalidraw--tray .App-bottom-bar>.Island>.App-toolbar>.App-toolbar-content{>:not([class]){display:contents}>.ToolIcon__icon:empty{display:none}}.excalidraw .excalidraw-ui-top-right.library-and-pen,.excalidraw.excalidraw--mobile .excalidraw-ui-top-right{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--size-4-1);justify-content:center}.excalidraw .excalidraw-ui-top-right.library-and-pen .ToolIcon__penMode{margin:auto}.excalidraw :is(.mobile-misc-tools-container,.tray-misc-tools-container){margin-right:unset;&.layer-ui__wrapper__top-right--compact{gap:0}}.excalidraw .FixedSideContainer_side_top{padding-top:0!important}.excalidraw .ToolIcon.ToolIcon__penMode{height:fit-content}.excalidraw-LatexPrompt{.cm-editor{align-items:center;anchor-name:--latex-editor;justify-content:center;margin-top:var(--size-4-2);&>.cm-announcment,&>.cm-scroller{align-self:start;width:100%}&.cm-focused{border-color:var(--background-modifier-border-focus);box-shadow:0 0 0 var(--input-border-width-focus) var(--background-modifier-border-focus);transition:box-shadow .15s ease-in-out,border .15s ease-in-out}& .cm-tooltip-cursor.cm-tooltip{left:unset!important;& .cm-tooltip-arrow{left:50%!important;transform:translateX(-50%)}}mjx-container[jax=CHTML][display=true]{margin:0}}.cm-content{caret-color:var(--caret-color)}}@supports (anchor-name:--test){.excalidraw-LatexPrompt .cm-editor .cm-tooltip-cursor.cm-tooltip{margin:var(--size-4-2) 0;max-width:calc(100vw - var(--size-4-4));overflow-x:clip;position:fixed!important;position-anchor:--latex-editor;top:unset!important;&.cm-tooltip-above{bottom:anchor(top)}&.cm-tooltip-below{top:anchor(bottom)!important}}}.excalidraw-filetype-tag{order:99}.excalidraw-mobile-navbar-docked{position:relative}.excalidraw svg.svg-icon{color:var(--icon-fill-color)}.is-mobile .excalidraw.excalidraw--mobile .FixedSideContainer.FixedSideContainer_side_top.App-top-bar{margin-top:1rem}.excalidraw__embeddable__outer .lj-content-view{height:var(--embeddable-height);width:var(--embeddable-width)}.excalidraw__embeddable__outer #sheet-box{height:calc(var(--embeddable-height) - var(--lj-toolbar-height) + 40px)}.excalidraw__embeddable__outer .lj-univer .univer-relative.univer-grid{width:var(--embeddable-width)}.excalidraw input[type=radio]:active,.excalidraw input[type=radio]:checked,.excalidraw input[type=radio]:focus,.excalidraw input[type=radio]:focus-visible{background-color:revert;border-color:revert;box-shadow:none;outline:revert}.excalidraw input[type=radio]:after,.excalidraw input[type=radio]:checked:after{background-color:transparent!important;content:none!important;display:none!important;-webkit-mask-image:none!important;-webkit-mask-position:initial!important;-webkit-mask-size:initial!important} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 48502cd..4e05bff 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -8,18 +8,13 @@ "type": "tabs", "children": [ { - "id": "85ff070f2dda5843", + "id": "f669bd78b6310606", "type": "leaf", "state": { - "type": "markdown", - "state": { - "file": "00 Inbox/КР - Персептрон.md", - "mode": "source", - "source": false, - "backlinks": false - }, + "type": "empty", + "state": {}, "icon": "lucide-file", - "title": "КР - Персептрон" + "title": "New tab" } } ] @@ -257,11 +252,31 @@ "obsidian-excalidraw-plugin:New drawing": false } }, - "active": "85ff070f2dda5843", + "active": "f669bd78b6310606", "lastOpenFiles": [ - "99 System/Cache/Pasted image 20260515090441.png", - "99 System/Cache/Pasted image 20260515090401.png", - "99 System/Cache/Pasted image 20260515090322.png", + "99 System/Archive/Ruby - массивы.md", + "90 Library/06 Programming/Ruby - массивы.md", + "99 System/Cache/Pasted image 20260517203352.png", + "99 System/Cache/Pasted image 20260517203317.png", + "99 System/Cache/Pasted image 20260517203304.png", + "99 System/Cache/Pasted image 20260517203259.png", + "99 System/Cache/Pasted image 20260517203252.png", + "99 System/Cache/Pasted image 20260517203235.png", + "99 System/Cache/Pasted image 20260517203218.png", + "99 System/Cache/Pasted image 20260517203153.png", + "99 System/Cache/Pasted image 20260517203130.png", + "99 System/Cache/Pasted image 20260517200426.png", + "99 System/Archive/Ruby - основы языка.md", + "90 Library/06 Programming/Ruby - основы языка.md", + "00 Inbox/Infrastructure.md", + "99 System/Cache/infra.excalidraw.md.md", + "99 System/Archive/КР - Хопфилд.md", + "99 System/Archive/КР - Персептрон.md", + "99 System/Archive/КР - Кохонен.md", + "99 System/Cache/Drawing 2026-05-17 13.43.55.excalidraw.md", + "99 System/Cache/Drawing 2026-05-17 14.13.00.excalidraw.md", + "00 Inbox/КР - Персептрон.md", + "00 Inbox/Лайфхак для NPM. Как проксировать не на поддомен а на под путь.md", "КР - Все темы.md.tmp.122479.370c365f038f", "КР - Все темы.md.tmp.122479.c53da0b5a00d", "КР - Все темы.md", @@ -279,32 +294,12 @@ "00 Inbox/КР - Хопфилд.md", "90 Library/11 Machine Learning/Персептрон.md", "00 Inbox/КР - Кохонен.md", - "00 Inbox/КР - Персептрон.md", "99 System/Cache/Drawing 2026-05-14 17.24.16.excalidraw.md", "99 System/Cache/Drawing 2026-05-14 17.10.42.excalidraw.md", "99 System/Cache/Drawing 2026-05-14 17.02.08.excalidraw.md", - "99 System/Cache/Pasted image 20260514152547.png", - "99 System/Cache/Pasted image 20260514152232.png", "99 System/Cache/Drawing 2026-05-14 15.21.19.excalidraw.md", "99 System/Cache/Drawing 2026-05-14 15.06.37.excalidraw.md", "00 Inbox/Алгоритм обучения персептрона.md", - "00 Inbox/Untitled.canvas", - "00 Inbox/Untitled Diagram.svg", - "90 Library/11 Machine Learning/Сеть Хэмминга.md", - "90 Library/11 Machine Learning/Сеть Хопфилда.md", - "90 Library/11 Machine Learning/Обратное распространение ошибки.md", - "90 Library/11 Machine Learning/Нейронные сети.md", - "01 Ideas/Идея от 2026-05-14.md", - "CLAUDE.md", - "99 System/Cache/Pasted image 20260514123429.png", - "90 Library/09 Sport/L-карнитин.md", - "00 Inbox/Нейронная сеть хемминга.md", - "99 System/Archive/Функционирование сети Хопфилда.md", - "99 System/Archive/Нейронная сеть хемминга.md", - "99 System/Cache/Pasted image 20260514120654.png", - "99 System/Cache/Pasted image 20260514115340.png", - "00 Inbox/Функционирование сети Хопфилда.md", - "99 System/Cache/Pasted image 20260512225511.png", - "99 System/Cache/Pasted image 20260512225452.png" + "00 Inbox/Untitled.canvas" ] } \ No newline at end of file diff --git a/00 Inbox/099dd81b-27a1-46e5-88fe-20276b442b78.pdf b/00 Inbox/099dd81b-27a1-46e5-88fe-20276b442b78.pdf new file mode 100644 index 0000000..bb02a18 Binary files /dev/null and b/00 Inbox/099dd81b-27a1-46e5-88fe-20276b442b78.pdf differ diff --git a/00 Inbox/1287aee9-73d3-439d-b028-069f9b713000.pdf b/00 Inbox/1287aee9-73d3-439d-b028-069f9b713000.pdf new file mode 100644 index 0000000..66ec372 Binary files /dev/null and b/00 Inbox/1287aee9-73d3-439d-b028-069f9b713000.pdf differ diff --git a/00 Inbox/2a01a9d4-99f5-4d5c-8fc3-95c4ed62d8af.pdf b/00 Inbox/2a01a9d4-99f5-4d5c-8fc3-95c4ed62d8af.pdf new file mode 100644 index 0000000..3886673 Binary files /dev/null and b/00 Inbox/2a01a9d4-99f5-4d5c-8fc3-95c4ed62d8af.pdf differ diff --git a/00 Inbox/395f976c-4494-4b0f-a513-2a17e76a1fbe.pdf b/00 Inbox/395f976c-4494-4b0f-a513-2a17e76a1fbe.pdf new file mode 100644 index 0000000..1ad8bc9 Binary files /dev/null and b/00 Inbox/395f976c-4494-4b0f-a513-2a17e76a1fbe.pdf differ diff --git a/00 Inbox/40b9753d-3670-4abe-81f0-a5cc53a76cf2.pdf b/00 Inbox/40b9753d-3670-4abe-81f0-a5cc53a76cf2.pdf new file mode 100644 index 0000000..bc60797 Binary files /dev/null and b/00 Inbox/40b9753d-3670-4abe-81f0-a5cc53a76cf2.pdf differ diff --git a/00 Inbox/458a0596-ee1c-43dc-9c4e-de29c9df919c.pdf b/00 Inbox/458a0596-ee1c-43dc-9c4e-de29c9df919c.pdf new file mode 100644 index 0000000..f0a3ad6 Binary files /dev/null and b/00 Inbox/458a0596-ee1c-43dc-9c4e-de29c9df919c.pdf differ diff --git a/00 Inbox/4a28d0a1-8393-4b0c-b528-ec4d42dca0f0.pdf b/00 Inbox/4a28d0a1-8393-4b0c-b528-ec4d42dca0f0.pdf new file mode 100644 index 0000000..0deb6bf Binary files /dev/null and b/00 Inbox/4a28d0a1-8393-4b0c-b528-ec4d42dca0f0.pdf differ diff --git a/00 Inbox/5366a61b-61ca-4e2f-b445-928ea32d2209.pdf b/00 Inbox/5366a61b-61ca-4e2f-b445-928ea32d2209.pdf new file mode 100644 index 0000000..75a7c9e Binary files /dev/null and b/00 Inbox/5366a61b-61ca-4e2f-b445-928ea32d2209.pdf differ diff --git a/00 Inbox/54b7b330-e96b-4b89-93c6-bab34e127186.pdf b/00 Inbox/54b7b330-e96b-4b89-93c6-bab34e127186.pdf new file mode 100644 index 0000000..9478893 Binary files /dev/null and b/00 Inbox/54b7b330-e96b-4b89-93c6-bab34e127186.pdf differ diff --git a/00 Inbox/64674bde-a499-4e2c-9395-223d057af808.pdf b/00 Inbox/64674bde-a499-4e2c-9395-223d057af808.pdf new file mode 100644 index 0000000..14fb5a7 Binary files /dev/null and b/00 Inbox/64674bde-a499-4e2c-9395-223d057af808.pdf differ diff --git a/00 Inbox/7ece68d3-01d0-4fc1-bbc6-fb9dd09c09ce.pdf b/00 Inbox/7ece68d3-01d0-4fc1-bbc6-fb9dd09c09ce.pdf new file mode 100644 index 0000000..f731357 Binary files /dev/null and b/00 Inbox/7ece68d3-01d0-4fc1-bbc6-fb9dd09c09ce.pdf differ diff --git a/00 Inbox/b7972f0c-5277-42d2-8e87-10be20c829b7.pdf b/00 Inbox/b7972f0c-5277-42d2-8e87-10be20c829b7.pdf new file mode 100644 index 0000000..82b5e79 Binary files /dev/null and b/00 Inbox/b7972f0c-5277-42d2-8e87-10be20c829b7.pdf differ diff --git a/00 Inbox/bce065fa-19e5-43f6-a76f-e6bb4f56b06a.pdf b/00 Inbox/bce065fa-19e5-43f6-a76f-e6bb4f56b06a.pdf new file mode 100644 index 0000000..b71a6a9 Binary files /dev/null and b/00 Inbox/bce065fa-19e5-43f6-a76f-e6bb4f56b06a.pdf differ diff --git a/00 Inbox/c26f22d5-f84f-41dd-a74f-274ff248cec2.pdf b/00 Inbox/c26f22d5-f84f-41dd-a74f-274ff248cec2.pdf new file mode 100644 index 0000000..7a207a3 Binary files /dev/null and b/00 Inbox/c26f22d5-f84f-41dd-a74f-274ff248cec2.pdf differ diff --git a/00 Inbox/c569c481-8263-47ee-8ffa-6ee6acee3fab.pdf b/00 Inbox/c569c481-8263-47ee-8ffa-6ee6acee3fab.pdf new file mode 100644 index 0000000..f4a84a9 Binary files /dev/null and b/00 Inbox/c569c481-8263-47ee-8ffa-6ee6acee3fab.pdf differ diff --git a/00 Inbox/cf1e2060-12ae-42a3-a902-5e5368178446.pdf b/00 Inbox/cf1e2060-12ae-42a3-a902-5e5368178446.pdf new file mode 100644 index 0000000..4656bde Binary files /dev/null and b/00 Inbox/cf1e2060-12ae-42a3-a902-5e5368178446.pdf differ diff --git a/00 Inbox/d37051ae-813b-4419-8f60-2761d7b5fab8.pdf b/00 Inbox/d37051ae-813b-4419-8f60-2761d7b5fab8.pdf new file mode 100644 index 0000000..2b5e728 Binary files /dev/null and b/00 Inbox/d37051ae-813b-4419-8f60-2761d7b5fab8.pdf differ diff --git a/00 Inbox/d9e79104-3d7b-4aa8-b525-0a5ab36a9771.pdf b/00 Inbox/d9e79104-3d7b-4aa8-b525-0a5ab36a9771.pdf new file mode 100644 index 0000000..7fe4037 Binary files /dev/null and b/00 Inbox/d9e79104-3d7b-4aa8-b525-0a5ab36a9771.pdf differ diff --git a/00 Inbox/e3621adb-fddb-45e8-bf26-6028a5ac5a71.pdf b/00 Inbox/e3621adb-fddb-45e8-bf26-6028a5ac5a71.pdf new file mode 100644 index 0000000..5f3bb4d Binary files /dev/null and b/00 Inbox/e3621adb-fddb-45e8-bf26-6028a5ac5a71.pdf differ diff --git a/00 Inbox/eb2b3804-7372-434a-a89f-a1027dfa9ee3.pdf b/00 Inbox/eb2b3804-7372-434a-a89f-a1027dfa9ee3.pdf new file mode 100644 index 0000000..ba3d92d Binary files /dev/null and b/00 Inbox/eb2b3804-7372-434a-a89f-a1027dfa9ee3.pdf differ diff --git a/00 Inbox/eba27a8b-3c53-46ee-adc0-c9888ff705e1.pdf b/00 Inbox/eba27a8b-3c53-46ee-adc0-c9888ff705e1.pdf new file mode 100644 index 0000000..2229846 Binary files /dev/null and b/00 Inbox/eba27a8b-3c53-46ee-adc0-c9888ff705e1.pdf differ diff --git a/00 Inbox/КР - Хэмминг.md b/00 Inbox/КР - Хэмминг.md deleted file mode 100644 index 2f4a4c4..0000000 --- a/00 Inbox/КР - Хэмминг.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -status: seed -type: concept -tags: [] -created: 2026-05-14 -updated: 2026-05-15 -title: КР - Хэмминг ---- - -# КР - Хэмминг - -## Что могут спросить - -1. Что такое сеть Хэмминга и для чего она нужна? -2. Что такое расстояние Хэмминга? -3. Какая архитектура у сети Хэмминга? -4. Как задаются веса первого слоя? -5. Зачем нужен второй слой? -6. Как работает взаимное торможение нейронов? -7. Почему сеть Хэмминга экономнее сети Хопфилда? -8. Чем сеть Хэмминга отличается от сети Хопфилда? - -## Краткий ответ - -**Сеть Хэмминга** - нейронная сеть ассоциативной памяти, которая выбирает ближайший эталонный образ. Она не восстанавливает образ полностью, а определяет, какому эталону или классу соответствует вход. - -Идея: найти эталон с минимальным расстоянием Хэмминга до входного вектора. - -## Расстояние Хэмминга - -Расстояние Хэмминга - число позиций, в которых два бинарных вектора отличаются. - -Пример: - -$$ -X=(1,0,1,1),\quad Y=(1,1,0,1) -$$ - -Отличаются 2 позиции, значит: - -$$ -d_H(X,Y)=2 -$$ - -Для бинарных векторов: - -$$ -d_H(X,Y)=\sum\limits_{i=1}^{n}[x_i\neq y_i] -$$ - -## Архитектура - -Сеть состоит из двух слоёв: - -1. **Первый слой** - сравнивает входной образ со всеми эталонами. -2. **Второй слой** - реализует конкуренцию между эталонами и оставляет одного победителя. - -Если есть $m$ эталонов, то в первом и втором слоях по $m$ нейронов. - -Нейроны первого слоя имеют $n$ входов, где $n$ - размерность образа. - -Во втором слое: - -- связь нейрона с самим собой имеет вес $+1$; -- связи с другими нейронами имеют отрицательный вес $-\varepsilon$; -- параметр $\varepsilon$ выбирают так: - -$$ -0<\varepsilon<\frac{1}{m} -$$ - -![[Pasted image 20260515090441.png]] - -## Инициализация - -Пусть $x_i^k$ - $i$-й элемент $k$-го эталонного образа. - -Веса первого слоя: - -$$ -w_{ik}=\frac{x_i^k}{2} -$$ - -Порог: - -$$ -T_k=\frac{n}{2} -$$ - -Сдвигает диапазон выхода в $[0, n]$: при полном совпадении с эталоном $y_k^{(1)}=n$, при полном несовпадении — $0$. - -где: - -- $i=0,\dots,n-1$; -- $k=0,\dots,m-1$; -- $n$ - размерность входного образа; -- $m$ - число эталонов. - -## Алгоритм функционирования - -1. На вход подаётся неизвестный вектор: - -$$ -X=\{x_i:i=0,\dots,n-1\} -$$ - -2. Первый слой вычисляет начальную близость входа к каждому эталону: - -$$ -y_j^{(1)}=s_j^{(1)}=\sum\limits_{i=1}^{n-1}w_{ij}x_i+T_j,\ j=\overline{0,m-1} -$$ - -3. Эти значения передаются во второй слой: - -$$ -y_j^{(2)}=y_j^{(1)} -$$ - -4. Во втором слое запускается конкуренция: - -$$ -s_j^{(2)}(p+1)=y_j^{(2)}(p)-\varepsilon\sum\limits_{\substack{k=0\\k\neq j}}^{m-1}y_k^{(2)}(p) -$$ - -5. Затем применяется пороговая функция: - -$$ -y_j^{(2)}(p+1)=f(s_j^{(2)}(p+1)) -$$ - -6. Итерации продолжаются, пока выходы второго слоя не стабилизируются. - -В конце активным должен остаться один нейрон. Его номер соответствует ближайшему эталону. - -## Смысл второго слоя - -Второй слой нужен для выбора победителя. Нейроны взаимно тормозят друг друга: чем сильнее активен один кандидат, тем сильнее он подавляет остальных. - -В итоге остаётся нейрон, соответствующий эталону с наибольшей похожестью и минимальным расстоянием Хэмминга. - -## Почему первый слой условный - -Первый слой используется только один раз - чтобы посчитать начальные значения похожести. После этого сеть работает только со вторым слоем. - -Поэтому первый слой можно заменить матрицей весов и обычным вычислением близости. - -## Отличие от сети Хопфилда - -| Сеть | Что делает | Результат | -|---|---|---| -| Хопфилда | восстанавливает образ | полный эталонный вектор | -| Хэмминга | сравнивает с эталонами | номер ближайшего эталона | - -Сеть Хэмминга обычно требует меньше памяти и вычислений, потому что ей не нужно восстанавливать весь образ через полную рекуррентную динамику. - -## Мини-ответ на контрольной - -Сеть Хэмминга - сеть ассоциативной памяти для выбора ближайшего эталонного образа. Она основана на расстоянии Хэмминга, то есть числе несовпадающих битов. Первый слой вычисляет близость входа к каждому эталону, второй слой через отрицательные обратные связи подавляет слабые варианты. В результате активным остаётся один выходной нейрон, соответствующий ближайшему образцу. diff --git a/90 Library/01 Admin/Nginx Proxy Manager под path.md b/90 Library/01 Admin/Nginx Proxy Manager под path.md new file mode 100644 index 0000000..3f69fba --- /dev/null +++ b/90 Library/01 Admin/Nginx Proxy Manager под path.md @@ -0,0 +1,58 @@ +--- +status: seed +type: guide +tags: + - admin + - nginx + - reverse-proxy + - homelab +created: 2026-05-18 +updated: 2026-05-18 +title: Nginx Proxy Manager под path +source: "[[Лайфхак для NPM. Как проксировать не на поддомен а на под путь]]" +--- + +# Nginx Proxy Manager под path + +Кейс: сервис нужно опубликовать не на отдельном поддомене вида `service.domain.ru`, а в подкаталоге основного домена: `domain.ru/`. + +## Решение + +В Nginx Proxy Manager нужно добавить `location` для нужного маршрута и в дополнительных настройках срезать prefix перед проксированием: + +```nginx +rewrite ^//?(.*)$ /$1 break; +``` + +Смысл правила: + +- пользователь открывает `domain.ru//...`; +- Nginx убирает `/` из URI; +- upstream получает путь так, будто сервис открыт в корне `/`. + +## Когда это нужно + +Подход полезен, если: + +- не хочется заводить отдельный поддомен под мелкий сервис; +- сервис живет за reverse proxy в homelab; +- внешний URL должен быть компактным; +- нужно спрятать несколько внутренних сервисов за одним доменом. + +## Ограничения + +Не каждый сервис нормально работает под path-prefix. Возможные проблемы: + +- абсолютные ссылки на `/assets`, `/api`, `/static`; +- WebSocket-маршруты; +- OAuth/callback URL; +- hardcoded base URL внутри приложения; +- редиректы на `/`, из-за которых пользователь выпадает из `/`. + +Если приложение поддерживает настройку base path/base URL, лучше указать ее явно. Rewrite в proxy — рабочий хак, но не полноценная замена поддержке subpath внутри приложения. + +## Связанные заметки + +- [[Infrastructure — ada-dev]] — где NPM используется как публичный и локальный reverse proxy. +- [[CA и NGINX]] — TLS и базовая настройка Nginx. +- [[Docker - Дополнительные знания]] — эксплуатация сервисов в контейнерах. diff --git a/90 Library/06 Programming/Ruby - массивы.md b/90 Library/06 Programming/Ruby - массивы.md new file mode 100644 index 0000000..932ded6 --- /dev/null +++ b/90 Library/06 Programming/Ruby - массивы.md @@ -0,0 +1,97 @@ +--- +status: seed +type: knowledge +tags: + - programming + - ruby +created: 2026-05-17 +updated: 2026-05-17 +title: Ruby - массивы +source: "[[Ruby - массивы]]" +--- + +# Ruby — массивы + +Массив в Ruby — экземпляр класса `Array`. Поскольку массивы являются объектами со своими методами, работа со списками данных упрощается. + +Связанные темы: [[Ruby - основы языка]] + +## Создание массива + +```ruby +a1 = [1, 2, 3] # литерал +a2 = %w{word1 word2} # массив строк без кавычек +a3 = ['start', nil, 5, [1, 2]] # разнотипные элементы, вложенный массив + +a4 = Array.new # пустой массив +a5 = Array.new(3) # [nil, nil, nil] +a6 = Array.new(5, "Test") # ["Test", "Test", ...] +a7 = Array.new(5) { |i| i * i } # [0, 1, 4, 9, 16] +a8 = Array.[](1, 'a', /^A/) # через метод класса +``` + +Ruby поддерживает многомерные массивы с элементами разной размерности. + +## Индексация + +```ruby +a[0] # первый элемент +a[-1] # последний элемент +a[-2] # предпоследний +``` + +### Размер + +```ruby +a.size # количество элементов +a.length # синоним size +``` + +## Поиск элементов + +```ruby +a.include?(obj) # => true / false +a.index(obj) # индекс первого вхождения или nil +``` + +## Добавление элементов + +```ruby +a << 4 # в конец +a += [5] # объединение +a.push(6) # в конец (синоним: append) +a.unshift(0) # в начало (сдвигает остальные вправо) +a.insert(2, x) # вставить перед элементом с индексом 2 +``` + +## Удаление элементов + +```ruby +a.delete(obj) # удалить все вхождения obj +a.delete_at(index) # удалить по индексу +a.delete_if { |x| block } # удалить все, подходящие под условие +a.shift # удалить и вернуть первый элемент +a.pop # удалить и вернуть последний элемент +``` + +## Срезы + +```ruby +a[1..3] # диапазон индексов +a[1, 3] # начиная с индекса 1, длиной 3 +a.values_at(0, 2, 4) # элементы по перечисленным индексам или диапазонам +a.first(n) # первые n элементов +a.last(n) # последние n элементов +``` + +## Полезные методы + +```ruby +a.flatten # развернуть многомерный массив в одномерный +a.flatten! # то же, но изменяет сам массив + +a.sample # случайный элемент +a.sample(n) # n случайных элементов + +a.select { |x| block } # массив элементов, для которых block == true +``` diff --git a/90 Library/06 Programming/Ruby - основы языка.md b/90 Library/06 Programming/Ruby - основы языка.md new file mode 100644 index 0000000..60001d5 --- /dev/null +++ b/90 Library/06 Programming/Ruby - основы языка.md @@ -0,0 +1,121 @@ +--- +status: seed +type: knowledge +tags: + - programming + - ruby +created: 2026-05-17 +updated: 2026-05-17 +title: Ruby - основы языка +source: "[[Ruby - основы языка]]" +--- + +# Ruby — основы языка + +Ruby — объектно-ориентированный язык, но допускает процедурный стиль написания кода. Всё является объектом, включая числа и булевы значения. + +Связанные темы: [[Ruby On Rails]] + +## Синтаксис + +- Знак препинания в конце строки не нужен +- Отступы не несут синтаксического смысла (в отличие от Python) +- Несколько команд в одной строке разделяются через `;` + +```ruby +puts "Hello World!" +puts 42; puts "next line" +``` + +## Комментарии + +```ruby +# однострочный комментарий + +=begin +многострочный +комментарий +=end +``` + +## Типы данных + +```ruby +"Hello".class # => String +true.class # => TrueClass +5.class # => Integer +6.4.class # => Float +nil.class # => NilClass +``` + +### Именование + +- Переменные — с маленькой буквы: `my_var` +- Классы — с большой буквы: `MyClass` +- Ключевые слова языка использовать нельзя + +### Преобразование типов + +**Явное:** + +| Метод | Что делает | +|--------|-----------------------------------------| +| `to_i` | к целому числу (дробная часть отсекается) | +| `to_f` | к вещественному числу | +| `to_s` | к строке | + +**Неявное:** при математических операциях `Integer + Float` → `Float`. + +## Управляющие конструкции + +```ruby +# if без ветвления +if a > 0 + action +end + +# if-elsif-else +if a > 0 + ... +elsif a == 0 + ... +else + ... +end + +# unless — выполнится, если условие ложно +unless a > 0 + action +end + +# case +case a +when 1 then puts "один" +when 2 then puts "два" +else puts "другое" +end +``` + +## Циклы + +| Оператор | Назначение | +|----------|-----------| +| `loop` | бесконечный цикл; выход через `break` | +| `while` | цикл с условием выполнения | +| `until` | цикл, пока условие ложно | +| `for` | итератор по перечислимому объекту | +| `next` | пропустить текущий шаг | +| `redo` | повторить текущий шаг заново | + +**Диапазоны в `for`:** + +```ruby +for i in 1..5 # от 1 до 5 включительно +for i in 1...5 # от 1 до 4 (5 не входит) +``` + +**Деление с остатком:** + +```ruby +x, r = x.divmod(n) +``` diff --git a/90 Library/07 HomeLab/Infrastructure — ada-dev.md b/90 Library/07 HomeLab/Infrastructure — ada-dev.md new file mode 100644 index 0000000..9bf2eb0 --- /dev/null +++ b/90 Library/07 HomeLab/Infrastructure — ada-dev.md @@ -0,0 +1,118 @@ +--- +status: seed +type: concept +tags: + - homelab + - infrastructure + - devops +created: 2026-05-18 +updated: 2026-05-18 +title: Infrastructure — ada-dev +source: "[[Infrastructure]]" +--- + +# Infrastructure — ada-dev + +Заметка фиксирует текущую схему homelab-инфраструктуры `ada-dev`: публичный VPS, домашние узлы, reverse proxy, overlay-сеть и пользовательские сервисы. + +![[infra.excalidraw.md.md|950]] + +## Общая схема + +Инфраструктура состоит из трех ключевых зон: + +- `Internet` — внешний доступ пользователей. +- `ru-vps` с белым IP — публичная точка входа. +- локальные узлы `mini-pc` и `cloud-pc`, связанные с VPS через ZeroTier overlay network. + +VPS принимает внешний трафик и проксирует его дальше. Домашние сервисы не обязаны напрямую светиться в интернет: доступ к ним можно строить через публичный [[CA и NGINX|Nginx]]/NPM и приватную overlay-сеть. + +## Узлы + +### ru-vps + +`ru-vps` — публичный сервер с белым IP. На схеме он выполняет роль внешнего шлюза: + +- `NPM (публичный)` — reverse proxy для публичных доменов и маршрутов; +- `Nginx (80, 443)` — входная точка HTTP/HTTPS; +- `ufw` — базовый firewall; +- `ZeroTier` — связь с домашним сегментом; +- `Portainer Agent` — управление контейнерной средой через Portainer. + +Практический смысл VPS — держать наружу только минимальный набор портов и не раскрывать домашнюю сеть напрямую. + +### mini-pc + +`mini-pc` описан как `N150 / 12 GB / 256 GB`. По схеме это небольшой домашний узел для инфраструктурных сервисов: + +- `AdGuard Home`; +- `NPM (локальный)`; +- `Vaultwarden`; +- `ZeroTier`; +- `Portainer Agent`. + +Логика узла: локальная инфраструктура и сервисы, которым полезно быть рядом с домашней сетью. + +### cloud-pc + +`cloud-pc` описан как `i5 / 16 GB / 256 GB + 5 TB`. Это более крупный узел для сервисов и хранения: + +- `Portainer Server`; +- `Cockpit`; +- `Gitea + Registry`; +- `Gitea Actions Runner`; +- `Nextcloud`; +- `SMB/BU/Files (5 TB HDD)`; +- `ZeroTier`. + +Логика узла: сервисы разработки, файлы, backup/storage и управление контейнерами. + +## Сетевой слой + +ZeroTier используется как overlay-сеть между VPS и домашними узлами. Это позволяет: + +- проксировать трафик с публичного VPS на локальные сервисы; +- не открывать сервисные порты домашней сети наружу; +- держать управление и межузловые соединения в приватном сегменте; +- упростить маршрутизацию между VPS, `mini-pc` и `cloud-pc`. + +`ufw` на VPS должен ограничивать внешний периметр. Базовая модель: наружу открыты только необходимые публичные порты, а внутренние сервисы доступны через ZeroTier и reverse proxy. + +## Reverse proxy + +На схеме есть два уровня NPM: + +- `NPM (публичный)` на VPS — отвечает за публичный доступ; +- `NPM (локальный)` на `mini-pc` — может обслуживать локальные маршруты и внутренние сервисы. + +Такой подход полезен, если нужно разделить внешний и внутренний контуры. Публичный NPM принимает домены из интернета, локальный NPM может маршрутизировать сервисы внутри homelab. + +Смежная заметка: [[Nginx Proxy Manager под path]]. + +## Сервисы + +Ключевые пользовательские сервисы: + +- `Vaultwarden` — self-hosted password manager; +- `Gitea + Registry` — Git-сервер и container registry; +- `Gitea Actions Runner` — CI runner; +- `Nextcloud` — файловая синхронизация; +- `SMB/BU/Files` — файловое хранилище и backup на 5 TB HDD; +- `AdGuard Home` — DNS/ad blocking; +- `Cockpit` — web-управление сервером; +- `Portainer Server/Agent` — управление контейнерами. + +## Замечания по устойчивости + +- Публичный VPS — критическая точка входа. Если он падает, внешний доступ к сервисам пропадает, даже если домашние узлы живы. +- ZeroTier — критическая зависимость для связности между VPS и домашними узлами. +- `cloud-pc` несет сразу несколько ролей: Git, registry, runner, Nextcloud и storage. Для важных данных нужен отдельный backup-контур. +- `Vaultwarden` стоит держать максимально изолированным: отдельный volume, backup, HTTPS, минимальный доступ к админке. + +## Связанные заметки + +- [[CA и NGINX]] — TLS-сертификаты и Nginx как входной HTTP/HTTPS-слой. +- [[VPN]] — близкая идея приватного сетевого контура. +- [[Docker - Дополнительные знания]] — контейнерная эксплуатация сервисов. +- [[Основы - Docker]] — базовая модель контейнеризации. +- [[DevOps - основы]] — инфраструктура, автоматизация и эксплуатация. diff --git a/90 Library/10 Finance/Инвестиции/База инвестора.md b/90 Library/10 Finance/Инвестиции/База инвестора.md new file mode 100644 index 0000000..ddb77de --- /dev/null +++ b/90 Library/10 Finance/Инвестиции/База инвестора.md @@ -0,0 +1,381 @@ +--- +status: seed +type: guide +tags: + - finance + - investments + - bonds + - funds + - gold +created: 2026-05-18 +updated: 2026-05-18 +title: База инвестора +source: + - "[[78e94a8b-66be-410f-8618-0345ff3918e5]]" + - "[[8e65f8ca-b8eb-4e10-97e1-fde245b1c9c4]]" + - "[[a2713c5f-1e6b-429c-98cc-710b179bc017]]" + - "[[a5d627bd-c616-43bb-8490-bdeef3f27d15]]" + - "[[b280330d-7651-4a92-856c-869ab2b317db]]" + - "[[b4100a43-8a47-4dad-923f-39fb309c849e]]" + - "[[b63b403c-1855-498f-8866-2052120fff61]]" + - "[[be737cd3-f448-4b6c-b765-8097229f153f]]" + - "[[db7c2cfc-acde-4abe-a59e-87ab4a232034]]" + - "[[e74de470-d705-4000-80d0-5daecd564267]]" +--- + +# База инвестора + +Инвестиционный портфель строится от цели, горизонта и риск-профиля. Отдельные инструменты — облигации, фонды, золото, акции — имеют смысл только внутри структуры портфеля. + +Не является индивидуальной инвестиционной рекомендацией. + +## Базовый алгоритм + +1. Определить цель и горизонт: зачем инвестировать и когда нужны деньги. +2. Определить риск-профиль: какую просадку портфеля реально выдержать без паники. +3. Выбрать стиль: пассивный, активный или трейдинг. +4. Выбрать стратегию: индексная, дивидендная, value, growth, облигационная, защитная. +5. Собрать портфель из классов активов, а не из случайных идей. +6. Проверить налоги, комиссии, ликвидность, валютные и кредитные риски. +7. Периодически ребалансировать портфель, но не дергать его из-за каждого рыночного шума. + +## Риск-профиль + +Риск-профиль складывается из трех блоков: + +- готовность к риску: отношение к волатильности, прошлый опыт, эмоциональная устойчивость; +- возможность риска: стабильность дохода, финансовая подушка, обязательства и долги; +- цель: горизонт инвестирования и требуемая доходность. + +Типовые профили: + +| Профиль | Цель | Комфортная просадка | Типовая структура | +|---|---|---:|---| +| Консервативный | сохранность капитала | просадка больше 5% уже дискомфортна | облигации 85-90%, акции 10-15% | +| Умеренный | баланс риска и доходности | 15-20% без паники | акции 60%, облигации 40% | +| Агрессивный | максимальный рост | готовность к просадкам больше 30% | акции 80-100% | + +Из другого источника: консервативный инвестор может ориентироваться на просадку до 15%, умеренный — до 35%, агрессивный — до 60%. Это не противоречие, а разные шкалы грубости. Практический вывод: риск-профиль лучше задавать не красивым названием, а конкретной максимальной просадкой в рублях и процентах. + +## Стили инвестирования + +- Долгосрочный/пассивный инвестор — тратит до пары часов в месяц, держит качественные активы и фонды. +- Активный инвестор — тратит несколько часов в неделю, следит за макроэкономикой, секторами и идеями. +- Трейдер — работает с рынком почти ежедневно, зависит от графиков, новостей, дисциплины и риск-менеджмента. + +Риск-профиль должен ограничивать стиль. Консерватору логичнее пассивная база и надежные инструменты. Умеренный профиль допускает пассивную базу и часть активных идей. Агрессивный профиль может использовать активные стратегии и трейдинг, если есть время и навык. + +## Психологические ловушки + +- стадное чувство; +- FOMO и эмоциональный трейдинг; +- отсутствие диверсификации; +- инвестирование на заемные средства; +- погоня за максимальной доходностью без понимания риска; +- вера, что знакомая компания автоматически надежна. + +## Макроэкономика и портфель + +Цены активов зависят от будущих доходов, ставок, роста экономики, инфляции, курса рубля и геополитической премии за риск. + +Ключевые индикаторы: + +- ВВП, бизнес-настроения, безработица, зарплаты и спрос; +- инфляция годовая и текущая; +- ключевая ставка, доходности ОФЗ и корпоративных облигаций; +- курс рубля; +- нефть, газ, золото, промышленные металлы, удобрения; +- бюджетная политика и налоги. + +Для российского рынка после ухода значительной части нерезидентов важнее стали внутренние драйверы: прибыль компаний, ставки, инфляция, бюджет, розничные инвесторы. Доля экспортеров в капитализации снизилась примерно до 50%, но сырье и курс рубля все еще важны. + +Практические зависимости: + +- снижение ставок обычно поддерживает акции и длинные облигации; +- рост ставок давит на длинные облигации и повышает привлекательность денежного рынка; +- ослабление рубля поддерживает экспортеров и валютные/квазивалютные инструменты; +- высокая инфляция повышает значимость флоатеров, линкеров и защитных активов; +- геополитическая неопределенность увеличивает риск-премию и волатильность. + +## Облигации + +Облигация — долговой инструмент: инвестор дает деньги эмитенту, получает купоны и возврат номинала при погашении. Главная идея: доход предсказуемее, чем в акциях, но риск не нулевой. + +Базовые понятия: + +- эмитент — государство, регион, муниципалитет или компания; +- номинал — сумма, которую вернут при погашении; +- купон — процентное вознаграждение; +- дата погашения — момент возврата номинала; +- доходность к погашению — ожидаемая доходность при удержании до погашения и реинвестировании купонов; +- дюрация — средний срок возврата денег и чувствительность цены к изменению доходности; +- оферта — возможность досрочного выкупа. + +Важный принцип: смотреть нужно не только на купон, а на доходность к погашению/оферте. Большой купон не означает хорошую сделку, если бумага куплена сильно выше номинала. + +## Виды облигаций + +По эмитенту: + +- ОФЗ — федеральные облигации, базовый надежный рублевый инструмент; +- муниципальные облигации — выше доходность, ниже ликвидность и выше риск, чем у ОФЗ; +- корпоративные облигации — выше доходность за счет кредитного риска компании. + +По погашению номинала: + +- обычное погашение в конце срока; +- амортизация — номинал возвращается частями, купонная база постепенно уменьшается; +- индексируемый номинал — номинал растет вместе с инфляцией. + +По купону: + +- фиксированный купон — предсказуемые выплаты; +- плавающий купон/флоатер — купон зависит от RUONIA, ключевой ставки, инфляции или другого индикатора; +- флоатеры полезны при риске роста ставки, но при снижении ставки купоны уменьшаются. + +По валюте: + +- рублевые облигации; +- замещающие и квазивалютные облигации — выплаты в рублях, но привязка к валюте; +- юаневые облигации — валютная диверсификация в российской инфраструктуре. + +Отдельные рискованные типы: + +- субординированные облигации — ниже в очереди кредиторов, возможна отмена выплат; +- ипотечные облигации — обеспечены ипотечными платежами, есть риск досрочного погашения; +- ВДО — высокодоходные облигации с повышенным риском дефолта; +- золотые облигации — номинал и купон привязаны к цене золота. + +## Дюрация и ставка + +Цена облигации обратно зависит от рыночной доходности и ключевой ставки: + +- ставка растет — старые облигации дешевеют; +- ставка падает — старые облигации дорожают; +- чем выше дюрация, тем сильнее реакция цены. + +Пример логики: ОФЗ с дюрацией 5 лет может дать около 5% переоценки при снижении доходности на 1 п.п. Поэтому длинные облигации — это не просто "надежно", а ставка на снижение ставок. Если ставка неожиданно вырастет, длинная бумага даст временную просадку. + +## Как выбирать облигации + +Чек-лист: + +1. Оценить доходность к погашению или оферте. +2. Сравнить доходность с ОФЗ сопоставимого срока через кредитный/G-spread. +3. Проверить кредитный рейтинг: на старте разумнее AAA-AA, для более рискованных идей не ниже A. +4. Проверить долговую нагрузку эмитента: Net Debt/EBITDA, динамику выручки, прибыли и процентного покрытия. +5. Выбрать срок под свой горизонт. Деньги нужны через 2 года — не покупать 10-летнюю бумагу только ради доходности. +6. Проверить ликвидность через объем торгов. +7. Диверсифицировать по эмитентам и отраслям. +8. Не пропускать оферты и пересмотр купона. + +Красные флаги: + +- рейтинг BB и ниже; +- отсутствие рейтинга; +- доходность сильно выше рынка без понятной причины; +- маленький выпуск до 1 млрд рублей; +- высокая долговая нагрузка; +- долги по налогам; +- странные сделки; +- оборотный капитал растет быстрее выручки; +- бизнес непонятен инвестору. + +## Стратегии в облигациях + +### Держать до погашения + +Покупать облигации со сроком, близким к финансовой цели. Это снижает риск вынужденной продажи по плохой цене. Кредитный риск остается, поэтому важен надежный эмитент. + +### Лестница облигаций + +Покупать выпуски с разными сроками погашения. Деньги от погашений направлять в новые длинные выпуски. Плюсы: часть портфеля регулярно высвобождается, доходность фиксируется на долгий срок, купоны приходят регулярно. + +### Золотовалютный доход + +Использовать замещающие, квазивалютные, юаневые или золотые облигации для защиты от слабости рубля. + +### "Зарплата" на облигациях + +Идея — собрать портфель так, чтобы купоны приходили каждый месяц. Это не покупка одной бумаги с большим купоном, а структурирование денежных потоков. + +Варианты: + +- 1.0: фиксированные купоны — максимальная предсказуемость; +- 2.0: фиксированные купоны + флоатеры — регулярность и защита от роста ставки; +- 3.0: фиксированные купоны + флоатеры + валютные облигации — добавляется валютная диверсификация. + +Пример принципа сборки: + +- фиксированные — 40%; +- флоатеры — 30%; +- валютные — 30%. + +Адаптация под задачу: + +- процентный баланс: фиксированные 40%, флоатеры 40%, валютные 20%; +- двойная фиксация ставок: фиксированные 50%, валютные 50%; +- следование за циклом: флоатеры 50%, валютные 50%. + +Вывод: регулярный доход требует структуры и дисциплины. Погоня за максимальным купоном часто заканчивается концентрацией кредитного риска. + +## Высокодоходные облигации + +ВДО — облигации компаний с рейтингом BBB+ и ниже, небольших бизнесов, компаний с высокой долговой нагрузкой или нестабильной моделью. + +Для начинающего инвестора чаще всего не подходят. Причина простая: высокая доходность — компенсация за высокий риск, а не подарок рынка. + +Что проверять в ВДО: + +- чем занимается компания; +- рынок и устойчивость бизнес-модели; +- история бенефициаров; +- выручка и ее динамика; +- долговая нагрузка; +- долги по налогам; +- странные сделки; +- качество оборотного капитала. + +Главная задача начинающего инвестора — не максимальная доходность, а предсказуемый и стабильный портфель. + +## Фонды + +Фонд — коллективный портфель активов. Инвестор покупает пай и получает долю в портфеле, которым управляет управляющая компания. + +Плюсы фондов: + +- диверсификация внутри одного инструмента; +- низкий порог входа; +- профессиональное управление; +- ликвидность биржевых фондов; +- налоговая эффективность внутри фонда; +- автоматическое реинвестирование купонов и дивидендов, если фонд не делает выплаты; +- доступ к инструментам, которые сложно собрать самому. + +Минусы: + +- комиссия управления; +- риск ошибки слежения; +- зависимость от качества УК; +- один фонд редко решает все задачи портфеля. + +## Как выбирать фонд + +Чек-лист: + +- комиссия фонда; +- ошибка слежения за индексом; +- способ репликации: физическая предпочтительнее сложной двойной структуры; +- размер активов под управлением; +- состав и веса активов; +- история фонда и поведение в кризисы; +- ликвидность паев; +- соответствие фонда текущей фазе экономического цикла. + +Типы фондов: + +| Тип | Когда полезен | Риск | Горизонт | +|---|---|---|---| +| Денежный рынок | временное размещение денег, высокая ставка | низкий | до года | +| ОФЗ | снижение ставки, надежная облигационная база | низкий/средний из-за дюрации | от года | +| Корпоративные облигации | премия за кредитный риск, стабильная экономика | средний | 1-3 года | +| Валютные облигации | защита от ослабления рубля | средний | от года | +| Золото | защитный актив и валютный риск | средний | от года | +| Российские акции | рост капитала | высокий | от 3 лет | +| Недвижимость | альтернативный доход | средний | от 3 лет | +| Венчур | ставка на быстрый рост частных компаний | высокий | от 5 лет | + +## Фонды и ставка + +Фонд денежного рынка хорош, когда ставка высокая или растет: он дает ликвидность и ежедневный положительный доход, но не фиксирует высокую доходность на годы. + +Фонды ОФЗ и длинных облигаций интереснее при ожидании снижения ставки: цена облигаций растет, но дюрация добавляет волатильность. + +Корпоративные облигационные фонды дают премию за кредитный риск. Их логичнее использовать в стабильные периоды и при горизонте от года. + +Валютные облигационные фонды нужны для снижения риска ослабления рубля, но результат зависит от курса и рублевых ставок. + +## Золото + +Золото — защитный актив, который используют для снижения риска портфеля в кризисы, периоды высокой инфляции, геополитической нестабильности и валютных шоков. + +Драйверы золота: + +- ослабление доллара; +- реальные процентные ставки; +- высокая инфляция; +- геополитическая нестабильность; +- спрос центробанков; +- ювелирный и промышленный спрос; +- инвестиционный спрос. + +После 2022 года мировые центробанки заметно нарастили покупки золота, снижая долю резервов в государственных облигациях США. Доля центробанков в мировом спросе стала выше прежней. + +Практическое правило из материалов: около 10% золота в портфеле может улучшать соотношение доходности и риска. Это не жесткая норма, а ориентир для защитной доли. + +## Как инвестировать в золото + +Инструменты: + +- слитки и монеты; +- биржевое золото; +- фонды на золото; +- акции и облигации золотодобытчиков; +- золотые облигации. + +Сравнение: + +| Инструмент | Плюсы | Минусы | +|---|---|---| +| Слитки и монеты | независимость от брокера, нет НДС при покупке | спред покупки/продажи, хранение, повреждения снижают цену | +| Биржевое золото | высокая ликвидность, быстро купить/продать | комиссия брокера/хранения | +| Фонд на золото | низкий порог входа, ликвидность | комиссия управления | +| Акции/облигации золотодобытчиков | потенциально выше доходность, дивиденды/купоны | риск компании и фондового рынка | + +Налоговая логика из материалов: + +- налог платится с дохода от продажи золотого инструмента; +- при владении золотом, биржевым золотом и фондами больше 3 лет может применяться освобождение; +- для акций и облигаций применимы стандартные правила налогообложения и льгота долгосрочного владения. + +## ИИС-3 + +ИИС-3 — налоговая оболочка для инвестиций. + +Ключевые параметры из материалов: + +- комбинированная льгота: вычет на взнос и вычет на доход; +- можно открыть до трех ИИС-3; +- нет лимита на пополнение; +- минимальный срок владения для счетов 2024-2026 годов — 5 лет, далее срок поэтапно увеличивается; +- можно вывести деньги на дорогостоящее лечение с сохранением права на льготы; +- можно выводить дивиденды на банковский счет; +- с 2026 года активы на ИИС-3 застрахованы до 1,4 млн рублей у брокеров и УК, участвующих в системе возмещения. + +## Практическая структура портфеля + +Для старта разумнее строить не "портфель идей", а портфель ролей: + +- ликвидная часть: денежный рынок, короткие ОФЗ, кэш; +- защитная часть: ОФЗ, надежные облигации, золото; +- доходная часть: корпоративные облигации инвестиционного уровня; +- ростовая часть: акции или фонды акций; +- валютная защита: замещающие/квазивалютные/юаневые облигации, золото. + +Минимальный здравый подход: + +- не брать плечи; +- не начинать с ВДО; +- не концентрироваться в одном эмитенте; +- не покупать длинные облигации без понимания дюрации; +- не держать весь портфель в одном классе активов; +- фиксировать причину покупки до сделки. + +## Связанные заметки + +- [[Производные финансовые инструменты]] — отдельный класс финансовых инструментов с другой природой риска. +- [[Налог на доходы физических лиц (НДФЛ)]] — налогообложение инвестиционного дохода. +- [[Налоговые вычеты]] — налоговые льготы, включая инвестиционные вычеты. +- [[Экономическая безопасность - база]] — макроэкономический контекст: инфляция, ВВП, финансовая устойчивость. +- [[Бухгалтерский баланс]] — анализ долговой нагрузки и финансового состояния компании. +- [[Отчет о финансовых результатах]] — прибыль, выручка и показатели бизнеса. diff --git a/99 System/Archive/78e94a8b-66be-410f-8618-0345ff3918e5.pdf b/99 System/Archive/78e94a8b-66be-410f-8618-0345ff3918e5.pdf new file mode 100644 index 0000000..46492a3 Binary files /dev/null and b/99 System/Archive/78e94a8b-66be-410f-8618-0345ff3918e5.pdf differ diff --git a/99 System/Archive/8e65f8ca-b8eb-4e10-97e1-fde245b1c9c4.pdf b/99 System/Archive/8e65f8ca-b8eb-4e10-97e1-fde245b1c9c4.pdf new file mode 100644 index 0000000..cd730df Binary files /dev/null and b/99 System/Archive/8e65f8ca-b8eb-4e10-97e1-fde245b1c9c4.pdf differ diff --git a/99 System/Archive/Infrastructure.md b/99 System/Archive/Infrastructure.md new file mode 100644 index 0000000..ef95cc7 --- /dev/null +++ b/99 System/Archive/Infrastructure.md @@ -0,0 +1,11 @@ +--- +status: seed +type: concept +tags: [] +created: 2025-12-17 +updated: 2026-05-17 +title: Infrastructure +--- + +# Infrastructure +![[infra.excalidraw.md|950]] diff --git a/99 System/Archive/Ruby - массивы.md b/99 System/Archive/Ruby - массивы.md new file mode 100644 index 0000000..fc3c0f1 --- /dev/null +++ b/99 System/Archive/Ruby - массивы.md @@ -0,0 +1,88 @@ +--- +status: seed +type: concept +tags: [] +created: 2025-12-17 +updated: 2026-05-17 +title: Ruby - массивы +--- + +# Ruby - массивы + +Массив в Ruby - эксземпляр класса **Array** +Поскольку массивы являются объектами со своими методами, то это позволяет облегчить работу со списками данных. + +Массив задается с использованием квадратных скобок, но не только. +```ruby +a1 = [...] + +a2 = %w{word1 word2} + +a3 = ['start', nil, 5, [...]] + +a4 = Array.new +a5 = Array.new(3) +a6 = Array.new(5, "Test") +a7 = Array.new(5) { |i| i*i } +a8 = Array.[](1, 'a', /^A/) +a9 = Array[1, 'a', /^A/] +``` + +Ruby позволяет создавать многомерные массивы, элементы которого могут иметь разную размерность. +![[Pasted image 20260517200426.png]] +## Индексация массива +Доступ к элементам массива в Ruby осуществляется путем указщания его индекса, при этом, есть поддержка отрицательных индексом для индексации с конца. + +### Размеры массива +```ruby +size == length - синонимы, позволяют узнать количество элементов в массиве +``` + +### Поиск элементов массива +Метод `array.include?(obj)` возвращает `true`, если объект является элементом массива `array`. Иначе - `false`. + +Метод `array.index(obj)` возвращает индекс первого вхождения элемента в массив `array`, который равен искомому. Возврат `nil`, если такой элемент не был найден. + +### Добавление элементов в массив +```ruby +a = [1,2,3] +a << 4 +a += [5] +a.push(6) +``` + +Метод `array.unshift(obj)` добавляет элемент в начало массива (со сдвигом вправо уже существующих). +Метод `array.push(obj)` добавляет элемент в конец массива (синоним - `append`). +`array.index(index, obj)` вставляет полученные значения перед элементом с индексом `index`. + +### Разворачивание многомерного массива в одномерный +```ruby +array.flatten() + +array.flatten!() # преобразует в одномерный, заменяя первоначальный +``` + +### Срезы массивов +1) Использование диапазонов при индексации +2) Использование индекса и длины подмассива +3) `array.values_at(selector)` - возвращает массив, который состоит из элементов массива `array`, которые соответствуют передаеваемым селекторам. + Селекторы могут быть целыми числами (индексами) или диапазонами. +4) `array.first(n)` и `array.last(n)`, которые возвращают первые (последние) `n` элементов. + +### Операции с массивом +1) `array.sample(n)` выбор случайного элемента (или `n` элементов) +2) `array.select{ |item| block }` выполняет выражение `block` для каждого элемента массива и возвращает массив, состоящий из элементов, для которых выражение принимает значение true +### Удаление из массива +1) `array.delete(obj)` - удаляет все элементы массива, которые равны `obj`. Если ничего не было удалено, то -> `nil` +2) `array.delete_at(index)` удаляет элемент с индексом `index`. +3) `array.delete_if{ |item| block }` удаляет все элементы, полходящие под условие. +4) `array.shift` удаляет первый элемент из массива и возвращает его, если нет такого, то `nil`. +5) `array.pop` удаляет *последний* элемент из массива и возвращает его. + +### Полезные методы +![[Pasted image 20260517203130.png]] +![[Pasted image 20260517203153.png]]![[Pasted image 20260517203218.png]] +![[Pasted image 20260517203235.png]] +![[Pasted image 20260517203252.png]] +![[Pasted image 20260517203317.png]] +![[Pasted image 20260517203352.png]] diff --git a/99 System/Archive/Ruby - основы языка.md b/99 System/Archive/Ruby - основы языка.md new file mode 100644 index 0000000..82c5745 --- /dev/null +++ b/99 System/Archive/Ruby - основы языка.md @@ -0,0 +1,75 @@ +--- +status: seed +type: concept +tags: [] +created: 2025-12-17 +updated: 2026-05-17 +title: Ruby - основы языка +--- + +# Ruby - основы языка + +Пусть Ruby и объектно-ориентированный язык, можно с ним работать, как с обычным процедурным языком. + +```ruby +puts "Hello World!" +``` + +Команда `puts` выводит что-угодно в консоль. + +- В конце строк ставить знаки препинания не нужно +- Пробелы в начале строки ничего не значит, никакой табуляции +- Если нужно написать несколько команд в одной строке, то `;` заменит перенос строки по смыслу + +## Комментарии +- Два вида комментариев: + - Однострочный - символ `#` + - Многострочный - конструкция =begin =end + +## Типы данных +```ruby +puts "Hello".class -> String +puts true.class -> TrueClass +puts 5.class -> Integer +puts 6.4.class -> Float +putl nil.class -> NilClass +``` + +### Именование +- Переменные называются с маленькой буквы +- Классы, обратно, именуются с большой буквы +- Нельзя называть классы и переменные, используя ключевые слова языка + +### Преобразование типов +- Явное (с помощью функций) + - `to_i` - к целому числу (отсечение дробной части для *float*) + - `to_s` - к строке + - `to_f` - к вещественному числу +- Неявное (преобразование в ходе работы программы) - авто преобразование при мат.операциях (int + float = float) +![[Pasted image 20260517175400.png]] +![[Pasted image 20260517175655.png]] + +## Управляющие конструкции + +В Ruby есть три основных оператора: +- if - без ветвления + `if a > 0 end` +- if-elsif-else +- unless - сработает, если условие ложно +- case + ![[Pasted image 20260517181450.png]] + +### Операторы цикла +1) loop - бесконечный цикл (с условиями выхода break) +2) while - цикл с условием выполнения +3) next - прерывание шага цикла и моментальный переход на следующий шаг +4) until - цикл, пока условие ложно +5) redo - прерывание текущего шага и повторение его же +6) for - итератор перебора перечислимого объекта + - самый распространенный вариант - диапазоны: + - `n..m` - все целые от `n` до `m` *включительно* + - `n...m` - все числа не включая `m` + +> ```ruby +> x, r = x.divmod +> ``` diff --git a/99 System/Archive/a2713c5f-1e6b-429c-98cc-710b179bc017.pdf b/99 System/Archive/a2713c5f-1e6b-429c-98cc-710b179bc017.pdf new file mode 100644 index 0000000..e546521 Binary files /dev/null and b/99 System/Archive/a2713c5f-1e6b-429c-98cc-710b179bc017.pdf differ diff --git a/99 System/Archive/a5d627bd-c616-43bb-8490-bdeef3f27d15.pdf b/99 System/Archive/a5d627bd-c616-43bb-8490-bdeef3f27d15.pdf new file mode 100644 index 0000000..a40da70 Binary files /dev/null and b/99 System/Archive/a5d627bd-c616-43bb-8490-bdeef3f27d15.pdf differ diff --git a/99 System/Archive/b280330d-7651-4a92-856c-869ab2b317db.pdf b/99 System/Archive/b280330d-7651-4a92-856c-869ab2b317db.pdf new file mode 100644 index 0000000..2d197f6 Binary files /dev/null and b/99 System/Archive/b280330d-7651-4a92-856c-869ab2b317db.pdf differ diff --git a/99 System/Archive/b4100a43-8a47-4dad-923f-39fb309c849e.pdf b/99 System/Archive/b4100a43-8a47-4dad-923f-39fb309c849e.pdf new file mode 100644 index 0000000..177e27b Binary files /dev/null and b/99 System/Archive/b4100a43-8a47-4dad-923f-39fb309c849e.pdf differ diff --git a/99 System/Archive/b63b403c-1855-498f-8866-2052120fff61.pdf b/99 System/Archive/b63b403c-1855-498f-8866-2052120fff61.pdf new file mode 100644 index 0000000..57976f4 Binary files /dev/null and b/99 System/Archive/b63b403c-1855-498f-8866-2052120fff61.pdf differ diff --git a/99 System/Archive/be737cd3-f448-4b6c-b765-8097229f153f.pdf b/99 System/Archive/be737cd3-f448-4b6c-b765-8097229f153f.pdf new file mode 100644 index 0000000..32a5846 Binary files /dev/null and b/99 System/Archive/be737cd3-f448-4b6c-b765-8097229f153f.pdf differ diff --git a/99 System/Archive/db7c2cfc-acde-4abe-a59e-87ab4a232034.pdf b/99 System/Archive/db7c2cfc-acde-4abe-a59e-87ab4a232034.pdf new file mode 100644 index 0000000..7b39a98 Binary files /dev/null and b/99 System/Archive/db7c2cfc-acde-4abe-a59e-87ab4a232034.pdf differ diff --git a/99 System/Archive/e74de470-d705-4000-80d0-5daecd564267.pdf b/99 System/Archive/e74de470-d705-4000-80d0-5daecd564267.pdf new file mode 100644 index 0000000..412f9e9 Binary files /dev/null and b/99 System/Archive/e74de470-d705-4000-80d0-5daecd564267.pdf differ diff --git a/00 Inbox/КР - Кохонен.md b/99 System/Archive/КР - Кохонен.md similarity index 100% rename from 00 Inbox/КР - Кохонен.md rename to 99 System/Archive/КР - Кохонен.md diff --git a/00 Inbox/КР - Персептрон.md b/99 System/Archive/КР - Персептрон.md similarity index 100% rename from 00 Inbox/КР - Персептрон.md rename to 99 System/Archive/КР - Персептрон.md diff --git a/00 Inbox/КР - Хопфилд.md b/99 System/Archive/КР - Хопфилд.md similarity index 100% rename from 00 Inbox/КР - Хопфилд.md rename to 99 System/Archive/КР - Хопфилд.md diff --git a/99 System/Archive/Лайфхак для NPM. Как проксировать не на поддомен а на под путь.md b/99 System/Archive/Лайфхак для NPM. Как проксировать не на поддомен а на под путь.md new file mode 100644 index 0000000..137f37e --- /dev/null +++ b/99 System/Archive/Лайфхак для NPM. Как проксировать не на поддомен а на под путь.md @@ -0,0 +1,14 @@ +--- +status: seed +type: concept +tags: [] +created: 2025-12-17 +updated: 2026-05-18 +title: Лайфхак для NPM. Как проксировать не на поддомен а на под путь +--- + +# Лайфхак для NPM. Как проксировать не на поддомен а на под путь +Если нужно проксировать NPM не на поддомен, а на под "локацию" `domain.ru/`, то нужно в location добавить нужный маршрут, но в доп.настройках укзать срез +``` +rewrite ^//?(.*)$ /$1 break; +``` \ No newline at end of file diff --git a/99 System/Cache/Drawing 2026-05-17 13.43.55.excalidraw.md b/99 System/Cache/Drawing 2026-05-17 13.43.55.excalidraw.md new file mode 100644 index 0000000..8f1800b --- /dev/null +++ b/99 System/Cache/Drawing 2026-05-17 13.43.55.excalidraw.md @@ -0,0 +1,227 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + + +# Excalidraw Data + +## Text Elements +Infrastructure — ada-dev ^VEaxMcZ9 + +Internet ^lkuFPfoY + +ru-vps (белый IP) ^NrxGORQ0 + +NPM (публичный) ^DBp2U44i + +Portainer Agent ^JtZ97off + +ZeroTier ^lBDCIlzR + +ufw ^Y2T0g0I8 + +Nginx (80, 443) ^eLuodDGv + +ZeroTier overlay network ^WGOH8B3E + + +mini-pc N150 / 12 GB ^LTn3F3JW + +AdGuard Home ^DLVQXQFf + +NPM (локальный) ^hDXqqb6l + +Vaultwarden ^eRsI074Q + +ZeroTier ^B2kvJiQD + +Portainer Agent ^xyaV3sGD + +Cockpit ^ICBimDwY + +Gitea Actions Runner ^MW2XuP5o + +cloud-pc i5 / 16 GB / 5 TB ^CovPF4A1 + +Gitea + Registry ^ARo7afZk + +Nextcloud ^pMLchFjl + +ZeroTier ^xOh6rG9M + +SMB/BU/Files (5 TB HDD) ^TgT6LjCy + +Portainer Server ^jFHt0emi + +Cockpit ^XPG4GRxG + +управление ^jmHwNbIG + +%% +## Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/99 System/Cache/Drawing 2026-05-17 14.13.00.excalidraw.md b/99 System/Cache/Drawing 2026-05-17 14.13.00.excalidraw.md new file mode 100644 index 0000000..8a154d4 --- /dev/null +++ b/99 System/Cache/Drawing 2026-05-17 14.13.00.excalidraw.md @@ -0,0 +1,30 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + + +# Excalidraw Data + +## Text Elements +%% +## Drawing +```compressed-json +N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebR4AZm0ABho6IIR9BA4oZm4AbXAwUDBSiBJuCABWemIATSMAaVwABTTSyFhESsDsKI5lYPayzG5nAEYANgB2bSqAFgBORYAO + +aenFnkXJtar+Mpgx8fnJ/cgKEnVuBIXtBOXthITplcXkyZ49oshJBEJlaTccZPbSTZLg97jZI3cZVD5nCDWQbiVDJBHMKCkNgAawQAGE2Pg2KRKgBicYICkU4aQTS4bDY5RYoQcYgEokkiSY6zMOC4QI5GkQABmhHw+AAyrAhhJBB4hRisbiAOqXSTcPjfCCKnEIKUwGXoOUVBHMgEccJ5NDjBFsPnYNSHa3ghFM4RwACSxCtqHyAF0EcLyFkvdw + +OEJxQjCKysJVcKlTcJWRbmD6Sh1oPAUQlvgBfdEIBDEIEJca7ZKLJYIxgsdhcZ3VpisTgAOU4YiBiwS8yWu2mUeYABEMlAi9xhQQwgjNEniABRYJZHI+8ORrVCODEXCj4vW9ZvKYJFY8KHzBFEDjYsMR/DntgMsdoCf4MJFXPgAN0XBwOBS7co9NoF+LJKiIAEoGGBhCAQCgACF6UZZlWXZYkyWFdCMMg7ARAFKAPVHfQpSVfFCVQiRyUpSisJw7 + +I8II+CGTdFk2VIzl0G5DheX5WjqNIXD8MyAAxMVJWlFFtUJE0iggbC+NogTCMxXVVWIK40E1MpZP4giiN1fVDQk+V9hkmicgUgAlYRzUtIFjK0+SCIAeXtR0gRdaT7LMgjBM4KBBNwfQxSdVAvk00y6KE3yJUIIwUR4NEPPChSABUsCgABBMD63QYJhQguykp0qJSAyvi2AoX5cF3VBV1vRK5K8zI51ZdKyoqkJqsRNreO0zJWqxChkqzHpZx6hy + +hODBBLMNWrjOYbAsXFAANbgFnmeJQoEBbCXwOprgWYyjDYAxuHTSB6AIIQUXGN8CoaiL9Es5iUx9CAkOLYymRIaLYo1BKyi+4gpQQOBVs+0gSAAWTYYgEGa3BNGCarnynaTAZQtizogWDCU60hlDpAAKE9+14cZSZJ6hUTmABKIVzIQZQI35HoCdwYmEjRXhOapxIueSWmIFu+rcN03FnKgOsVxvYygwCqbslhiGBlOrVsgRpHuExK6EWwIhQbQb + +WEARDh5a10gda1YQoAvFEjYRfR+VxUgWzNw2LeNrVHdIZ34cRx9UCN4WyjsAArBA+mYCVTbgaHYb9zWn0nT2ynpSXGGS478FVjMunEsJgj6OshWwjEDCG7o0FmrUiQfZHk8DLFCIyIvOHHBua9CDKi4zrPr3FYPIEcZgNZInI0sh7IhHbl8U9paNHAGFpAmFJhsg7CR1f9j7pMIZhYIX6NlATgP7d35hIZIOA2GjKBo+/OAj5P6qz7KGdMAlFvJc + +4OPxL0HJcDRiFmAfMdBRTBDTO+XMQA== +``` +%% \ No newline at end of file diff --git a/99 System/Cache/Pasted image 20260517175400.png b/99 System/Cache/Pasted image 20260517175400.png new file mode 100644 index 0000000..7c6f167 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517175400.png differ diff --git a/99 System/Cache/Pasted image 20260517175655.png b/99 System/Cache/Pasted image 20260517175655.png new file mode 100644 index 0000000..4d0d483 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517175655.png differ diff --git a/99 System/Cache/Pasted image 20260517181450.png b/99 System/Cache/Pasted image 20260517181450.png new file mode 100644 index 0000000..6181400 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517181450.png differ diff --git a/99 System/Cache/Pasted image 20260517200426.png b/99 System/Cache/Pasted image 20260517200426.png new file mode 100644 index 0000000..87c016e Binary files /dev/null and b/99 System/Cache/Pasted image 20260517200426.png differ diff --git a/99 System/Cache/Pasted image 20260517203130.png b/99 System/Cache/Pasted image 20260517203130.png new file mode 100644 index 0000000..0f7380d Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203130.png differ diff --git a/99 System/Cache/Pasted image 20260517203153.png b/99 System/Cache/Pasted image 20260517203153.png new file mode 100644 index 0000000..5e93565 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203153.png differ diff --git a/99 System/Cache/Pasted image 20260517203218.png b/99 System/Cache/Pasted image 20260517203218.png new file mode 100644 index 0000000..ce03dfc Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203218.png differ diff --git a/99 System/Cache/Pasted image 20260517203235.png b/99 System/Cache/Pasted image 20260517203235.png new file mode 100644 index 0000000..1b037d9 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203235.png differ diff --git a/99 System/Cache/Pasted image 20260517203252.png b/99 System/Cache/Pasted image 20260517203252.png new file mode 100644 index 0000000..b03543b Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203252.png differ diff --git a/99 System/Cache/Pasted image 20260517203259.png b/99 System/Cache/Pasted image 20260517203259.png new file mode 100644 index 0000000..e69de29 diff --git a/99 System/Cache/Pasted image 20260517203304.png b/99 System/Cache/Pasted image 20260517203304.png new file mode 100644 index 0000000..e69de29 diff --git a/99 System/Cache/Pasted image 20260517203317.png b/99 System/Cache/Pasted image 20260517203317.png new file mode 100644 index 0000000..03aff38 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203317.png differ diff --git a/99 System/Cache/Pasted image 20260517203352.png b/99 System/Cache/Pasted image 20260517203352.png new file mode 100644 index 0000000..455f080 Binary files /dev/null and b/99 System/Cache/Pasted image 20260517203352.png differ diff --git a/99 System/Cache/infra.excalidraw.md.md b/99 System/Cache/infra.excalidraw.md.md new file mode 100644 index 0000000..7bb2201 --- /dev/null +++ b/99 System/Cache/infra.excalidraw.md.md @@ -0,0 +1,213 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + +# Excalidraw Data + +## Text Elements + +mini-pc N150 / 12 GB / 256 GB ^mini_lbl + +cloud-pc i5 / 16 GB / 256 GB + 5 TB ^gihc0eNQ + +Internet ^JF8gyxg7 + +NPM (публичный) ^De5FvlCO + +Portainer Agent ^aa6HjhlV + +ZeroTier ^m9o2XfZR + +ufw ^irwhPywz + +Nginx (80, 443) ^3YCkaaEW + +ZeroTier overlay network ^5VEs4mhQ + +AdGuard Home ^14mDr3CI + +NPM (локальный) ^Oynv3oBy + +Vaultwarden ^0uUIYjrp + +ZeroTier ^8m3hcPU4 + +Portainer Agent ^O5TryriF + +Cockpit ^YY7Tjxu0 + +Gitea Actions Runner ^bC30cure + +Gitea + Registry ^K59um5ww + +Nextcloud ^suNAEYqI + +ZeroTier ^WzKFf7RD + +SMB/BU/Files (5 TB HDD) ^HZKjRf2E + +Portainer Server ^7rAi7eTS + +Cockpit ^aVjmA1Ms + + + ^Jq0JkEPn + +Infrastructure — ada-dev ^title + +ru-vps (белый IP) ^vps_lbl + +%% +## Drawing +```compressed-json +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= +``` +%% \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 953fad8..ebd7c17 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ --- created: 2026-04-20 -updated: 2026-05-14 +updated: 2026-05-17 title: Агент — контекст и инструкции для этого хранилища --- @@ -116,6 +116,7 @@ Vault — второй мозг владельца. Агент помогает Триггер: команда `ingest` или новые файлы в `00 Inbox/`. Если ingest запрошен для файла в `01 Ideas/`, не переносить его в `90 Library/` и не архивировать. Нужно оформить саму идею на месте: сохранить авторскую формулировку, выделить основную мысль, добавить структуру и релевантные ссылки на существующие заметки. +- если в исходнике есть картинки, изучить их и принять решение - вынести из них информацию в заметку или оставить картинку в конечной заметке. Перед выполнением вывести план: