.block-editor{position:relative;width:100%}.block-editor-content{width:100%}.block-editor-content .ProseMirror{outline:none;min-height:200px;padding:.5rem 0 .5rem 2rem;overflow:auto hidden;transition:opacity .15s ease-out}.block-editor-content .ProseMirror p.is-editor-empty:first-child:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;height:0;pointer-events:none;transition:opacity .15s ease-out}.block-editor-content .ProseMirror .is-empty:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;height:0;pointer-events:none;transition:opacity .15s ease-out}.drag-handle{display:flex;align-items:center;gap:.12rem;height:1.5rem;border-radius:calc(var(--radius) - 4px);background:transparent;color:var(--muted-foreground);cursor:grab;transition:background-color .15s ease-out,color .15s ease-out,opacity .15s ease-out,transform .1s ease-out,top .15s ease-out,left .15s ease-out;opacity:0}.drag-handle:hover{opacity:1}.drag-handle:active{cursor:grabbing;transform:scale(.9)}.block-editor-content .ProseMirror:hover~.drag-handle,.block-editor-content:hover .drag-handle{opacity:1}.block-editor-add-block{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;padding:0;border:none;border-radius:calc(var(--radius) - 4px);background:transparent;color:inherit;cursor:pointer;transition:background-color .1s ease-out,color .1s ease-out,transform .1s ease-out}.block-editor-add-block:hover{background:var(--accent);color:var(--accent-foreground)}.block-editor-add-block:active{transform:scale(.9)}.block-editor-add-block svg{width:.875rem;height:.875rem}.block-editor-drag-handle-icon{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem}.block-editor-drag-handle-icon svg{width:.875rem;height:.875rem}@keyframes bubble-pop-in{0%{opacity:0;transform:scale(.98) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.block-editor-bubble-menu{display:flex;align-items:center;height:2.25rem;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f;padding:0 .25rem;animation:bubble-pop-in .25s cubic-bezier(.22,1,.36,1) forwards}.block-editor-bubble-group{display:flex;align-items:center;gap:1px}.block-editor-bubble-btn{display:flex;align-items:center;gap:.25rem;height:1.75rem;padding:0 .375rem;border:none;border-radius:calc(var(--radius) - 4px);background:transparent;color:var(--popover-foreground);cursor:pointer;font-size:.8125rem;white-space:nowrap;transition:background-color .15s ease-out,color .15s ease-out,transform .1s ease-out}.block-editor-bubble-btn>svg{width:1rem;height:1rem}.block-editor-bubble-btn:hover{background:var(--accent);color:var(--accent-foreground)}.block-editor-bubble-btn:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.block-editor-bubble-btn:active{transform:scale(.96)}.block-editor-bubble-btn--active{color:var(--primary);background:var(--accent)}.block-editor-copy-icon{display:inline-flex;width:1rem;height:1rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .15s ease}.block-editor-copy-icon>svg{width:1rem;height:1rem}.block-editor-copy-icon--copied{color:var(--primary);transform:scale(1.15)}.block-editor-bubble-btn-text{max-width:5rem;overflow:hidden;text-overflow:ellipsis}.block-editor-bubble-separator{width:1px;height:1.25rem;background:var(--border);margin:0 .125rem;flex-shrink:0}.block-editor-bubble-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999}.block-editor-bubble-dropdown{position:absolute;top:100%;left:0;z-index:1000;min-width:150px;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026;padding:.25rem;margin-top:4px;transform-origin:top left;animation:bubble-pop-in .25s cubic-bezier(.22,1,.36,1) forwards}.block-editor-bubble-dropdown--align{min-width:130px}.block-editor-bubble-dropdown--language{min-width:160px;max-height:320px;overflow-y:auto;scrollbar-width:thin}.block-editor-bubble-dropdown-item{display:flex;align-items:center;gap:.5rem;position:relative;z-index:1;width:100%;padding:.375rem .5rem;font-size:.8125rem;color:var(--muted-foreground);background:transparent;border:none;border-radius:calc(var(--radius) - 4px);cursor:pointer;text-align:left;transition:background-color .1s ease-out,color .1s ease-out,transform .1s ease-out}.block-editor-bubble-dropdown-item:hover,.block-editor-bubble-dropdown-item:focus-visible{color:var(--foreground)}.block-editor-bubble-dropdown-pill{position:absolute;top:0;left:0;z-index:0;pointer-events:none;border-radius:calc(var(--radius) - 4px);background:color-mix(in srgb,var(--primary) 6%,transparent);opacity:0;transition:top .22s cubic-bezier(.22,1,.36,1),left .22s cubic-bezier(.22,1,.36,1),width .22s cubic-bezier(.22,1,.36,1),height .22s cubic-bezier(.22,1,.36,1),opacity .15s ease-out}.block-editor-bubble-dropdown-pill--visible{opacity:1}.block-editor-bubble-dropdown-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted-foreground);width:1rem;height:1rem}.block-editor-bubble-dropdown-icon svg{width:100%;height:100%}.block-editor-bubble-dropdown-item--active .block-editor-bubble-dropdown-icon{color:var(--primary)}.block-editor-bubble-dropdown-item:active{transform:scale(.98)}.block-editor-bubble-dropdown-item--active{color:var(--primary);background-color:color-mix(in srgb,var(--primary) 10%,transparent)}.block-editor-bubble-dropdown-divider{height:1px;background:var(--border);margin:.25rem 0}.block-editor-bubble-dropdown-item--danger{color:var(--destructive, #ef4444)}.block-editor-bubble-dropdown-item--danger:hover{background:color-mix(in srgb,var(--destructive, #ef4444) 10%,transparent);color:var(--destructive, #ef4444)}.block-editor-content .ProseMirror h1{font-size:1.875rem;font-weight:700;line-height:1.2;margin:.5em 0 .25em}.block-editor-content .ProseMirror h2{font-size:1.5rem;font-weight:600;line-height:1.25;margin:.5em 0 .25em}.block-editor-content .ProseMirror h3{font-size:1.25rem;font-weight:600;line-height:1.3;margin:.5em 0 .25em}.block-editor-content .ProseMirror p{margin:.25em 0;line-height:1.6}.block-editor-content .ProseMirror ul{list-style-type:disc;padding-left:1.5rem;margin:.25em 0}.block-editor-content .ProseMirror ol{list-style-type:decimal;padding-left:1.5rem;margin:.25em 0}.block-editor-content .ProseMirror li{margin:.125em 0}.block-editor-content .ProseMirror li p{margin:0}.block-editor-content .ProseMirror blockquote{border-left:3px solid var(--border);padding-left:1rem;color:var(--muted-foreground);margin:.5em 0;transition:border-color .15s ease-out,background-color .15s ease-out}.block-editor-content .ProseMirror blockquote:hover{border-left-color:var(--primary);background-color:color-mix(in srgb,var(--primary) 3%,transparent)}.block-editor-content .ProseMirror pre{background:#1e1e2e;border-radius:var(--radius);border:1px solid var(--border);padding:1rem;overflow-x:auto;font-size:.875rem;line-height:1.5;margin:.5em 0;color:#cdd6f4}.block-editor-content .ProseMirror pre code{color:inherit;background:none;padding:0;font-weight:400}.block-editor-content .ProseMirror pre .hljs-comment,.block-editor-content .ProseMirror pre .hljs-quote{color:#6c7086}.block-editor-content .ProseMirror pre .hljs-variable,.block-editor-content .ProseMirror pre .hljs-template-variable,.block-editor-content .ProseMirror pre .hljs-attribute,.block-editor-content .ProseMirror pre .hljs-tag,.block-editor-content .ProseMirror pre .hljs-regexp,.block-editor-content .ProseMirror pre .hljs-link,.block-editor-content .ProseMirror pre .hljs-name,.block-editor-content .ProseMirror pre .hljs-selector-id,.block-editor-content .ProseMirror pre .hljs-selector-class{color:#89b4fa}.block-editor-content .ProseMirror pre .hljs-number,.block-editor-content .ProseMirror pre .hljs-meta,.block-editor-content .ProseMirror pre .hljs-built_in,.block-editor-content .ProseMirror pre .hljs-builtin-name,.block-editor-content .ProseMirror pre .hljs-literal,.block-editor-content .ProseMirror pre .hljs-type,.block-editor-content .ProseMirror pre .hljs-params{color:#fab387}.block-editor-content .ProseMirror pre .hljs-string,.block-editor-content .ProseMirror pre .hljs-symbol,.block-editor-content .ProseMirror pre .hljs-bullet{color:#a6e3a1}.block-editor-content .ProseMirror pre .hljs-title,.block-editor-content .ProseMirror pre .hljs-section{color:#f9e2af}.block-editor-content .ProseMirror pre .hljs-keyword,.block-editor-content .ProseMirror pre .hljs-selector-tag{color:#cba6f7}.block-editor-content .ProseMirror pre .hljs-attr{color:#89b4fa}.block-editor-content .ProseMirror pre .hljs-doctag{color:#f38ba8;font-weight:600}.block-editor-content .ProseMirror pre .hljs-operator,.block-editor-content .ProseMirror pre .hljs-punctuation{color:#9399b2}.block-editor-content .ProseMirror pre .hljs-selector-attr,.block-editor-content .ProseMirror pre .hljs-selector-pseudo{color:#94e2d5}.block-editor-content .ProseMirror pre .hljs-variable.language_{color:#cba6f7;font-style:italic}.block-editor-content .ProseMirror pre .hljs-subst{color:#cdd6f4}.block-editor-content .ProseMirror pre .hljs-emphasis{font-style:italic}.block-editor-content .ProseMirror pre .hljs-strong{font-weight:700}.block-editor-content .ProseMirror pre .hljs-addition{color:#a6e3a1;background-color:color-mix(in srgb,#a6e3a1 10%,transparent)}.block-editor-content .ProseMirror pre .hljs-deletion{color:#f38ba8;background-color:color-mix(in srgb,#f38ba8 10%,transparent)}.block-editor-content .ProseMirror code{font-size:.875em;font-weight:500;background:color-mix(in srgb,var(--muted) 70%,transparent);padding:.125rem .375rem;border-radius:calc(var(--radius) - 4px);transition:background-color .15s ease-out}.block-editor-content .ProseMirror hr{border:none;border-top:1px solid var(--border);margin:1em 0}.block-editor-content .ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius);outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px;transition:transform .15s ease-out,box-shadow .15s ease-out}@media (prefers-color-scheme: dark){.block-editor-content .ProseMirror img{outline-color:#ffffff1a}}.block-editor-content .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 4px 12px #0000001a}.block-editor-content .ProseMirror table{border-collapse:collapse;width:100%;margin:.5em 0}.block-editor-content .ProseMirror th,.block-editor-content .ProseMirror td{border:1px solid var(--border);padding:.5rem;min-width:100px;text-align:left;vertical-align:top;transition:background-color .1s ease-out}.block-editor-content .ProseMirror th{background:var(--muted);font-weight:600}.block-editor-content .ProseMirror a{color:var(--primary);text-decoration:underline;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--primary) 40%,transparent);transition:color .15s ease-out,text-decoration-color .15s ease-out}.block-editor-content .ProseMirror a:hover{text-decoration-color:var(--primary)}.block-editor-content .ProseMirror .selectedCell{background-color:color-mix(in srgb,var(--primary) 15%,transparent)}.block-editor-content .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:0}.block-editor-content .ProseMirror ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:.5rem;transition:opacity .15s ease-out}.block-editor-content .ProseMirror ul[data-type=taskList] li>label{flex-shrink:0;margin-top:.25rem}.block-editor-content .ProseMirror ul[data-type=taskList] li>label input[type=checkbox]{cursor:pointer;transition:transform .1s ease-out}.block-editor-content .ProseMirror ul[data-type=taskList] li>label input[type=checkbox]:active{transform:scale(.9)}.block-editor-content .ProseMirror ul[data-type=taskList] li>div>p{transition:color .15s ease-out,text-decoration-color .15s ease-out}.block-editor-content .ProseMirror ul[data-type=taskList] li[data-checked=true]>div>p{text-decoration:line-through;color:var(--muted-foreground)}.block-editor-slash-menu{z-index:100;display:flex;flex-direction:column;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026;min-width:260px;max-width:300px;overflow:hidden;transform-origin:var(--origin, 0 0);animation:block-editor-slide-in .15s cubic-bezier(.16,1,.3,1)}@keyframes block-editor-slide-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.block-editor-slash-menu-search{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--popover)}.block-editor-slash-menu-search-icon{color:var(--muted-foreground);flex-shrink:0}.block-editor-slash-menu-search-input{width:100%;border:none;background:transparent;font-size:.8125rem;color:var(--popover-foreground);outline:none;font-family:inherit}.block-editor-slash-menu-search-input::placeholder{color:var(--muted-foreground)}.block-editor-slash-menu-list{display:flex;flex-direction:column;padding:.25rem;max-height:280px;overflow-y:auto;scrollbar-width:thin}.block-editor-slash-menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem;font-size:.875rem;color:var(--popover-foreground);background:transparent;border:none;border-radius:calc(var(--radius) - 4px);cursor:pointer;text-align:left;transition:background-color .1s ease-out,color .1s ease-out,transform .1s ease-out}.block-editor-slash-menu-item-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:var(--muted-foreground);flex-shrink:0;transition:color .1s ease-out}.block-editor-slash-menu-item-icon svg{width:100%;height:100%}.block-editor-slash-menu-item:active{transform:scale(.98)}.block-editor-slash-menu-item:hover,.block-editor-slash-menu-item--selected{background-color:var(--accent);color:var(--accent-foreground)}.block-editor-slash-menu-item--selected .block-editor-slash-menu-item-icon,.block-editor-slash-menu-item:hover .block-editor-slash-menu-item-icon{color:var(--foreground)}.block-editor-slash-menu-item-content{display:flex;flex-direction:column;gap:.125rem;min-width:0}.block-editor-slash-menu-item-label{font-weight:500;line-height:1.25;font-size:.8125rem}.block-editor-slash-menu-item-desc{font-size:.75rem;color:var(--muted-foreground);line-height:1.25}.block-editor-slash-menu-empty{padding:1.5rem .5rem;text-align:center;font-size:.8125rem;color:var(--muted-foreground)}.block-editor-link-form{display:flex;flex-direction:column;gap:.5rem;padding:.25rem}.block-editor-link-input{width:100%;height:2rem;padding:0 .5rem;font-size:.8125rem;font-family:inherit;color:var(--popover-foreground);background:transparent;border:1px solid var(--border);border-radius:calc(var(--radius) - 4px);outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}.block-editor-link-input::placeholder{color:var(--muted-foreground)}.block-editor-link-input:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.block-editor-link-actions{display:flex;gap:.25rem}.block-editor-content .ProseMirror .tableWrapper{overflow-x:auto;scroll-behavior:smooth}.block-editor-theme-transitioning *,.block-editor-theme-transitioning *:before,.block-editor-theme-transitioning *:after{transition:none!important}:root{--background: #ffffff;--foreground: #1e293b;--muted: #f1f5f9;--muted-foreground: #64748b;--accent: #eff6ff;--accent-foreground: #1d4ed8;--popover: #ffffff;--popover-foreground: #1e293b;--border: #e2e8f0;--ring: #2563eb;--primary: #2563eb;--destructive: #dc2626;--radius: 8px}html,body{margin:0;padding:0;height:100vh;overflow:hidden;background:#f4f6fa}#root{height:100%}.tb-root{height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1e293b;background:#f4f6fa}.tb-topbar{height:52px;flex-shrink:0;display:flex;align-items:center;gap:18px;padding:0 20px;background:#fff;border-bottom:1px solid #e2e8f0}.tb-brand{display:flex;align-items:center;gap:10px;min-width:0}.tb-logo{width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tb-brand h1{font-size:15px;font-weight:700;margin:0;white-space:nowrap}.tb-divider{width:1px;height:20px;background:#e2e8f0}.tb-book{display:flex;align-items:center;gap:8px;min-width:0}.tb-book-title{font-size:13px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-badge{font-size:11px;padding:2px 8px;border-radius:10px;flex-shrink:0}.tb-badge.draft{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.tb-badge.pub{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.tb-modes{display:flex;gap:2px;margin:0 auto;background:#f1f5f9;border-radius:8px;padding:3px}.tb-mode{border:0;background:transparent;padding:5px 18px;border-radius:6px;font-size:12.5px;color:#64748b;cursor:pointer;font-family:inherit}.tb-mode.on{background:#fff;color:#0f172a;font-weight:600;box-shadow:0 1px 3px #0f172a14}.tb-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.tb-avatars{display:flex;margin-right:4px}.tb-avatar{width:24px;height:24px;border-radius:50%;background:#e0e7ff;color:#4338ca;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;border:2px solid #fff;margin-left:-6px}.tb-avatar:first-child{margin-left:0}.tb-btn{border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12.5px;padding:6px 14px;border-radius:7px;cursor:pointer;font-family:inherit}.tb-btn.ghost:hover{background:#f8fafc;color:#0f172a}.tb-btn.primary{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.tb-btn.primary:hover{background:#1d4ed8}.tb-body{flex:1;display:flex;min-height:0}.tb-side{width:236px;flex-shrink:0;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.tb-shelf{padding:16px 14px 12px;border-bottom:1px solid #eef2f7}.tb-side-title{font-size:11px;font-weight:700;color:#94a3b8;letter-spacing:.06em;margin:0 0 10px}.tb-side-title-row{display:flex;align-items:center;justify-content:space-between}.tb-shelf-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;cursor:pointer;border:0;background:transparent;width:100%;text-align:left;font-family:inherit}.tb-shelf-item:hover{background:#f8fafc}.tb-shelf-item.on{background:#eff6ff}.tb-shelf-cover{width:26px;height:34px;border-radius:4px;flex-shrink:0;border:1px solid rgba(15,23,42,.06)}.tb-shelf-meta{min-width:0;flex:1}.tb-shelf-meta b{display:block;font-size:12.5px;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-shelf-meta small{font-size:11px;color:#94a3b8}.tb-shelf-dot{width:6px;height:6px;border-radius:50%;background:#2563eb;flex-shrink:0}.tb-newbook{margin-top:8px;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px;border:1px dashed #cbd5e1;border-radius:8px;background:transparent;color:#64748b;font-size:12px;cursor:pointer;font-family:inherit}.tb-newbook:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.tb-toc{flex:1;padding:16px 14px;min-height:0;display:flex;flex-direction:column}.tb-toc-tree{flex:1;overflow-y:auto;min-height:0}.tb-toc-progress{font-size:11px;color:#94a3b8}.tb-toc-ch{margin-bottom:4px}.tb-toc-ch-head{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#475569;padding:6px 4px;cursor:pointer;border:0;background:transparent;width:100%;text-align:left;font-family:inherit}.tb-toc-sec{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 24px;border-radius:6px;cursor:pointer;font-size:12.5px;color:#475569;border:0;background:transparent;width:100%;text-align:left;font-family:inherit}.tb-toc-sec:hover{background:#f8fafc}.tb-toc-sec.on{background:#eff6ff;color:#1d4ed8;font-weight:600}.tb-toc-status{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#cbd5e1}.tb-toc-status.done{background:#22c55e}.tb-toc-status.doing{background:#2563eb}.tb-toc-status.review{background:#f59e0b}.tb-toc-sec-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-toc-sec small{font-size:10.5px;color:#94a3b8}.tb-canvas{flex:1;min-width:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:28px 24px 20px}.tb-page{width:min(var(--tb-page-width,720px),100%);background:#fff;border:1px solid #e2e8f0;border-radius:4px;box-shadow:0 2px 16px #0f172a0f;padding:52px 60px 44px;box-sizing:border-box;transition:width .2s ease}.tb-page.preview{box-shadow:0 4px 24px #0f172a14}.tb-page-no{margin-top:18px;font-size:11.5px;color:#94a3b8}.tb-layout-ruler{width:min(var(--tb-page-width,720px),100%);display:flex;justify-content:space-between;font-size:10.5px;color:#94a3b8;padding:0 2px 8px}.tb-page .block-editor{height:100%}.tb-page .ProseMirror{outline:none;min-height:480px;font-size:var(--tb-font-size,15px);line-height:var(--tb-line-height,1.9);color:#334155}.tb-page .ProseMirror p{margin:0 0 10px}.tb-page .ProseMirror h1{font-size:28px;font-weight:700;color:#0f172a;margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid #0f172a}.tb-page .ProseMirror h2{font-size:24px;font-weight:700;color:#0f172a;margin:0 0 16px;padding-bottom:10px;border-bottom:1.5px solid #e2e8f0}.tb-page .ProseMirror h3{font-size:17px;font-weight:650;color:#0f172a;margin:18px 0 10px}.tb-page .ProseMirror ul,.tb-page .ProseMirror ol{padding-left:22px;margin:0 0 12px}.tb-page .ProseMirror blockquote{margin:12px 0;padding:10px 16px;border-left:2px solid #cbd5e1;background:#f8fafc;color:#475569;border-radius:0 8px 8px 0}.tb-page .ProseMirror hr{border:0;border-top:1px solid #e2e8f0;margin:22px 0}.tb-page .ProseMirror pre{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:14px 16px;font-size:12.5px;overflow-x:auto}.tb-page .ProseMirror code{background:#f1f5f9;border-radius:4px;padding:1px 5px;font-size:.9em}.tb-page .ProseMirror pre code{background:transparent;padding:0}.tb-page .ProseMirror a{color:#2563eb}.tb-page .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:6px}.tb-page .ProseMirror ul[data-type=taskList] li{display:flex;gap:8px;align-items:flex-start}.tb-page .ProseMirror ul[data-type=taskList] li>label{margin-top:4px}.tb-page .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#94a3b8;pointer-events:none;height:0}.tb-page.preview .ProseMirror ::selection{background:transparent}.tb-page .ProseMirror table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.92em}.tb-page .ProseMirror th,.tb-page .ProseMirror td{border:1px solid #e2e8f0;padding:7px 12px;text-align:left;min-width:60px}.tb-page .ProseMirror th{background:#f8fafc;font-weight:600;color:#334155}.tb-page .ProseMirror td p,.tb-page .ProseMirror th p{margin:0}.tb-page .ProseMirror a{color:#2563eb;text-decoration:underline;text-underline-offset:2px}.tb-page .ProseMirror img{max-width:100%;border-radius:8px;display:block;margin:12px 0}.tb-page .ProseMirror img.ProseMirror-selectednode{outline:2px solid #2563eb}.tb-page .ProseMirror .tb-callout{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:12px 16px;margin:12px 0}.tb-callout-tag{display:inline-block;font-size:11px;font-weight:700;color:#1d4ed8;background:#eff6ff;border-radius:5px;padding:2px 8px;margin-bottom:6px}.tb-callout-body>p:last-child{margin-bottom:0}.tb-page .ProseMirror .tb-media{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin:12px 0;background:#fff;-webkit-user-select:none;user-select:none}.tb-media.ProseMirror-selectednode{outline:2px solid #2563eb}.tb-media-stage{height:120px;background:linear-gradient(135deg,#1e293b,#334155);display:flex;align-items:center;justify-content:center}.tb-media-play{width:44px;height:44px;border-radius:50%;background:#ffffffeb;position:relative}.tb-media-play:after{content:"";position:absolute;left:17px;top:13px;border-left:14px solid #1e293b;border-top:9px solid transparent;border-bottom:9px solid transparent}.tb-media-meta{display:flex;align-items:center;justify-content:space-between;padding:9px 14px}.tb-media-meta b{font-size:12.5px;font-weight:600;color:#334155}.tb-media-meta span{font-size:11px;color:#94a3b8}.tb-media-audio{display:flex;align-items:center;gap:12px;padding:14px}.tb-audio-play{width:32px;height:32px;border-radius:50%;background:#2563eb;position:relative;flex-shrink:0}.tb-audio-play:after{content:"";position:absolute;left:12px;top:9px;border-left:10px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tb-audio-bars{display:flex;align-items:center;gap:3px;flex:1}.tb-audio-bars i{width:3px;border-radius:2px;background:#bfdbfe}.tb-resource{display:flex;align-items:center;gap:12px;padding:12px 14px}.tb-resource-kind{width:34px;height:40px;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid #dbeafe;flex-shrink:0}.tb-resource .tb-media-meta{flex:1;padding:0;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.tb-resource-act{font-size:11.5px;color:#2563eb;border:1px solid #dbeafe;border-radius:6px;padding:4px 10px;cursor:pointer}.tb-toolbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:2px;background:#fffffff0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #e2e8f0;border-radius:10px;padding:5px 8px;margin:0 auto 14px;width:fit-content;box-shadow:0 4px 14px #0f172a0f}.tb-tl-btn{min-width:28px;height:28px;padding:0 6px;border:0;background:transparent;border-radius:6px;color:#475569;font-size:12.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit}.tb-tl-btn:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.tb-tl-btn.on{background:#eff6ff;color:#2563eb}.tb-tl-btn:disabled{opacity:.35;cursor:default}.tb-tl-sep{width:1px;height:16px;background:#e2e8f0;margin:0 5px}.tb-tl-txt{font-weight:600;font-size:12px}.tb-tl-txt.mono{font-family:ui-monospace,monospace;font-size:11px}.tb-prop-field{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;font-size:12.5px;color:#64748b}.tb-prop-field>span{flex-shrink:0}.tb-prop-input{flex:1;min-width:0;border:1px solid #e2e8f0;border-radius:7px;padding:5px 9px;font-size:12.5px;font-family:inherit;color:#1e293b;background:#fff;outline:none}.tb-prop-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #eff6ff}.tb-bookcase{padding:20px 10px;max-width:960px}.tb-shelf-row{position:relative;display:flex;align-items:flex-end;gap:22px;padding:0 26px;flex-wrap:wrap}.tb-shelf-plank{position:absolute;left:0;right:0;bottom:-14px;height:12px;background:linear-gradient(#d6c9b8,#b9a892);border-radius:3px;box-shadow:0 10px 18px #0f172a1a}.tb-shelf-plank:after{content:"";position:absolute;left:8px;right:8px;top:0;height:2px;background:#ffffff73;border-radius:2px}.tb-stand-book{border:0;background:transparent;padding:0;cursor:pointer;font-family:inherit;perspective:600px}.tb-stand-spine{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;width:104px;height:168px;padding:12px 10px;border-radius:3px 8px 8px 3px;color:#0f172a;text-align:left;box-shadow:inset -3px 0 #ffffff80,inset 4px 0 8px #00000014,0 8px 14px #0f172a24;transition:transform .18s,box-shadow .18s}.tb-stand-book:hover .tb-stand-spine{transform:translateY(-10px) rotateY(-6deg);box-shadow:inset -3px 0 #ffffff80,inset 4px 0 8px #00000014,0 18px 26px #0f172a33}.tb-stand-band{position:absolute;top:10px;left:10px;right:10px;height:3px;border-radius:2px;background:#ffffff8c}.tb-stand-band.short{top:18px;right:44px}.tb-stand-title{font-size:12.5px;font-weight:700;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tb-stand-info{font-size:10.5px;opacity:.75}.tb-stand-badge{align-self:flex-start;margin-top:2px}.tb-stand-new .tb-stand-spine{background:#fff;border:2px dashed #cbd5e1;color:#94a3b8;align-items:center;justify-content:center;gap:8px;box-shadow:none}.tb-stand-new:hover .tb-stand-spine{border-color:#2563eb;color:#2563eb}.tb-toc-ch-head .tb-toc-ch-name{flex:1}.tb-toc-add{border:0;background:transparent;color:#94a3b8;width:20px;height:20px;border-radius:5px;display:none;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.tb-toc-ch-head:hover .tb-toc-add{display:flex}.tb-toc-add:hover{background:#eff6ff;color:#2563eb}.tb-add-chap{margin:10px 0 4px}.tb-panel-tabs{display:flex;gap:4px;background:#f1f5f9;border-radius:8px;padding:3px;flex-shrink:0}.tb-panel-tab{flex:1;border:0;background:transparent;padding:6px 0;border-radius:6px;font-size:12.5px;color:#64748b;cursor:pointer;font-family:inherit}.tb-panel-tab.on{background:#fff;color:#0f172a;font-weight:600;box-shadow:0 1px 3px #0f172a14}.tb-ai-tab{flex:1;display:flex;flex-direction:column;min-height:0}.tb-ai-msgs{flex:1;overflow-y:auto;min-height:120px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding-right:2px}.tb-ai-msg p{margin:0;font-size:12.5px;line-height:1.7;white-space:pre-wrap}.tb-ai-msg.user{align-self:flex-end;background:#2563eb;color:#fff;border-radius:12px 12px 4px;padding:8px 12px;max-width:88%}.tb-ai-msg.assistant{align-self:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px 12px 12px 4px;padding:10px 12px;max-width:92%;color:#334155}.tb-ai-insert{margin-top:8px;border:1px solid #dbeafe;background:#fff;color:#2563eb;font-size:11.5px;border-radius:6px;padding:4px 12px;cursor:pointer;font-family:inherit}.tb-ai-insert:hover{background:#eff6ff}.tb-ai-msgs::-webkit-scrollbar{width:4px}.tb-ai-msgs::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:4px}.tb-review-list{display:flex;flex-direction:column;gap:10px;max-width:760px}.tb-review-item{display:flex;gap:12px;text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:14px 16px;cursor:pointer;font-family:inherit;transition:border-color .15s}.tb-review-item:hover{border-color:#93c5fd}.tb-review-item .tb-review-dot{margin-top:6px;flex-shrink:0}.tb-review-body{flex:1;min-width:0}.tb-review-head{display:flex;align-items:center;gap:10px;margin-bottom:5px}.tb-review-head b{font-size:13px;color:#1e293b}.tb-review-author{font-size:11.5px;color:#94a3b8;flex:1}.tb-review-body p{margin:0;font-size:12.5px;color:#475569;line-height:1.6}.tb-shelf-view{flex:1;min-width:0;overflow-y:auto;padding:32px}.tb-shelf-view h2{font-size:17px;font-weight:700;color:#0f172a;margin:0 0 4px}.tb-shelf-view .tb-shelf-sub{font-size:12.5px;color:#94a3b8;margin:0 0 24px}.tb-book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;max-width:900px}.tb-book-card{border:1px solid #e2e8f0;background:#fff;border-radius:12px;overflow:hidden;cursor:pointer;text-align:left;padding:0;font-family:inherit;transition:box-shadow .15s ease,transform .15s ease}.tb-book-card:hover{box-shadow:0 6px 20px #0f172a1a;transform:translateY(-2px)}.tb-book-cover{height:120px;display:flex;align-items:center;justify-content:center;color:#475569}.tb-book-card-meta{padding:12px 14px}.tb-book-card-meta b{display:block;font-size:13.5px;color:#1e293b;margin-bottom:4px}.tb-book-card-meta small{font-size:11.5px;color:#94a3b8}.tb-book-card-meta .tb-badge{margin-top:8px}.tb-book-new{border:1.5px dashed #cbd5e1;background:transparent;border-radius:12px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#64748b;font-size:13px;cursor:pointer;font-family:inherit}.tb-book-new:hover{border-color:#2563eb;color:#2563eb;background:#fafcff}.tb-panel{width:264px;flex-shrink:0;background:#fff;border-left:1px solid #e2e8f0;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:22px}.tb-prop-row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;padding:7px 0;border-bottom:1px solid #f1f5f9}.tb-prop-row span{color:#64748b}.tb-prop-row b{font-weight:600;color:#334155}.tb-prop-row b.tb-on{color:#15803d}.tb-prop-types{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tb-type-chip{border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:11.5px;color:#475569;padding:4px 10px;cursor:pointer;font-family:inherit}.tb-type-chip:hover{border-color:#2563eb;color:#2563eb}.tb-type-chip.on{border-color:#2563eb;color:#1d4ed8;background:#eff6ff;font-weight:600}.tb-ai-head{display:flex;align-items:center;justify-content:space-between}.tb-ai-online{font-size:11px;color:#15803d}.tb-ai-online:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-right:5px;vertical-align:1px}.tb-ai-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tb-ai-chip{border:1px solid #e2e8f0;background:#f8fafc;border-radius:14px;font-size:11.5px;color:#475569;padding:5px 12px;cursor:pointer;font-family:inherit}.tb-ai-chip:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.tb-ai-input{display:flex;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#fff}.tb-ai-input input{flex:1;border:0;outline:none;font-size:12px;color:#334155;background:transparent;font-family:inherit}.tb-ai-input input::placeholder{color:#94a3b8}.tb-ai-send{width:26px;height:26px;border:0;border-radius:7px;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.tb-ai-note{font-size:11px;color:#94a3b8;margin:8px 0 0;line-height:1.6}.tb-review-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#475569;padding:6px 0}.tb-review-row b{margin-left:auto;font-size:12.5px;color:#334155}.tb-review-dot{width:8px;height:8px;border-radius:50%}.tb-review-dot.c{background:#f59e0b}.tb-review-dot.s{background:#22c55e}.tb-review-dot.v{background:#2563eb}.tb-layout-row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;padding:8px 0;border-bottom:1px solid #f1f5f9}.tb-layout-row span{color:#64748b}.tb-layout-row select{border:1px solid #e2e8f0;border-radius:6px;font-size:12px;padding:4px 8px;color:#334155;background:#fff;font-family:inherit}.tb-slash-menu{position:absolute;z-index:60;min-width:230px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 28px #0f172a24;padding:5px;max-height:300px;overflow-y:auto}.tb-slash-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:0;background:transparent;border-radius:7px;padding:8px 10px;cursor:pointer;font-family:inherit}.tb-slash-item:hover,.tb-slash-item.on{background:#eff6ff}.tb-slash-item-title{font-size:12.5px;font-weight:600;color:#334155}.tb-slash-item.on .tb-slash-item-title{color:#1d4ed8}.tb-slash-item-desc{font-size:11px;color:#94a3b8}.tb-slash-empty{padding:10px;font-size:12px;color:#94a3b8}.tb-status{height:30px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 16px;background:#fff;border-top:1px solid #e2e8f0;font-size:11.5px;color:#94a3b8}.tb-status-sep{width:1px;height:12px;background:#e2e8f0}.tb-status-right{margin-left:auto;color:#cbd5e1}@media (max-width: 1100px){.tb-panel{display:none}}@media (max-width: 860px){.tb-side{display:none}}
