:root{color:#d8dee9;background:#0f1117;--accent: #7dc4e4;--accent-strong: #9bd9f2;--bg: #0f1117;--danger: #f38ba8;--danger-bg: #2b151b;--danger-border: #6d2a39;--editor-bg: #151821;--line: #2b303b;--muted: #8b95a7;--panel: #171b24;--panel-alt: #1e2430;--sidebar: #12151d;--text: #d8dee9;--text-strong: #f4f6fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}input{min-width:0;border:1px solid var(--line);background:var(--editor-bg);color:var(--text);font:inherit;padding:8px 10px}input:disabled{background:var(--panel-alt);color:var(--muted)}.auth-shell{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at 50% 0%,rgba(125,196,228,.12),transparent 34%),var(--bg);padding:20px}.auth-card{display:grid;width:min(420px,100%);gap:16px;border:1px solid var(--line);background:var(--panel);box-shadow:0 24px 80px #00000061;padding:24px}.auth-card h1{margin:0;color:var(--text-strong);font-size:34px;line-height:1.1}.auth-card p{margin:6px 0 0;color:var(--muted)}.auth-card label{display:grid;gap:8px}.auth-card label span{color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.auth-submit,.auth-switch{border:1px solid var(--line);color:var(--text);cursor:pointer;font-weight:750;padding:10px 12px}.auth-submit{border-color:var(--accent);background:var(--accent);color:#081017}.auth-submit:hover{background:var(--accent-strong)}.auth-submit:disabled{border-color:var(--line);background:var(--panel-alt);color:var(--muted);cursor:default}.auth-switch{background:transparent}.auth-switch:hover{background:var(--panel-alt)}.auth-error{margin:0;border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);font-size:14px;padding:10px 12px}.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);height:100vh;min-height:0}.sidebar{display:flex;min-height:0;flex-direction:column;gap:14px;border-right:1px solid var(--line);background:var(--sidebar);overflow:hidden;padding:20px 14px}.vault-heading{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;flex:0 0 auto}.brand{color:var(--text-strong);font-size:24px;font-weight:750}.vault-name{margin:4px 0 0;color:var(--muted);font-size:14px}.vault-menu-button{width:30px;height:30px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;font-weight:800;line-height:1;padding:0 0 5px}.vault-menu-button:hover,.vault-menu-button[aria-expanded=true]{background:var(--panel-alt);color:var(--text-strong)}.vault-menu-button:disabled{color:var(--muted);cursor:default;opacity:.5}.vault-action-menu{position:absolute;top:34px;right:0;z-index:20;display:grid;min-width:150px;border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 40px #00000057;padding:4px}.vault-action-menu button{border:0;background:transparent;color:var(--text);cursor:pointer;font-size:13px;padding:7px 9px;text-align:left}.vault-action-menu button:hover{background:var(--panel-alt)}.vault-action-menu button:disabled{color:var(--muted);cursor:default}.hidden-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-list{scrollbar-color:var(--line) var(--sidebar);scrollbar-width:thin;display:flex;min-height:0;flex:1;flex-direction:column;gap:1px;border-top:1px solid var(--line);overflow:auto;padding-top:6px}.file-list::-webkit-scrollbar{width:10px}.file-list::-webkit-scrollbar-track{background:var(--sidebar)}.file-list::-webkit-scrollbar-thumb{border:2px solid var(--sidebar);background:var(--line)}.file-list::-webkit-scrollbar-thumb:hover{background:#3a4250}.file-button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font-size:13px;line-height:1.25;padding:4px 6px;text-align:left}.file-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-presence{display:inline-flex;min-width:0;flex:0 0 auto;align-items:center;gap:3px;overflow:visible}.presence-indicator{position:relative;display:inline-block;width:12px;height:12px;flex:0 0 auto;background:transparent;overflow:visible}.presence-indicator:after{position:absolute;top:2px;left:2px;width:8px;height:8px;background:var(--presence-color, var(--accent));content:""}.presence-indicator:before{position:absolute;z-index:30;bottom:14px;left:50%;max-width:180px;overflow:hidden;background:var(--presence-color, var(--accent));color:#081017;content:attr(data-label);font-size:11px;font-weight:750;line-height:1.2;opacity:0;padding:3px 5px;pointer-events:none;text-overflow:ellipsis;transform:translate(-50%,3px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.presence-indicator:hover:before{opacity:1;transform:translate(-50%)}.file-button.active,.file-button:hover{border-color:transparent;background:var(--panel-alt)}.empty-sidebar{margin:0;color:var(--muted);font-size:14px;padding:10px 12px}.workspace{display:flex;min-height:0;min-width:0;flex-direction:column;overflow:hidden;padding:0}.workspace-split{display:grid;min-height:0;flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}.editor-pane{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--line)}.editor-topbar{display:grid;flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;padding:20px 24px 4px 34px}.editor-title{flex:0 0 auto;margin:0;color:var(--text-strong);font-size:30px;font-weight:800;line-height:1.28;overflow-wrap:anywhere}.presence-bar{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px;padding-top:4px}.presence-self,.presence-pill{display:inline-flex;max-width:180px;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:12px;line-height:1.2;padding:5px 7px}.presence-self{cursor:pointer}.presence-self:hover{background:var(--panel-alt)}.presence-self span:last-child,.presence-pill span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presence-dot{width:9px;height:9px;flex:0 0 auto;background:var(--presence-color, var(--accent))}.presence-color-button{width:24px;height:24px;border:1px solid var(--line);background:var(--presence-color, var(--accent));cursor:pointer}.presence-collaborators{display:flex;min-width:0;max-width:280px;flex-wrap:wrap;justify-content:flex-end;gap:6px}.file-context-menu,.editor-context-menu{position:fixed;z-index:20;display:grid;min-width:150px;border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 40px #00000057;padding:4px}.file-context-menu button,.editor-context-menu button{border:0;background:transparent;color:var(--text);cursor:pointer;font-size:13px;padding:7px 9px;text-align:left}.file-context-menu button:hover,.editor-context-menu button:hover{background:var(--panel-alt)}.file-context-menu button.danger{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#07090d9e;padding:20px}.modal-panel{display:grid;width:min(420px,100%);gap:16px;border:1px solid var(--line);background:var(--panel);box-shadow:0 24px 80px #0000006b;padding:18px}.modal-panel h2{margin:0;color:var(--text-strong);font-size:18px;line-height:1.25}.modal-panel label{display:grid;gap:8px}.modal-panel label span{color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions button{border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;font-size:14px;font-weight:750;padding:8px 12px}.modal-actions button[type=submit]{border-color:var(--accent);background:var(--accent);color:#081017}.modal-actions button:hover{background:var(--panel-alt)}.modal-actions button[type=submit]:hover{background:var(--accent-strong)}.modal-actions button:disabled{border-color:var(--line);background:var(--panel-alt);color:var(--muted);cursor:default}.editor-frame{scrollbar-color:var(--line) transparent;scrollbar-width:thin;flex:1;min-width:0;min-height:420px;border:0;background:transparent;overflow:auto}.editor-frame::-webkit-scrollbar{width:10px}.editor-frame::-webkit-scrollbar-track{background:transparent}.editor-frame::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:var(--line)}.editor-frame::-webkit-scrollbar-thumb:hover{background:#3a4250}.editor-loading{display:grid;place-items:center;color:var(--muted)}.live-markdown-editor{position:relative;padding:8px 24px 32px}.live-markdown-line{display:block;width:100%;min-height:30px;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:16px;font-weight:400;letter-spacing:0;line-height:1.65;margin:0;padding:3px 8px 3px 10px;text-align:left;white-space:pre-wrap}.live-markdown-line.preview{cursor:text}.live-markdown-line.active{resize:none;overflow:hidden;caret-color:transparent;outline:none;-moz-tab-size:2;tab-size:2}.active-line-wrap{position:relative}.active-render{min-height:30px;pointer-events:none}.active-render .preview-note-link{pointer-events:auto}.source-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;height:100%;color:transparent;background:transparent}.active-render{position:relative;z-index:3}.source-input::selection{background:transparent;color:transparent}.editor-caret{animation:caret-blink 1.1s steps(2,start) infinite;display:inline-block;width:0;height:1.25em;border-left:1.5px solid var(--accent-strong);margin-left:-.75px;vertical-align:-.18em}.remote-caret{position:relative;display:inline-block;width:8px;height:1.25em;border-left:2px solid var(--remote-caret-color, var(--accent));margin-right:-8px;vertical-align:-.18em}.active-render .remote-caret{pointer-events:auto}.remote-caret:after{position:absolute;top:-.32em;left:-3px;width:7px;height:7px;background:var(--remote-caret-color, var(--accent));content:""}.remote-caret:before{position:absolute;z-index:8;bottom:1.55em;left:-4px;max-width:180px;overflow:hidden;background:var(--remote-caret-color, var(--accent));color:#081017;content:attr(data-label);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:750;line-height:1.2;opacity:0;padding:3px 5px;pointer-events:none;text-overflow:ellipsis;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.remote-caret:hover:before{opacity:1;transform:translateY(0)}.editor-selection{background:#7dc4e447}.remote-selection{background:color-mix(in srgb,var(--remote-selection-color, var(--accent)) 28%,transparent)}@keyframes caret-blink{0%,45%{opacity:1}46%,to{opacity:0}}.line-heading{color:var(--text-strong);font-weight:800}.line-heading-1{font-size:30px;line-height:1.28}.line-heading-2{font-size:24px;line-height:1.34}.line-heading-3{font-size:20px;line-height:1.42}.line-heading-4,.line-heading-5,.line-heading-6{font-size:17px;line-height:1.5}.line-list{padding-left:28px}.line-quote{border-left-color:var(--line);color:#aeb8c9}.line-code-fence{color:#f5a97f;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.source-input,.source-input.line-heading,.source-input.line-quote,.source-input.line-code-fence{color:transparent;-webkit-text-fill-color:transparent}.preview-list{display:inline-flex;gap:8px}.preview-marker{color:var(--muted)}.preview-quote{display:block}.preview-inline-code{background:var(--panel-alt);color:#f5a97f;font-size:.92em;padding:1px 4px}.preview-note-link{border:0;background:transparent;color:var(--accent-strong);cursor:pointer;font:inherit;font-weight:inherit;padding:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.preview-note-link:hover{color:#c4ecff}.preview-note-link.missing{color:var(--danger);text-decoration-style:dotted}.preview-hidden-syntax{display:inline-block;visibility:hidden;width:2ch}.preview-hidden-syntax.open{margin-right:-1.85ch}.preview-hidden-syntax.close{margin-left:-1.85ch}.preview-wiki-syntax{color:var(--accent-strong);text-decoration:none}.preview-note-link.raw-label{cursor:text;pointer-events:none;text-decoration:underline}.preview-raw-token{color:var(--accent-strong);font:inherit}.preview-image-token{display:inline-grid;max-width:min(100%,760px);gap:8px;vertical-align:top}.preview-image-token img{display:block;max-width:min(100%,760px);max-height:420px;border:1px solid var(--line);object-fit:contain}.note-suggestion-menu{position:absolute;z-index:5;display:grid;width:min(360px,calc(100% - 20px));max-height:260px;overflow:auto;border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 40px #00000052}.note-suggestion-menu button{display:grid;gap:2px;border:0;background:transparent;color:var(--text);cursor:pointer;padding:8px 10px;text-align:left}.note-suggestion-menu button.active,.note-suggestion-menu button:hover{background:var(--panel-alt);color:var(--text-strong)}.note-suggestion-menu small{color:var(--muted);font-size:12px}.editor-upload-status{position:sticky;bottom:10px;width:max-content;border:1px solid var(--line);background:var(--panel);color:var(--accent-strong);font-size:13px;font-weight:750;margin:12px 0 0 auto;padding:7px 10px}.preview-empty{display:block;min-height:30px}.editor-error{margin:0;border-top:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);padding:12px 16px}.workspace-error{margin:12px 0 0;border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);padding:12px 14px}.graph-frame{min-width:0;min-height:0;flex:1;border:0;background:transparent}.graph-canvas{display:grid;height:100%;min-width:0;min-height:0;place-items:center;overflow:hidden}.graph-canvas svg{width:100%;max-width:720px;height:100%;min-height:300px}.graph-edge{stroke:#435166;stroke-linecap:round;stroke-width:2}.graph-node-group{cursor:pointer;outline:none}.graph-node{fill:var(--panel-alt);stroke:var(--accent);stroke-width:3}.graph-node.active{fill:var(--accent);stroke:var(--accent)}.graph-node-group:hover .graph-node,.graph-node-group:focus-visible .graph-node{fill:#263246}.graph-node-group:hover .graph-node.active,.graph-node-group:focus-visible .graph-node.active{fill:var(--accent-strong)}.graph-label{fill:var(--text);font-size:15px;font-weight:750;letter-spacing:0;paint-order:stroke;pointer-events:none;stroke:var(--bg);stroke-width:5px}.graph-empty,.graph-empty-list{color:var(--muted);font-size:14px}.graph-empty,.graph-empty-list{margin:0}@media(max-width:760px){.app-shell{height:auto;min-height:100vh;grid-template-columns:1fr}.sidebar{max-height:44vh;border-right:0;border-bottom:1px solid var(--line);padding:18px}.workspace{padding:0}.workspace-split{grid-template-columns:1fr}.editor-pane{border-right:0;border-bottom:1px solid var(--line)}}
