:root{--page: #ffffff;--sidebar-bg: #f5f4f0;--border: #e4e2da;--text: #1c1b18;--text-secondary: #6d6b63;--text-muted: #9a988e;--accent: #185fa5;--accent-bg: #e6f1fb;--radius: 8px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;color:var(--text);background:var(--page);font-size:15px;line-height:1.6}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:#fff;flex:none}.brand{display:flex;align-items:center;gap:9px;font-weight:600}.brand svg{color:var(--accent)}.topbar-right{display:flex;align-items:center;gap:14px}.avatars{display:flex;align-items:center}.avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;border:2px solid #fff}.avatar+.avatar{margin-left:-8px}.a-you{background:#2f6ba5}.a-a{background:#3b8a4e}.a-k{background:#c08a1e}.saved{display:flex;align-items:center;gap:5px;font-size:12px;color:#3b8a4e}.saved svg{width:15px;height:15px}.btn-publish{display:flex;align-items:center;gap:5px;font-size:13px;padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer}.btn-publish svg{width:15px;height:15px}.btn-publish:disabled{opacity:.6;cursor:default}.pub-dot{width:7px;height:7px;border-radius:50%;background:#ffcf4d;border:1px solid rgba(0,0,0,.15);display:inline-block;margin-left:2px}.btn-plain{font-size:13px;padding:6px 12px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.btn-plain:hover{background:var(--sidebar-bg)}.user-email{font-size:13px;color:var(--text-secondary)}.demo-banner{flex:none;padding:7px 16px;background:#fff7e6;border-bottom:1px solid #f0dfae;color:#8a6d1e;font-size:13px}.layout{display:flex;flex:1;min-height:0}.sidebar{width:240px;flex:none;border-right:1px solid var(--border);background:var(--sidebar-bg);padding:12px 8px;overflow-y:auto}.search{position:relative;margin-bottom:10px}.search-icon{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--text-muted);display:flex}.search input{width:100%;height:32px;padding:0 10px 0 30px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text)}.search input:focus{outline:none;border-color:var(--accent)}.tree-row{display:flex;align-items:center;gap:6px}.tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-group{padding:6px 8px;cursor:pointer;color:var(--text-secondary);font-weight:500;border-radius:var(--radius)}.tree-group:hover{background:#ecebe4}.tree-caret{display:flex;color:var(--text-muted)}.tree-children{margin-left:14px}.tree-leaf{padding:5px 8px 5px 16px;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius);font-size:14px}.tree-leaf:hover{background:#ecebe4}.tree-leaf.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.tree-empty{padding:6px 8px;color:var(--text-muted);font-size:13px}.row-actions{display:none;gap:2px;flex:none}.tree-row:hover .row-actions{display:flex}.icon-btn{width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--text-muted);font-size:13px;line-height:1;border-radius:4px}.icon-btn:hover{background:#dedcd2;color:var(--text)}.icon-btn.danger:hover{background:#f5d9d5;color:#a3352a}.add-top{margin-top:10px;width:100%;padding:7px 8px;font-size:13px;background:#fff;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer}.add-top:hover{background:#ecebe4;color:var(--text)}.muted{color:var(--text-muted)}.content{flex:1;overflow-y:auto;padding:24px 32px;background:#fff}.content-inner{max-width:860px}.breadcrumb{font-size:12px;color:var(--text-muted);margin-bottom:4px}.content h1{font-size:24px;margin:0 0 16px}.prose{font-size:15px}.prose p{margin:0 0 14px}.prose mark{background:#fdeeb3;padding:0 2px}.prose strong{font-weight:600}.prose .img-ph{height:130px;margin:0 0 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.prose table{width:100%;border-collapse:collapse;font-size:14px;margin:0 0 16px}.prose th,.prose td{border:1px solid var(--border);padding:8px 11px;text-align:left}.prose th{background:var(--sidebar-bg);font-weight:600}.prose img{max-width:100%;height:auto;border-radius:var(--radius);margin:0 0 16px}.saved-error{color:#a3352a}.presence-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.presence-bar .avatars{display:flex;align-items:center}.presence-bar .avatar{width:26px;height:26px;font-size:11px}.presence-text{font-size:12px;color:var(--text-secondary)}.editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:6px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;position:sticky;top:0;z-index:2}.tb-btn{min-width:28px;height:28px;padding:0 7px;font-size:13px;line-height:1;background:#fff;color:var(--text-secondary);border:1px solid transparent;border-radius:6px;cursor:pointer}.tb-btn:hover{background:var(--sidebar-bg);color:var(--text)}.tb-btn.active{background:var(--accent-bg);color:var(--accent)}.tb-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.editor-content .ProseMirror{outline:none;min-height:240px}.editor-content .ProseMirror>*+*{margin-top:12px}.editor-content .ProseMirror table{border-collapse:collapse;width:100%;margin:0;table-layout:fixed}.editor-content .ProseMirror td,.editor-content .ProseMirror th{border:1px solid var(--border);padding:8px 11px;position:relative;vertical-align:top}.editor-content .ProseMirror th{background:var(--sidebar-bg);font-weight:600}.editor-content .ProseMirror .selectedCell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#185fa51f;pointer-events:none}.editor-content .ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius)}.editor-content .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--accent)}.editor-content .ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:var(--accent);pointer-events:none}
