.prose-editor{min-height:300px;max-width:none;contain:layout style paint;will-change:contents}.prose-editor .ProseMirror{padding:1rem}.prose-editor .ProseMirror{min-height:300px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0)}.prose-editor .ProseMirror p{margin-bottom:1rem}.prose-editor .ProseMirror h1{margin-bottom:1rem;margin-top:1.5rem;scroll-margin:5rem;font-size:2.25rem;line-height:2.5rem;font-weight:800;letter-spacing:-.025em}.prose-editor .ProseMirror h2{margin-bottom:.75rem;margin-top:1.25rem;scroll-margin:5rem;border-bottom-width:1px;padding-bottom:.5rem;font-size:1.875rem;line-height:2.25rem;font-weight:600;letter-spacing:-.025em}.prose-editor .ProseMirror h3{margin-bottom:.75rem;margin-top:1rem;scroll-margin:5rem;font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:-.025em}.prose-editor .ProseMirror h4{margin-bottom:.5rem;margin-top:.75rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.prose-editor .ProseMirror h5{margin-bottom:.5rem;margin-top:.75rem;font-size:1rem;line-height:1.5rem;font-weight:600}.prose-editor .ProseMirror h6{margin-bottom:.5rem;margin-top:.75rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.prose-editor .ProseMirror ul{margin-bottom:1rem;list-style-position:inside;list-style-type:disc;padding-left:1rem}.prose-editor .ProseMirror ol{margin-bottom:1rem;list-style-position:inside;list-style-type:decimal;padding-left:1rem}.prose-editor .ProseMirror li{margin-bottom:.25rem}.prose-editor .ProseMirror blockquote{margin-top:1rem;margin-bottom:1rem;border-left-width:4px;border-color:var(--muted-foreground);--tw-border-opacity: .3;padding-left:1rem;font-style:italic;color:var(--muted-foreground)}.prose-editor .ProseMirror code{border-radius:.25rem;background-color:var(--muted);padding:.125rem .375rem;font-family:JetBrains Mono,Fira Code,Monaco,Consolas,monospace;font-size:.875rem;line-height:1.25rem}.prose-editor .ProseMirror pre{margin-top:1rem;margin-bottom:1rem;overflow-x:auto;border-radius:var(--radius);background-color:var(--muted);padding:1rem}.prose-editor .ProseMirror pre code{background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.prose-editor .ProseMirror a{color:var(--primary)}.prose-editor .ProseMirror a:hover{color:var(--primary);opacity:.8}.prose-editor .ProseMirror img{margin-top:1rem;margin-bottom:1rem;height:auto;max-width:100%;border-radius:var(--radius);border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);display:block;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;max-height:500px}.prose-editor .ProseMirror img[src^=http],.prose-editor .ProseMirror img[src^=https]{border-width:2px;border-style:dashed;border-color:var(--muted-foreground);--tw-border-opacity: .3;background:#0000000d}.prose-editor .ProseMirror img[src^=http]:not([alt]),.prose-editor .ProseMirror img[src^=https]:not([alt]){--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}@keyframes loading{0%{background-position:0 0}to{background-position:20px 20px}}.prose-editor .ProseMirror img:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.prose-editor .ProseMirror strong{font-weight:700}.prose-editor .ProseMirror em{font-style:italic}.prose-editor .ProseMirror u{font-weight:500}.prose-editor .ProseMirror s{text-decoration-line:line-through}.prose-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);pointer-events:none;color:var(--muted-foreground);float:left;height:0}.prose-editor .ProseMirror:focus{outline:2px solid transparent;outline-offset:2px}.prose-editor .ProseMirror ::-moz-selection{background-color:var(--primary);--tw-bg-opacity: .3}.prose-editor .ProseMirror ::selection{background-color:var(--primary);--tw-bg-opacity: .3}.prose-editor .ProseMirror .hljs{background-color:transparent}.prose-editor .ProseMirror .hljs-comment,.prose-editor .ProseMirror .hljs-quote{color:var(--muted-foreground)}.prose-editor .ProseMirror .hljs-keyword,.prose-editor .ProseMirror .hljs-selector-tag,.prose-editor .ProseMirror .hljs-literal{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-keyword:is(.dark *),.prose-editor .ProseMirror .hljs-selector-tag:is(.dark *),.prose-editor .ProseMirror .hljs-literal:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-string,.prose-editor .ProseMirror .hljs-doctag{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-string:is(.dark *),.prose-editor .ProseMirror .hljs-doctag:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-title,.prose-editor .ProseMirror .hljs-section,.prose-editor .ProseMirror .hljs-selector-id,.prose-editor .ProseMirror .hljs-subst{color:var(--foreground)}.prose-editor .ProseMirror .hljs-type,.prose-editor .ProseMirror .hljs-class .hljs-title{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-type:is(.dark *),.prose-editor .ProseMirror .hljs-class .hljs-title:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-tag,.prose-editor .ProseMirror .hljs-name,.prose-editor .ProseMirror .hljs-attribute{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-tag:is(.dark *),.prose-editor .ProseMirror .hljs-name:is(.dark *),.prose-editor .ProseMirror .hljs-attribute:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-regexp,.prose-editor .ProseMirror .hljs-link{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-regexp:is(.dark *),.prose-editor .ProseMirror .hljs-link:is(.dark *){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-symbol,.prose-editor .ProseMirror .hljs-bullet,.prose-editor .ProseMirror .hljs-built_in,.prose-editor .ProseMirror .hljs-builtin-name{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-symbol:is(.dark *),.prose-editor .ProseMirror .hljs-bullet:is(.dark *),.prose-editor .ProseMirror .hljs-built_in:is(.dark *),.prose-editor .ProseMirror .hljs-builtin-name:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-meta,.prose-editor .ProseMirror .hljs-meta-keyword{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-meta:is(.dark *),.prose-editor .ProseMirror .hljs-meta-keyword:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-meta-string{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.prose-editor .ProseMirror .hljs-meta-string:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.bubble-menu{display:flex;align-items:center;gap:.25rem;border-radius:var(--radius);border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.5rem;z-index:9999;animation:bubble-in .2s cubic-bezier(.16,1,.3,1);contain:layout style paint;will-change:transform,opacity}.bubble-menu[data-state=hidden]{animation:bubble-out .15s cubic-bezier(.4,0,1,1)}@keyframes bubble-in{0%{opacity:0;transform:scale(.9) translateY(8px);filter:blur(4px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes bubble-out{0%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}to{opacity:0;transform:scale(.9) translateY(8px);filter:blur(4px)}}.bubble-menu[data-state=open]{animation:bubble-in .2s cubic-bezier(.16,1,.3,1)}.bubble-menu[data-state=closed]{animation:bubble-out .15s cubic-bezier(.4,0,1,1)}.image-error-placeholder{margin-top:.5rem;margin-bottom:.5rem;border-radius:var(--radius);border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1));padding:1rem;text-align:center;--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1));transition:all .2s ease-in-out}.image-error-placeholder:hover{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.image-error-placeholder button{border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1));padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.image-error-placeholder button:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.prose-editor .ProseMirror img[data-loading=true]{opacity:.5;filter:blur(1px);transition:opacity .3s ease,filter .3s ease}.prose-editor .ProseMirror img[data-loading=false]{opacity:1;filter:none}@media (max-width: 640px){.prose-editor .ProseMirror{padding:.75rem}.prose-editor .ProseMirror h1{font-size:1.5rem;line-height:2rem}.prose-editor .ProseMirror h2{font-size:1.25rem;line-height:1.75rem}.prose-editor .ProseMirror h3{font-size:1.125rem;line-height:1.75rem}}.rich-text-editor .toolbar-button{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.rich-text-editor .toolbar-button:hover{background-color:var(--muted);--tw-bg-opacity: .8}.rich-text-editor .toolbar-button.active{background-color:var(--muted)}.rich-text-editor.loading{pointer-events:none;opacity:.5}.rich-text-editor.error{border-color:var(--destructive)}.rich-text-editor.error .prose-editor{background-color:var(--destructive);--tw-bg-opacity: .05}
