:root{--color-app:#fbfbfa;--color-surface:#fff;--color-sidebar:#f5f5f3;--color-text:#2c2e31;--color-text-secondary:#64686d;--color-text-muted:#858a8f;--color-border:#dededb;--color-hover:#eaeae7;--color-selected:#dce8f5;--color-selected-text:#26384c;--color-focus:#4c7daf;--color-success:#657b69;--color-warning:#8b642a;--color-danger:#a64048;--color-danger-surface:#f8e7e8;--color-danger-border:#a640483d;--color-danger-hover:#a6404814;--color-danger-active:#a6404824;--color-code-surface:#f3f3f1;--color-highlight:#fde68a;--color-backdrop:#1c1f236b;--document-inline-gutter:86px;--document-max-width:790px;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Segoe UI", "Microsoft YaHei", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-14:56px;--radius-code:4px;--radius-control:6px;--radius-overlay:10px;--shadow-menu:0 8px 24px #1c1f231f;--shadow-dialog:0 24px 70px #14171c38;--layer-toolbar:10;--layer-menu:20;--layer-tooltip:40;--layer-dialog:100;--motion-fast:.12s;--motion-enter:.18s;--ease-out:ease-out;color:var(--color-text);background:var(--color-app);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-width:960px;min-height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,.tiptap:focus-visible,.page-tree-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.app-shell{color:var(--color-text);background:var(--color-app)}.session-workspace{min-width:0;min-height:0}.session-workspace[inert],.app-workspace[inert]{pointer-events:none;-webkit-user-select:none;user-select:none}.login-shell{width:100%;height:100vh;min-height:100vh;padding:var(--space-6);background:var(--color-app);place-items:center;display:grid;overflow-y:auto}.login-card{width:min(100%,420px);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-overlay);background:var(--color-surface)}.login-card h1,.login-card h2{color:var(--color-text);margin:0;font-size:24px;line-height:1.25}.login-description{margin:var(--space-2) 0 var(--space-6);color:var(--color-text-secondary);line-height:1.55}.login-form{gap:var(--space-2);display:grid}.login-form label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.login-form input{width:100%;min-height:38px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);background:var(--color-surface)}.login-form input+label{margin-top:var(--space-2)}.login-form input[aria-disabled=true]{color:var(--color-text-muted);background:var(--color-code-surface)}.login-form button{min-height:38px;margin-top:var(--space-3);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);background:var(--color-surface);cursor:pointer}.login-form button:hover:not(:disabled){background:var(--color-hover)}.login-form button:active:not(:disabled){background:var(--color-selected)}.login-form button:disabled,.logout-button:disabled{cursor:not-allowed;opacity:.55}.login-error{margin:var(--space-2) 0 0;color:var(--color-danger);font-size:13px;line-height:1.45}.reauth-backdrop{z-index:var(--layer-dialog);padding:var(--space-6);background:var(--color-backdrop);place-items:center;display:grid;position:fixed;inset:0}.reauth-dialog{width:min(100%,420px);max-height:calc(100vh - var(--space-12));border-radius:var(--radius-overlay);overflow-y:auto}.reauth-dialog .login-card{width:100%}.app-workspace{grid-template-columns:255px minmax(0,1fr);width:100%;height:100vh;display:grid;overflow:hidden}.app-sidebar{overscroll-behavior:contain;border-right:1px solid var(--color-border);background:var(--color-sidebar);width:255px;min-width:255px;height:100vh;overflow:hidden auto}.sidebar-header{height:50px;padding:0 var(--space-3) 0 var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:relative}.sidebar-header h1{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:15px;font-weight:680}.sidebar-session-actions{align-items:center;min-width:0;display:flex}.logout-button{min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;font-size:12px}.logout-button:hover:not(:disabled){color:var(--color-text);background:var(--color-hover)}.logout-button:active:not(:disabled){background:var(--color-selected)}.logout-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.logout-error{z-index:var(--layer-menu);top:calc(100% + var(--space-1));right:var(--space-2);left:var(--space-2);padding:var(--space-2);border:1px solid var(--color-danger-border);border-radius:var(--radius-control);color:var(--color-danger);background:var(--color-danger-surface);overflow-wrap:anywhere;font-size:12px;line-height:1.4;position:absolute}.icon-button{border-radius:var(--radius-control);width:28px;min-width:28px;height:28px;min-height:28px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);background:0 0;border:0;place-items:center;padding:0;display:inline-grid;position:relative}.icon-button:hover:not(:disabled){color:var(--color-text);background:var(--color-hover)}.icon-button:active:not(:disabled){background:var(--color-selected)}.sidebar-tree{padding:0 var(--space-2) var(--space-8)}.page-tree{gap:1px;display:grid}.page-tree-item{align-items:center;gap:var(--space-1);border-radius:var(--radius-control);height:32px;min-height:32px;color:var(--color-text-secondary);cursor:default;transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);padding-block:2px;padding-inline-end:2px;font-size:13px;line-height:1.35;display:flex;position:relative}.page-tree-item:hover{color:var(--color-text);background:var(--color-hover)}.page-tree-item:active{background:var(--color-hover)}.page-tree-item[aria-selected=true]{color:var(--color-selected-text);background:var(--color-selected)}.page-tree-toggle,.page-tree-toggle-spacer{width:28px;min-width:28px;height:28px}.page-tree-toggle{color:var(--color-text-muted)}.page-tree-icon{color:var(--color-text-muted);flex:none}.page-tree-title,.page-tree-item>input{flex:1;min-width:0}.page-tree-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-tree-item>input{height:26px;padding:2px var(--space-1);border:1px solid var(--color-focus);border-radius:var(--radius-code);color:var(--color-text);background:var(--color-surface)}.page-tree-action{opacity:0;pointer-events:none;flex:0 0 28px}.page-tree-item:hover .page-tree-action,.page-tree-item:focus-within .page-tree-action,.page-tree-action:focus-visible{opacity:1;pointer-events:auto}.page-tree-menu{z-index:var(--layer-menu);width:148px;padding:var(--space-1);opacity:1;transition:opacity var(--motion-enter) var(--ease-out), transform var(--motion-enter) var(--ease-out);gap:2px;display:grid;position:absolute;top:calc(100% + 2px);right:0;transform:translateY(0)}.sidebar-tools{height:30px;margin:var(--space-2) var(--space-2) 0;padding:0 var(--space-2);align-items:center;gap:2px;display:flex;position:relative}.sidebar-sort-menu{z-index:var(--layer-menu);top:calc(100% + 4px);left:var(--space-2);width:220px;padding:var(--space-1);opacity:1;transition:opacity var(--motion-enter) var(--ease-out), transform var(--motion-enter) var(--ease-out);gap:2px;display:grid;position:absolute;transform:translateY(0)}.sidebar-sort-menu-item{min-height:32px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:20px minmax(0,1fr);align-items:center;display:grid}.sidebar-sort-menu-item:hover,.sidebar-sort-menu-item:focus-visible{background:var(--color-hover)}.sidebar-sort-menu-item:active{background:var(--color-selected)}.sidebar-sort-menu-check{width:16px;height:16px;color:var(--color-focus);place-items:center;display:grid}.sidebar-sort-menu-separator{height:1px;margin:var(--space-1) var(--space-2);background:var(--color-border)}.page-tree-menu,.sidebar-sort-menu{border:1px solid var(--color-border);border-radius:var(--radius-overlay);box-shadow:var(--shadow-menu);background:var(--color-surface)}.page-tree-menu-item{min-height:30px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0}.page-tree-menu-item:hover,.page-tree-menu-item:focus-visible{background:var(--color-hover)}.page-tree-menu-item:active{background:var(--color-selected)}.page-tree-menu-item--danger{color:var(--color-danger)}.editor-region{background:var(--color-surface);min-width:0;height:100vh;min-height:0;overflow:hidden}.editor-pane{grid-template-rows:auto minmax(0,1fr);min-width:0;height:100%;min-height:0;display:grid}.editor-top-bar{z-index:var(--layer-toolbar);background:var(--color-surface);grid-template-rows:50px auto;grid-template-columns:minmax(0,1fr);min-width:0;display:grid;position:relative}.editor-top-bar:after{background:var(--color-border);content:"";pointer-events:none;height:1px;position:absolute;top:49px;left:0;right:0}.editor-toolbar{white-space:nowrap;grid-area:1/1;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;min-width:0;display:grid}.editor-toolbar-history{grid-area:1/1;justify-self:start;margin-inline-start:var(--space-4)}.editor-toolbar-formatting{width:calc(100% - var(--document-inline-gutter) - var(--document-inline-gutter));max-width:var(--document-max-width);justify-self:center;align-items:center;gap:var(--space-1);overscroll-behavior-inline:contain;scrollbar-width:none;white-space:nowrap;grid-area:1/1;min-width:0;display:flex;overflow:auto hidden}.editor-toolbar-formatting::-webkit-scrollbar{display:none}.editor-toolbar-group{flex:none;align-items:center;gap:2px;display:flex}.editor-toolbar-group+.editor-toolbar-group{border-inline-start:1px solid var(--color-border);padding-inline-start:var(--space-1)}.editor-toolbar-button{border-radius:var(--radius-control);height:28px;min-height:28px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);background:0 0;border:0;place-items:center;padding:0;font-size:12px;font-weight:550;line-height:1.3;display:inline-grid;position:relative}.editor-toolbar-button--icon{width:28px;min-width:28px}.editor-toolbar-button--text{min-width:28px;padding-inline:6px}.editor-command-label--underline{text-underline-offset:2px;text-decoration-line:underline;text-decoration-thickness:1px}.editor-toolbar-button:hover:not(:disabled){color:var(--color-text);background:var(--color-hover)}.editor-toolbar-button:active:not(:disabled){background:var(--color-selected)}.editor-toolbar-button[aria-pressed=true]{color:var(--color-selected-text);background:var(--color-selected)}.editor-toolbar-button:disabled{color:var(--color-text-muted);opacity:.52}.editor-bubble-style-item{padding:var(--space-1) var(--space-2);text-align:left}.editor-bubble-menu,.editor-bubble-style-menu{border:1px solid var(--color-border);border-radius:var(--radius-overlay);box-shadow:var(--shadow-menu);background:var(--color-surface)}.editor-bubble-menu{z-index:var(--layer-menu);padding:var(--space-1);white-space:nowrap;align-items:center;gap:2px;display:flex}.editor-bubble-button,.editor-bubble-style-item{border-radius:var(--radius-control);min-width:28px;min-height:28px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:550;line-height:1.3}.editor-bubble-button{place-items:center;padding:0 6px;display:inline-grid}.editor-bubble-block-trigger{justify-content:center;align-items:center;gap:2px;min-width:52px;display:inline-flex}.editor-bubble-chevron{flex:none}.editor-bubble-button:hover:not(:disabled):not([aria-pressed=true]),.editor-bubble-style-item:hover:not(:disabled):not([aria-checked=true]),.editor-bubble-style-item:focus-visible{color:var(--color-text);background:var(--color-hover)}.editor-bubble-button[aria-pressed=true],.editor-bubble-style-item[aria-checked=true]{color:var(--color-selected-text);background:var(--color-selected)}.editor-bubble-button:disabled,.editor-bubble-style-item:disabled{color:var(--color-text-muted);opacity:.52}.editor-bubble-style-menu{top:calc(100% + var(--space-1));min-width:112px;padding:var(--space-1);gap:2px;display:grid;position:absolute;left:0}.save-status-summary{min-width:0;margin-inline:var(--space-3) var(--space-4);color:var(--color-text-muted);white-space:nowrap;grid-area:1/1;justify-self:end;align-items:center;font-size:12px;font-weight:500;line-height:1.3;display:flex}.save-status-summary:empty{width:0;margin-inline-start:0}.save-status-summary--saving{color:var(--color-warning)}.save-status-summary--saved{color:var(--color-success)}.save-status-summary--error{color:var(--color-danger);font-weight:600}.save-error-bar{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-danger-border);color:var(--color-danger);background:var(--color-danger-surface);grid-area:2/1/auto/-1;font-size:13px;line-height:1.45;display:flex;position:static}.save-error-message{overflow-wrap:anywhere;flex:1;min-width:0}.save-error-retry{min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-danger);cursor:pointer;background:0 0;border:1px solid;flex:none}.save-error-retry:hover{background:var(--color-danger-hover)}.save-error-retry:active{background:var(--color-danger-active)}.editor-scroll{overscroll-behavior:contain;min-width:0;min-height:0;overflow:hidden auto}.editor-state-scroll{height:100%}.document-container{width:calc(100% - var(--document-inline-gutter) - var(--document-inline-gutter));max-width:var(--document-max-width);min-height:100%;padding:var(--space-14) 0 80px;margin:0 auto}.document-editor{width:100%}.document-title{border-radius:var(--radius-code);width:100%;color:var(--color-text);caret-color:var(--color-focus);font-family:var(--font-sans);letter-spacing:-.035em;background:0 0;border:0;margin:0;padding:0;font-size:32px;font-weight:670;line-height:1.16}.document-title:focus-visible,.tiptap:focus-visible{outline:none}.tiptap{min-height:55vh;margin-top:var(--space-8);padding:0 0 var(--space-14);overflow-wrap:anywhere;color:var(--color-text);caret-color:var(--color-focus);font-family:var(--font-sans);font-size:16px;line-height:1.76}.tiptap p{text-align:justify;text-align-last:left;margin:.72em 0}.tiptap h1,.tiptap h2,.tiptap h3{color:var(--color-text);letter-spacing:-.02em}.tiptap h1{margin:1.55em 0 .55em;font-size:28px;font-weight:680;line-height:1.28}.tiptap h2{margin:1.5em 0 .5em;font-size:22px;font-weight:650;line-height:1.32}.tiptap h3{margin:1.4em 0 .45em;font-size:18px;font-weight:640;line-height:1.4}.tiptap ul,.tiptap ol{margin:.8em 0;padding-inline-start:1.6em}.tiptap li+li{margin-top:.24em}.tiptap blockquote{padding:.15em 0 .15em var(--space-3);border-inline-start:2px solid var(--color-border);color:var(--color-text-secondary);margin:1.1em 0}.tiptap u{text-underline-offset:2px;text-decoration-thickness:1px}.tiptap mark{color:inherit;background:var(--color-highlight);padding-inline:.08em}.tiptap sub,.tiptap sup{font-size:.75em;line-height:0}.tiptap sub{vertical-align:sub}.tiptap sup{vertical-align:super}.tiptap code{border-radius:var(--radius-code);color:var(--color-text);background:var(--color-code-surface);font-family:var(--font-mono);padding:.12em .32em;font-size:.9em;line-height:1.6}.tiptap pre{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);background:var(--color-code-surface);font-family:var(--font-mono);margin:1.2em 0;font-size:.9em;line-height:1.6;overflow-x:auto}.tiptap pre code{background:0 0;padding:0}[data-tooltip]:after{z-index:var(--layer-tooltip);width:max-content;max-width:240px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);opacity:0;color:var(--color-surface);background:var(--color-text);content:attr(data-tooltip);pointer-events:none;transition:opacity var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);font-size:11px;font-weight:500;line-height:1.35;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%,-2px)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.page-tree-action:after{left:auto;right:0;transform:translateY(-2px)}.sidebar-tool-button:first-child:after,.page-tree-toggle:after{left:0;right:auto;transform:translateY(-2px)}.sidebar-tool-button:first-child:hover:after,.sidebar-tool-button:first-child:focus-visible:after,.page-tree-action:hover:after,.page-tree-action:focus-visible:after,.page-tree-toggle:hover:after,.page-tree-toggle:focus-visible:after{transform:translateY(0)}.app-state-view{place-items:center;width:100%;height:100vh;padding:40px;display:grid}.loading-state,.fatal-error,.content-error,.document-loading{width:min(100%,560px);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-overlay);background:var(--color-surface);margin:auto}.fatal-error,.content-error{border-inline-start:3px solid var(--color-danger)}.fatal-error h1,.content-error h2,.loading-state h1{margin:0 0 var(--space-2);color:var(--color-text)}.error-summary{overflow-wrap:anywhere;color:var(--color-danger)}.fatal-error button,.content-error button{min-height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);background:var(--color-surface);cursor:pointer}.fatal-error button:hover,.content-error button:hover{background:var(--color-hover)}.fatal-error button:active,.content-error button:active{background:var(--color-selected)}.document-state-container{place-items:start center;display:grid}.document-loading{color:var(--color-text-secondary);text-align:center}.dialog-backdrop{z-index:var(--layer-dialog);opacity:1;background:var(--color-backdrop);transition:opacity var(--motion-enter) var(--ease-out);place-items:center;padding:28px;display:grid;position:fixed;inset:0}.confirm-dialog{width:min(100%,480px);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-overlay);box-shadow:var(--shadow-dialog);opacity:1;background:var(--color-surface);transition:opacity var(--motion-enter) var(--ease-out), transform var(--motion-enter) var(--ease-out);transform:translateY(0)}.confirm-dialog h2{margin:0 0 var(--space-2);color:var(--color-text)}.confirm-dialog p{color:var(--color-text-secondary);margin:0;line-height:1.6}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6);display:flex}.dialog-actions button{min-width:92px;min-height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out)}.dialog-actions button:hover:not(:disabled){background:var(--color-hover)}.dialog-actions button:active:not(:disabled){background:var(--color-selected)}.button-danger{border-color:var(--color-danger)!important;color:var(--color-surface)!important;background:var(--color-danger)!important}.button-danger:hover:not(:disabled){opacity:.9}.button-danger:active:not(:disabled){opacity:.82}@starting-style{.page-tree-menu,.sidebar-sort-menu,.confirm-dialog{opacity:0;transform:translateY(-3px)}.dialog-backdrop{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.page-tree-menu,.sidebar-sort-menu,.confirm-dialog,[data-tooltip]:after{transform:none!important}}
