:root{--bg:#f4f5f7;--panel:#fff;--line:#e4e7ec;--text:#1f2328;--muted:#7a828e;--brand:#2563eb;--brand-soft:#e8efff;--danger:#d92d20;--ok:#12805c;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:#c5ccd6}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover:not(:disabled){filter:brightness(1.05)}button.danger{color:var(--danger)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.active{background:var(--brand-soft);color:var(--brand);border-color:#bcd0ff}input,select,textarea{border:1px solid var(--line);background:var(--panel);border-radius:6px;outline:none;min-width:0;padding:7px 10px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.muted{color:var(--muted);margin:0}.error{color:var(--danger);margin:4px 0 0}.ok{color:var(--ok);margin:0 0 8px}.spacer{flex:1}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:48px;padding:0 14px;display:flex}.brand{color:var(--brand);font-size:16px;font-weight:700;text-decoration:none}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:6px 10px;text-decoration:none}.topbar nav a.active{background:var(--brand-soft);color:var(--brand)}.sync{color:var(--muted);font-size:12px}.sync.ok{color:var(--ok)}.sync.error,.sync.offline{color:#b54708}.user{color:var(--muted)}.login-wrap{place-items:center;height:100%;padding:16px;display:grid}.login{flex-direction:column;gap:10px;width:320px;display:flex}.login h1{color:var(--brand);margin:0}.login button{padding:9px}.notes{grid-template-columns:300px 1fr;height:calc(100% - 48px);display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.side-head{gap:6px;padding:12px 12px 8px;display:flex}.side-head button{flex:1}.search{margin:0 12px 8px}.tags{flex-wrap:wrap;gap:6px;padding:0 12px 8px;display:flex}.chip{color:#3b4350;background:#f0f2f5;border:none;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.chip small{color:var(--muted)}.chip.active{background:var(--brand);color:#fff}.chip.active small{color:#dbe6ff}.list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.list li{cursor:pointer;border-bottom:1px solid #f0f2f5;padding:10px 14px}.list li:hover{background:#fafbfc}.list li.active{background:var(--brand-soft)}.list li.empty{color:var(--muted);cursor:default;text-align:center;padding:24px 14px}.row1{align-items:center;gap:6px;display:flex}.row1 strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.dot{background:#f79009;border-radius:50%;flex:none;width:7px;height:7px}.snippet{color:#4b5563;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;overflow:hidden}.meta{color:var(--muted);gap:8px;margin-top:4px;font-size:12px;display:flex}.cat{color:var(--brand)}.main{background:var(--panel);flex-direction:column;min-width:0;display:flex}.placeholder{color:var(--muted);margin:auto}.editor{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;display:flex}.status{color:var(--muted);font-size:12px}.back{display:none}.editor-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 20px;display:flex}.title{border:none;border-radius:0;padding:4px 0;font-size:20px;font-weight:600}.title:focus{box-shadow:none}.meta-row{gap:8px;display:flex}.meta-row input:first-child{flex:1}.meta-row input:last-child{width:140px}.ai-box{color:#334155;background:#f8faff;border:1px dashed #c7d7fe;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.ai-badge{background:var(--brand);color:#fff;border-radius:4px;padding:0 6px;font-size:11px;font-weight:600}.md-bar{border-bottom:1px solid #f0f2f5;flex-wrap:wrap;gap:4px;padding:2px 0 6px;display:flex}.md-bar button{min-width:34px;padding:3px 9px;font-size:13px}.lp-host{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1 1 0;min-width:0;min-height:0;display:block;overflow:hidden}.lp-host .cm-editor{outline:none;width:100%;height:100%}.lp-host .cm-editor.cm-focused{outline:none}.lp-host .cm-scroller{padding:12px 18px 48px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.8;overflow:auto}.lp-host .cm-content{caret-color:var(--brand)}.lp-host .cm-line{padding:0 2px}.cm-lp-h1{margin-top:.3em;font-size:1.7em;font-weight:700;line-height:1.5}.cm-lp-h2{margin-top:.3em;font-size:1.45em;font-weight:700;line-height:1.5}.cm-lp-h3{font-size:1.25em;font-weight:650;line-height:1.5}.cm-lp-h4,.cm-lp-h5,.cm-lp-h6{font-size:1.1em;font-weight:650;line-height:1.5}.cm-lp-strong{font-weight:700}.cm-lp-em{font-style:italic}.cm-lp-strike{color:#6b7280;text-decoration:line-through}.cm-lp-code{background:#f0f2f5;border-radius:4px;padding:1px 4px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.cm-lp-codeline{background:#f6f8fa;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.cm-lp-quote{color:#4b5563;background:#f8faff;border-left:4px solid #c7d7fe;padding-left:12px}.cm-lp-link{color:var(--brand);text-underline-offset:2px;cursor:text;text-decoration:underline}.cm-lp-bullet{width:1.4em;color:var(--brand);font-weight:700;display:inline-block}.cm-lp-check{vertical-align:-2px;cursor:pointer;color:#fff;-webkit-user-select:none;user-select:none;border:1.5px solid #aab3bf;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;margin:0 6px 0 2px;font-size:12px;line-height:1;display:inline-flex}.cm-lp-check.on{background:var(--brand);border-color:var(--brand)}.cm-lp-hr{border-top:1px solid var(--line);height:0;margin:.9em 0;display:block}.cm-lp-img{margin:6px 0;display:block}.cm-lp-img img{cursor:zoom-in;background:#f6f8fa;border-radius:8px;max-width:100%;max-height:360px;display:block}.viewer{z-index:50;cursor:zoom-out;background:#000000db;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:auto}.viewer img{object-fit:contain;cursor:zoom-in;max-width:100vw;max-height:100vh}.viewer.zoomed{justify-content:flex-start;align-items:flex-start}.viewer.zoomed img{cursor:zoom-out;max-width:none;max-height:none}.history{z-index:5;background:var(--panel);flex-direction:column;min-height:0;display:flex;position:absolute;inset:0}.hist-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;display:flex}.hist-body{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid}.timeline{border-right:1px solid var(--line);padding:6px 0 16px;overflow-y:auto}.empty{color:var(--muted);padding:16px;line-height:1.6}.tl-group h4{color:var(--muted);margin:14px 16px 2px;font-size:12px;font-weight:600}.tl-group ul{border-left:2px solid #e4e7ec;margin:0 0 0 18px;padding:0 8px 0 0;list-style:none}.tl-group li{cursor:pointer;border-radius:6px;margin-left:4px;padding:6px 10px 8px 14px;position:relative}.tl-group li:before{content:"";box-sizing:border-box;background:#fff;border:2px solid #aab3bf;border-radius:50%;width:10px;height:10px;position:absolute;top:13px;left:-7px}.tl-group li:hover{background:#fafbfc}.tl-group li.active{background:var(--brand-soft)}.tl-group li.active:before{border-color:var(--brand);background:var(--brand)}.tl-time{justify-content:space-between;gap:8px;font-weight:600;display:flex}.tl-stat{white-space:nowrap;font-size:12px;font-weight:500}.tl-snippet{color:#4b5563;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.add{color:var(--ok);font-weight:600}.del{color:var(--danger);font-weight:600}.diff{flex-direction:column;min-width:0;min-height:0;display:flex}.diff-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.diff-title{font-weight:600}.seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{border:none;border-radius:0}.seg button.active{background:var(--brand-soft);color:var(--brand)}.diff-view{flex:1;min-height:0;margin:0;padding:8px 0 24px;font-family:ui-monospace,Cascadia Code,Consolas,Microsoft YaHei,monospace;font-size:13.5px;line-height:1.75;overflow:auto}.dl{white-space:pre-wrap;word-break:break-word;min-height:1.75em;padding:0 16px;display:flex}.dl .sign{width:18px;color:var(--muted);-webkit-user-select:none;user-select:none;flex:none}.dl.add-line{background:#ecfdf3}.dl.del-line{background:#fef3f2}.hl-add{color:inherit;background:#abefc6;border-radius:3px}.hl-del{color:inherit;background:#fecdca;border-radius:3px}.diff-empty{color:var(--muted);padding:16px}.admin{flex-direction:column;gap:16px;width:100%;max-width:980px;height:calc(100% - 48px);margin:0 auto;padding:20px;display:flex;overflow:auto}.admin h2{margin:0 0 12px;font-size:16px}.admin table{border-collapse:collapse;width:100%}.admin th,.admin td{text-align:left;border-bottom:1px solid #f0f2f5;padding:8px 6px}.admin .actions{flex-wrap:wrap;gap:6px;display:flex}.row-form{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ai-form{flex-direction:column;gap:10px;max-width:520px;margin-top:8px;display:flex}.ai-form label{flex-direction:column;gap:4px;display:flex}.ai-form label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px}.toast{color:#fff;cursor:pointer;z-index:10;background:#1f2328;border-radius:8px;padding:8px 14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0003}@media (width<=768px){.notes{grid-template-columns:1fr}.notes .main,.notes.show-editor .sidebar{display:none}.notes.show-editor .main{display:flex}.back{display:inline-block}.meta-row{flex-direction:column}.meta-row input:last-child{width:100%}.hist-body{grid-template-rows:38% 1fr;grid-template-columns:1fr}.timeline{border-right:none;border-bottom:1px solid var(--line)}.user{display:none}.editor-body{padding:10px 12px}}
