:root{--editor-font:"Inter",system-ui,-apple-system,sans-serif;--editor-mono:"JetBrains Mono","Fira Code","Cascadia Code",monospace;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#eff6ff;--color-primary-ring:#93c5fd;--color-text:#1e293b;--color-text-muted:#64748b;--color-text-subtle:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-bg:#fff;--color-bg-subtle:#f8fafc;--color-bg-hover:#f1f5f9;--color-danger:#ef4444;--color-danger-bg:#fef2f2;--color-code-bg:#0f172a;--color-code-text:#e2e8f0;--color-inline-code:#f43f5e;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--transition:.15s cubic-bezier(.4,0,.2,1)}*,:before,:after{box-sizing:border-box}.editor-scrollbar::-webkit-scrollbar{width:6px;height:6px}.editor-scrollbar::-webkit-scrollbar-track{background:0 0}.editor-scrollbar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.editor-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}.editor-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg);box-shadow:var(--shadow-sm);font-family:var(--editor-font);flex-direction:column;display:flex;overflow:hidden}.editor-toolbar{z-index:30;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:2px;min-height:44px;padding:6px 8px;display:flex;position:sticky;top:0}.toolbar-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition),color var(--transition);background:0 0;border:none;outline:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.toolbar-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.toolbar-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.toolbar-btn.is-active,.toolbar-btn[data-active=true]{background:var(--color-primary-light);color:var(--color-primary)}.toolbar-btn.is-active:hover,.toolbar-btn[data-active=true]:hover{color:#1d4ed8;background:#dbeafe}.toolbar-btn .heading-label{letter-spacing:-.02em;color:inherit;font-size:11px;font-weight:700;line-height:1}.toolbar-divider{background:var(--color-border);flex-shrink:0;align-self:center;width:1px;height:20px;margin:0 4px}.toolbar-group{align-items:center;gap:1px;display:flex}.image-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);animation:fadeIn var(--transition)both;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.image-modal-panel{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:100%;max-width:380px;margin:0 16px;animation:.2s cubic-bezier(.34,1.56,.64,1) both slideUp;overflow:hidden}.image-modal-header{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.image-modal-title{color:var(--color-text);font-size:14px;font-weight:600}.image-modal-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-subtle);cursor:pointer;transition:background var(--transition),color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.image-modal-close:hover{background:var(--color-bg-hover);color:var(--color-text)}.image-modal-tabs{border-bottom:1px solid var(--color-border-light);display:flex}.image-modal-tab{color:var(--color-text-muted);cursor:pointer;transition:color var(--transition),border-color var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 0;font-size:12px;font-weight:500}.image-modal-tab:hover{color:var(--color-text)}.image-modal-tab.is-active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.image-modal-body{flex-direction:column;gap:12px;padding:16px;display:flex}.image-modal-label{color:var(--color-text-muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.image-modal-label span{color:var(--color-text-subtle);font-weight:400}.image-modal-input{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition),box-shadow var(--transition);font-size:13px;font-family:var(--editor-font);outline:none;padding:8px 12px}.image-modal-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ring)/.3}.image-modal-input::placeholder{color:var(--color-text-subtle)}.image-modal-submit{background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);cursor:pointer;width:100%;transition:background var(--transition),opacity var(--transition);font-size:13px;font-weight:500;font-family:var(--editor-font);border:none;padding:9px 0}.image-modal-submit:hover:not(:disabled){background:var(--color-primary-hover)}.image-modal-submit:disabled{opacity:.4;cursor:not-allowed}.image-upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-xl);width:100%;color:var(--color-text-subtle);cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition);font-family:var(--editor-font);background:0 0;flex-direction:column;align-items:center;gap:8px;padding:32px 0;display:flex}.image-upload-zone:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.image-upload-zone .upload-icon{opacity:.6;transition:opacity var(--transition)}.image-upload-zone:hover .upload-icon{opacity:1}.image-upload-zone .upload-hint{font-size:13px;font-weight:500}.image-upload-zone .upload-types{color:var(--color-text-subtle);font-size:11px}.table-menu-wrapper{position:relative}.table-menu-popup{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);z-index:40;min-width:220px;padding:12px;animation:.12s both fadeIn;position:absolute;top:calc(100% + 4px);left:0}.table-menu-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:8px;font-size:10px;font-weight:700}.table-grid{gap:2px;margin-bottom:4px;display:grid}.table-grid-cell{border:1px solid var(--color-border);background:var(--color-bg-subtle);cursor:pointer;width:18px;height:18px;transition:background var(--transition),border-color var(--transition);border-radius:3px}.table-grid-cell:hover,.table-grid-cell.is-active{background:var(--color-primary);border-color:#2563eb}.table-grid-label{text-align:center;color:var(--color-text-subtle);height:16px;margin-bottom:8px;font-size:11px}.table-menu-separator{background:var(--color-border-light);height:1px;margin:8px 0}.table-action-grid{grid-template-columns:1fr 1fr;gap:2px;display:grid}.table-action-btn{border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition),color var(--transition);font-size:11px;font-family:var(--editor-font);white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.table-action-btn:hover{background:var(--color-bg-hover);color:var(--color-text)}.table-action-btn.is-danger{color:var(--color-danger)}.table-action-btn.is-danger:hover{background:var(--color-danger-bg)}.table-action-btn .action-icon{color:var(--color-text-subtle);flex-shrink:0}.table-action-btn.is-danger .action-icon{color:#fca5a5}.ProseMirror,.tiptap-content{font-family:var(--editor-font);color:var(--color-text);word-break:break-word;overflow-wrap:break-word;outline:none;min-height:240px;max-height:500px;padding:16px 20px;font-size:15px;line-height:1.75;overflow-y:scroll}#doc-content{max-height:none;padding:0;overflow-y:hidden}.ProseMirror>*,.tiptap-content>*{margin-top:0;margin-bottom:0}.ProseMirror>*+*,.tiptap-content>*+*{margin-top:12px}.ProseMirror p.is-editor-empty:first-child:before,.tiptap-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--color-text-subtle);pointer-events:none;float:left;height:0}.ProseMirror ::selection,.tiptap-content ::selection{background:#bfdbfe}.ProseMirror h1,.tiptap-content h1{letter-spacing:-.025em;color:#0f172a;margin-top:2.25rem;margin-bottom:.75rem;font-size:2.25rem;font-weight:800;line-height:1.2}.ProseMirror h2,.tiptap-content h2{letter-spacing:-.02em;color:#0f172a;margin-top:1.875rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:700;line-height:1.3}.ProseMirror h3,.tiptap-content h3{color:#1e293b;margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:700;line-height:1.35}.ProseMirror h4,.tiptap-content h4{color:#1e293b;margin-top:1.25rem;margin-bottom:.375rem;font-size:1.25rem;font-weight:600;line-height:1.4}.ProseMirror h5,.tiptap-content h5{color:#296ec9;margin-top:1rem;margin-bottom:.25rem;font-size:1.125rem;font-weight:600;line-height:1.5}.ProseMirror h6,.tiptap-content h6{color:#475569;margin-top:.75rem;margin-bottom:.25rem;font-size:1rem;font-weight:600;line-height:1.6}.ProseMirror h1:first-child,.ProseMirror h2:first-child,.ProseMirror h3:first-child,.ProseMirror h4:first-child,.ProseMirror h5:first-child,.ProseMirror h6:first-child,.tiptap-content h1:first-child,.tiptap-content h2:first-child,.tiptap-content h3:first-child,.tiptap-content h4:first-child,.tiptap-content h5:first-child,.tiptap-content h6:first-child{margin-top:0}.ProseMirror p,.tiptap-content p{color:#334155;margin:0;font-size:15px;line-height:1.75}.ProseMirror strong,.tiptap-content strong{color:#0f172a;font-weight:700}.ProseMirror em,.tiptap-content em{font-style:italic}.ProseMirror s,.tiptap-content s{color:#94a3b8;text-decoration:line-through}.ProseMirror code,.tiptap-content code{font-family:var(--editor-mono);color:#e11d48;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:2px 6px;font-size:13px}.ProseMirror ul,.tiptap-content ul{color:#334155;margin:8px 0;padding-left:1.625rem;list-style-type:disc}.ProseMirror ul li,.tiptap-content ul li{padding-left:2px;line-height:1.75}.ProseMirror ul ul,.tiptap-content ul ul{margin-top:4px;margin-bottom:0;list-style-type:circle}.ProseMirror ul ul ul,.tiptap-content ul ul ul{list-style-type:square}.ProseMirror ol,.tiptap-content ol{color:#334155;margin:8px 0;padding-left:1.625rem;list-style-type:decimal}.ProseMirror ol li,.tiptap-content ol li{padding-left:2px;line-height:1.75}.ProseMirror ol ol,.tiptap-content ol ol{margin-top:4px;margin-bottom:0;list-style-type:lower-alpha}.ProseMirror ol ol ol,.tiptap-content ol ol ol{list-style-type:lower-roman}.ProseMirror li>p,.tiptap-content li>p{margin:0}.ProseMirror blockquote,.tiptap-content blockquote{border-radius:0 var(--radius-lg)var(--radius-lg)0;color:#475569;background:#eff6ff;border-left:4px solid #60a5fa;margin:16px 0;padding:10px 14px 10px 16px;font-style:italic}.ProseMirror blockquote p,.tiptap-content blockquote p{color:#475569;margin:0;font-style:italic}.ProseMirror pre,.tiptap-content pre{color:#e2e8f0;font-family:var(--editor-mono);border-radius:var(--radius-xl);scrollbar-width:thin;scrollbar-color:#334155 transparent;background:#0f172a;margin:16px 0;padding:16px 20px;font-size:13px;line-height:1.6;overflow-x:auto}.ProseMirror pre::-webkit-scrollbar{height:4px}.tiptap-content pre::-webkit-scrollbar{height:4px}.ProseMirror pre::-webkit-scrollbar-thumb{background:#334155;border-radius:999px}.tiptap-content pre::-webkit-scrollbar-thumb{background:#334155;border-radius:999px}.ProseMirror pre code,.tiptap-content pre code{color:inherit;font-size:inherit;background:0 0;border:none;border-radius:0;padding:0}.ProseMirror hr,.tiptap-content hr{background:var(--color-border);border:none;height:1px;margin:24px 0}.ProseMirror img,.tiptap-content img{object-fit:contain;border-radius:var(--radius-xl);width:100%;max-width:100%;height:auto;box-shadow:var(--shadow-md);transition:outline var(--transition);margin:16px 0;display:block}.ProseMirror img.ProseMirror-selectednode,.tiptap-content img.ProseMirror-selectednode{outline:2px solid var(--color-primary);outline-offset:3px}.ProseMirror .tableWrapper,.tiptap-content .tableWrapper{border-radius:var(--radius-lg);border:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-border)transparent;margin:16px 0;overflow-x:auto}.ProseMirror .tableWrapper::-webkit-scrollbar{height:4px}.tiptap-content .tableWrapper::-webkit-scrollbar{height:4px}.ProseMirror .tableWrapper::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.tiptap-content .tableWrapper::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.ProseMirror table,.tiptap-content table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14px;position:relative}.ProseMirror table th,.tiptap-content table th{color:#fff;text-align:left;border:1px solid var(--color-border);background:#a5a9ad;padding:10px 14px;font-size:13px;font-weight:600;position:relative}.ProseMirror table td,.tiptap-content table td{border:1px solid var(--color-border);color:#334155;vertical-align:top;padding:9px 14px;line-height:1.6;position:relative}.ProseMirror table tbody tr:nth-child(2n) td,.tiptap-content table tbody tr:nth-child(2n) td{background:#f8fafc}.ProseMirror table tbody tr:hover td,.tiptap-content table tbody tr:hover td{background:#f1f5f9}.ProseMirror .selectedCell,.tiptap-content .selectedCell{background:#dbeafe!important;border-color:#93c5fd!important}.ProseMirror .column-resize-handle,.tiptap-content .column-resize-handle{background:var(--color-primary);cursor:col-resize;opacity:0;width:4px;transition:opacity var(--transition);z-index:10;position:absolute;top:0;bottom:0;right:-2px}.ProseMirror table:hover .column-resize-handle,.tiptap-content table:hover .column-resize-handle{opacity:1}.ProseMirror.resize-cursor,.tiptap-content.resize-cursor{cursor:col-resize}.ProseMirror-gapcursor:after{border-top:2px solid var(--color-primary)!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width:640px){.ProseMirror h1,.tiptap-content h1{font-size:1.875rem}.ProseMirror h2,.tiptap-content h2{font-size:1.5rem}.ProseMirror h3,.tiptap-content h3{font-size:1.25rem}.ProseMirror h4,.tiptap-content h4{font-size:1.125rem}.ProseMirror,.tiptap-content{padding:14px 16px;font-size:14px}.editor-toolbar{gap:1px;padding:4px 6px}.toolbar-btn{width:30px;height:30px}.ProseMirror .tableWrapper,.tiptap-content .tableWrapper{font-size:13px}.image-modal-panel{border-radius:var(--radius-lg);max-width:100%;margin:0 12px}.table-menu-popup{left:auto;right:0}}@media (max-width:400px){.ProseMirror h1,.tiptap-content h1{font-size:1.5rem}.ProseMirror h2,.tiptap-content h2{font-size:1.25rem}.toolbar-divider{margin:0 2px}}
