:root{--toolbar-bg:oklch(1 0 0/85%);--toolbar-border:oklch(0 0 0/8%);--toolbar-shadow:0 4px 24px -4px oklch(0 0 0/10%),0 1px 4px oklch(0 0 0/6%);--toolbar-hover-bg:oklch(0 0 0/5%);--toolbar-active-bg:oklch(0.205 0 0);--toolbar-active-fg:oklch(0.985 0 0);--toolbar-separator:oklch(0 0 0/10%)}.dark{--toolbar-bg:oklch(0.22 0 0/85%);--toolbar-border:oklch(1 0 0/10%);--toolbar-shadow:0 4px 24px -4px oklch(0 0 0/30%),0 1px 4px oklch(0 0 0/20%);--toolbar-hover-bg:oklch(1 0 0/8%);--toolbar-active-bg:oklch(0.92 0 0);--toolbar-active-fg:oklch(0.18 0 0);--toolbar-separator:oklch(1 0 0/12%)}.slash-command-menu{min-width:240px;max-width:280px;max-height:340px;overflow-y:auto;border-radius:14px;padding:4px;background:var(--toolbar-bg);border:1px solid var(--toolbar-border);box-shadow:var(--toolbar-shadow);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);animation:menu-in .14s cubic-bezier(.16,1,.3,1);transform-origin:top left;scrollbar-width:none;-ms-overflow-style:none}.slash-command-menu::-webkit-scrollbar{display:none}.slash-command-menu-header{padding:4px 10px 2px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted-foreground);-webkit-font-smoothing:antialiased;opacity:.7}.slash-command-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border-radius:8px;border:none;background:transparent;color:var(--color-foreground);font-family:inherit;font-size:13px;cursor:pointer;text-align:left;transition:background .1s;-webkit-font-smoothing:antialiased}.slash-command-item:hover:not(.slash-command-item--active){background:var(--toolbar-hover-bg)}.slash-command-item--active{background:var(--toolbar-active-bg);color:var(--toolbar-active-fg)}.slash-command-item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:7px;background:var(--toolbar-hover-bg);border:1px solid var(--toolbar-separator);color:var(--color-foreground);transition:background .1s,border-color .1s}.slash-command-item--active .slash-command-item-icon{background:color-mix(in oklch,var(--toolbar-active-fg) 15%,transparent);border-color:color-mix(in oklch,var(--toolbar-active-fg) 20%,transparent);color:var(--toolbar-active-fg)}.slash-command-item-content{display:flex;flex-direction:column;gap:1px;min-width:0}.slash-command-item-title{font-size:13px;font-weight:500;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slash-command-item-description{font-size:11px;color:var(--color-muted-foreground);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slash-command-item--active .slash-command-item-description{color:color-mix(in oklch,var(--toolbar-active-fg) 70%,transparent)}.block-handle-container{position:absolute;display:flex;align-items:center;gap:1px;z-index:50;opacity:0;transition:opacity .15s ease;padding-top:2px}.block-handle-visible{opacity:1}.block-handle-button{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.5rem;border:none;border-radius:.25rem;background:transparent;color:var(--color-muted-foreground);cursor:pointer;transition:all .15s ease;padding:0}.block-handle-button:hover{background:var(--toolbar-hover-bg);color:var(--color-foreground)}.block-handle-drag{cursor:grab}.block-handle-drag:active{cursor:grabbing}.block-drop-indicator{height:2px;background:var(--color-primary);border-radius:1px;margin:1px 0;pointer-events:none}.block-drag-preview{position:fixed;top:-1000px;left:-1000px;padding:.375rem .75rem;border:1px solid var(--toolbar-border);border-radius:8px;font-size:.8125rem;color:var(--color-foreground);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:9999;pointer-events:none}.block-drag-preview,.floating-toolbar{background:var(--toolbar-bg);box-shadow:var(--toolbar-shadow);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.floating-toolbar{display:flex;align-items:center;gap:.5px;padding:.25rem .375rem;border:1px solid var(--toolbar-border);border-radius:12px;animation:toolbar-in .15s cubic-bezier(.16,1,.3,1);transform-origin:center bottom;z-index:50}.floating-toolbar-separator{width:1px;height:1rem;margin:0 .125rem;background:var(--toolbar-separator);flex-shrink:0}.floating-toolbar-button{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:.375rem;background:transparent;color:var(--color-foreground);cursor:pointer;transition:all .1s ease;-webkit-font-smoothing:antialiased}.floating-toolbar-button:hover{background:var(--toolbar-hover-bg)}.floating-toolbar-button--active{background:var(--toolbar-active-bg);color:var(--toolbar-active-fg)}.floating-toolbar-button:disabled{opacity:.35;pointer-events:none}.heading-picker{position:absolute;top:calc(100% + 6px);left:0;z-index:9999;min-width:172px;border-radius:12px;padding:4px;background:var(--toolbar-bg);border:1px solid var(--toolbar-border);box-shadow:var(--toolbar-shadow);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);animation:menu-in .14s cubic-bezier(.16,1,.3,1);transform-origin:top left}.heading-picker-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:8px;border:none;background:transparent;color:var(--color-foreground);font-family:inherit;font-size:13px;font-weight:400;letter-spacing:-.01em;cursor:pointer;text-align:left;transition:background .1s;-webkit-font-smoothing:antialiased}.heading-picker-item:hover:not(.heading-picker-item--active){background:var(--toolbar-hover-bg)}.heading-picker-item--active{background:var(--toolbar-active-bg)!important;color:var(--toolbar-active-fg)!important;font-weight:500}.tiptap p.is-editor-empty:first-child:before{opacity:.5}.tiptap p.is-editor-empty:first-child:before,.tiptap p.is-empty:before{color:var(--color-muted-foreground);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.tiptap p.is-empty:before{opacity:.4}@keyframes toolbar-in{0%{opacity:0;transform:scale(.92) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes menu-in{0%{opacity:0;transform:scale(.94) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.tippy-box{background:transparent!important;border:none!important;box-shadow:none!important}.tippy-box,.tippy-content{padding:0!important}.tippy-arrow{display:none!important}.editor-content .ProseMirror ol,.editor-content .ProseMirror ul{padding-left:1.5rem;margin-bottom:.875rem}.editor-content .ProseMirror ul{list-style-type:disc}.editor-content .ProseMirror ol{list-style-type:decimal}.editor-content .ProseMirror li{margin-bottom:.25rem;padding-left:.25rem}.editor-content .ProseMirror li p{margin-bottom:0}.button-node-wrapper{display:block;padding:2px 0;position:relative}.button-node-wrapper .edit-chip{opacity:0;transition:opacity .15s;pointer-events:none}.button-node-wrapper .edit-chip.opacity-100,.button-node-wrapper:hover .edit-chip{opacity:1;pointer-events:auto}.button-node-hidden{padding:2px 0}.button-node-el{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-weight:500;cursor:pointer;line-height:1;transition:filter .15s,transform .1s;-webkit-font-smoothing:antialiased;user-select:none}.button-node-el:hover{filter:brightness(.92)}.button-editor-panel{border-radius:14px;width:280px;max-height:70vh;overflow-y:auto;overflow-x:visible;scrollbar-width:none;-ms-overflow-style:none;animation:menu-in .15s cubic-bezier(.16,1,.3,1);transform-origin:top left;margin-top:6px}.button-editor-panel::-webkit-scrollbar{display:none}.button-editor-section{padding:10px 12px}.button-editor-input{width:100%;height:34px;border-radius:8px;padding:0 10px;font-family:inherit;font-size:13px;outline:none;transition:border-color .15s;-webkit-font-smoothing:antialiased}.button-editor-input:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px color-mix(in oklch,var(--color-primary) 15%,transparent)}.editor-statusbar{display:flex;align-items:center;gap:.5rem;padding:.625rem 2rem;position:sticky;bottom:0}.editor-statusbar-badge{font-size:.6875rem;font-weight:500;color:var(--color-muted-foreground);letter-spacing:.01em}.editor-statusbar-dot{width:3px;height:3px;border-radius:50%;background:var(--color-border);flex-shrink:0}.editor-statusbar-hint{font-size:.6875rem;color:var(--color-muted-foreground);opacity:.55;margin-left:auto}.youtube-node-wrapper{display:block;padding:4px 0}.youtube-input-panel{display:flex;flex-direction:column;align-items:center;gap:10px;border-radius:14px;padding:28px 24px 20px;background:var(--editor-surface,var(--color-secondary));border:1.5px dashed var(--color-border);transition:border-color .15s}.youtube-input-panel:focus-within{border-color:var(--color-primary)}.youtube-input-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#FF0000;color:#fff;flex-shrink:0}.youtube-input-label{font-size:13px;font-weight:500;color:var(--color-muted-foreground);letter-spacing:-.01em;margin:0}.youtube-input-form{width:100%;max-width:420px;display:flex;flex-direction:column;gap:6px}.youtube-input-row{display:flex;align-items:center;gap:0;height:36px;border-radius:10px;border:1.5px solid var(--color-border);background:var(--color-card);overflow:hidden;transition:border-color .15s,box-shadow .15s}.youtube-input-row:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-primary) 14%,transparent)}.youtube-input-prefix{display:flex;align-items:center;padding:0 10px;color:var(--color-muted-foreground);flex-shrink:0}.youtube-input-field{flex:1;height:100%;border:none;outline:none;background:transparent;font-family:inherit;font-size:13px;color:var(--color-foreground);padding:0 4px;min-width:0}.youtube-input-field::placeholder{color:var(--color-muted-foreground);opacity:.6}.youtube-input-submit{flex-shrink:0;height:100%;padding:0 14px;background:var(--color-primary);color:#fff;font-family:inherit;font-size:13px;font-weight:500;border:none;cursor:pointer;letter-spacing:-.01em;transition:filter .12s;-webkit-font-smoothing:antialiased}.youtube-input-submit:hover{filter:brightness(.9)}.youtube-input-error{font-size:12px;color:var(--color-destructive);margin:0;padding:0 2px}.youtube-delete-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--color-muted-foreground);background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .1s,color .1s;font-family:inherit}.youtube-delete-btn:hover{background:var(--color-destructive);color:#fff}.youtube-embed-wrapper{display:flex;flex-direction:column;gap:8px}.youtube-embed-ring{border-radius:12px;overflow:hidden;border:2px solid transparent;transition:border-color .15s}.youtube-embed-ring--selected{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-primary) 16%,transparent)}.youtube-aspect-box{position:relative;width:100%;padding-bottom:56.25%;background:#000;border-radius:10px;overflow:hidden}.youtube-iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.youtube-caption-input{width:100%;background:transparent;border:none;outline:none;font-family:inherit;font-size:13px;color:var(--color-muted-foreground);text-align:center;padding:0 4px;caret-color:var(--color-primary)}.youtube-caption-input::placeholder{color:var(--color-muted-foreground);opacity:.45}.youtube-controls{display:flex;align-items:center;justify-content:center;gap:6px;opacity:0;transition:opacity .15s}.youtube-node-wrapper:hover .youtube-controls,.youtube-node-wrapper[data-selected=true] .youtube-controls{opacity:1}.youtube-control-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-family:inherit;font-weight:400;color:var(--color-muted-foreground);background:var(--color-secondary);border:1px solid var(--color-border);border-radius:6px;padding:4px 10px;cursor:pointer;transition:background .1s,color .1s,border-color .1s;-webkit-font-smoothing:antialiased}.youtube-control-btn:hover{background:var(--toolbar-hover-bg);color:var(--color-foreground);border-color:var(--color-foreground)}.youtube-control-btn--danger:hover{background:var(--color-destructive);color:#fff;border-color:var(--color-destructive)}:root{--hljs-bg:#fafafa;--hljs-fg:#383a42;--hljs-border:#e5e5e6;--hljs-keyword:#a626a4;--hljs-string:#50a14f;--hljs-comment:#9d9d9f;--hljs-number:#986801;--hljs-function:#4078f2;--hljs-attr:#e45649;--hljs-type:#c18401;--hljs-label-bg:rgba(0,0,0,0.04);--hljs-label-fg:#696c77}.dark{--hljs-bg:#282c34;--hljs-fg:#abb2bf;--hljs-border:#3e4451;--hljs-keyword:#c678dd;--hljs-string:#98c379;--hljs-comment:#5c6370;--hljs-number:#d19a66;--hljs-function:#61afef;--hljs-attr:#e06c75;--hljs-type:#e5c07b;--hljs-label-bg:rgba(255,255,255,0.06);--hljs-label-fg:#636d83}.editor-content pre,.tiptap pre{position:relative;background:var(--hljs-bg);color:var(--hljs-fg);border:1px solid var(--hljs-border);border-radius:10px;margin:1.25rem 0;overflow:hidden;font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.8125rem;line-height:1.7}.editor-content pre:before,.tiptap pre:before{content:attr(data-language);position:absolute;top:0;right:0;padding:2px 10px;font-size:.6875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--hljs-label-fg);background:var(--hljs-label-bg);border-bottom-left-radius:8px;pointer-events:none}.editor-content pre code,.tiptap pre code{display:block;padding:1.125rem 1.25rem;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--hljs-border) transparent;background:transparent;color:inherit;font-size:inherit;line-height:inherit;white-space:pre}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:var(--hljs-keyword);font-weight:500}.hljs-addition,.hljs-attr,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string{color:var(--hljs-string)}.hljs-comment,.hljs-quote{color:var(--hljs-comment);font-style:italic}.hljs-link,.hljs-literal,.hljs-number,.hljs-template-variable,.hljs-variable{color:var(--hljs-number)}.hljs-title,.hljs-title.class_,.hljs-title.function_{color:var(--hljs-function);font-weight:600}.hljs-class .hljs-title,.hljs-type{color:var(--hljs-type)}.hljs-bullet,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-selector-class,.hljs-selector-id,.hljs-subst,.hljs-symbol{color:var(--hljs-attr)}.hljs-deletion{color:var(--color-destructive,#ef4444);background:color-mix(in oklch,var(--color-destructive,#ef4444) 12%,transparent)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}