:root{--bg: #ffffff;--bg-2: #f7f7f5;--sidebar: #fbfbfa;--text: #37352f;--text-dim: #787774;--text-faint: #9b9a97;--border: #ebeae8;--border-strong: #ddddd9;--accent: #2383e2;--accent-soft: #e7f0fb;--danger: #eb5757;--hover: #efefee;--radius: 6px;--shadow: 0 1px 4px rgba(15, 15, 15, .1), 0 4px 16px rgba(15, 15, 15, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{font-family:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);color:var(--text);font-weight:500;font-size:14px;transition:background .12s}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(.96)}.btn:disabled{opacity:.5;cursor:default}.input{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);font-size:15px;background:var(--bg);color:var(--text);outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-2)}.auth-card{width:100%;max-width:360px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:28px 26px}.auth-card h1{margin:0 0 4px;font-size:24px}.auth-card .sub{color:var(--text-dim);font-size:14px;margin:0 0 20px}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:4px}.err{color:var(--danger);font-size:13px;margin:6px 0 0;min-height:16px}.muted{color:var(--text-dim)}.toggle{background:none;border:none;color:var(--accent);padding:0;font-size:14px}.ProseMirror{outline:none;font-size:16px;line-height:1.6;color:var(--text);caret-color:var(--text);word-wrap:break-word;white-space:pre-wrap}.ProseMirror>*{margin:1px 0}.l-p{margin:1px 0;min-height:1.6em;padding:3px 2px}.l-h{font-weight:600;line-height:1.3;padding:3px 2px}h1.l-h{font-size:1.875em;font-weight:700;margin-top:1.4em}h2.l-h{font-size:1.5em;margin-top:1.1em}h3.l-h{font-size:1.25em;margin-top:.9em}.ProseMirror ul,.ProseMirror ol{padding-left:26px;margin:1px 0}.ProseMirror li{padding:2px 0}.l-tasks{list-style:none;padding-left:4px}.l-task{display:flex;align-items:flex-start;gap:8px}.l-task-body{flex:1}.l-check{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:18px;line-height:1.5;color:var(--text-dim)}.l-task.done .l-task-body{color:var(--text-faint);text-decoration:line-through}.l-quote{border-left:3px solid var(--text);padding:2px 0 2px 14px;margin:6px 0}.l-callout{display:flex;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:14px 16px;margin:6px 0}.l-callout-ico{font-size:18px}.l-callout-body{flex:1}.l-toggle{margin:2px 0;padding-left:22px;position:relative}.l-toggle:before{content:"▾";position:absolute;left:2px;color:var(--text-dim);font-size:11px;top:6px}.l-code{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:14px 16px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13.5px;line-height:1.5;margin:6px 0;overflow-x:auto;white-space:pre;-moz-tab-size:2;tab-size:2}.l-hr-wrap{padding:8px 0}.l-hr{border:none;border-top:1px solid var(--border-strong);margin:0}.l-img-wrap{margin:6px 0}.l-img{max-width:100%;border-radius:4px;display:block}.l-ic{background:#87837826;color:#eb5757;border-radius:3px;padding:1px 5px;font-family:SFMono-Regular,Consolas,monospace;font-size:.85em}.l-link{color:inherit;text-decoration:underline;text-decoration-color:var(--text-faint)}.ProseMirror .is-empty{position:relative}.ProseMirror .is-empty:before{content:attr(data-ph);position:absolute;left:2px;top:3px;color:var(--text-faint);pointer-events:none;height:0}.ProseMirror-yjs-cursor{position:relative;border-left:2px solid #333;margin-left:-1px;word-break:normal;pointer-events:none}.ProseMirror-yjs-cursor>div{position:absolute;top:-1.2em;left:-1px;font-size:11px;color:#fff;padding:1px 4px;border-radius:3px 3px 3px 0;white-space:nowrap}
