microscope-memory 1.2.0

Pure binary cognitive memory engine with REST API bridge for LLM integration. Zero-JSON core, mmap-based, hierarchical, sub-microsecond search.
Documentation
/* Mermaid PWA - Chat Styles */
#chat-tab { display:flex; flex-direction:column; height:100%; background:var(--bg); }
#chat-messages { flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px; }
.msg { max-width:90%; padding:10px 14px; border-radius:8px; font-size:13px; line-height:1.6; word-wrap:break-word; position:relative; animation:msgIn 0.2s ease-out; }
@keyframes msgIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
.msg.user { align-self:flex-end; background:var(--bg-2); color:var(--fg); border:1px solid var(--border); border-bottom-right-radius:2px; }
.msg.agent { align-self:flex-start; background:var(--bg-1); color:var(--fg); border:1px solid var(--border); border-bottom-left-radius:2px; }
.msg.system { align-self:center; background:transparent; color:var(--fg-2); font-size:11px; font-style:italic; max-width:100%; }
.msg.tool { align-self:flex-start; background:var(--bg-2); color:var(--accent-2); border:1px solid var(--accent-2); font-size:12px; font-family:inherit; white-space:pre-wrap; }
.msg.error { align-self:flex-start; background:rgba(255,68,68,0.08); color:var(--err); border:1px solid var(--err); }
.msg .role { font-size:10px; color:var(--fg-2); text-transform:uppercase; margin-bottom:4px; letter-spacing:0.5px; }
.msg .ts { font-size:10px; color:var(--fg-2); margin-top:4px; text-align:right; }
.msg.thinking { align-self:flex-start; background:var(--bg-1); color:var(--fg-1); border:1px dashed var(--border); display:flex; gap:6px; align-items:center; }
.spinner { display:inline-block; animation:spin 1s linear infinite; }
@keyframes spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
#chat-input-row { display:flex; gap:8px; padding:12px 16px; background:var(--bg-1); border-top:1px solid var(--border); align-items:flex-end; }
#chat-input { flex:1; background:var(--bg-2); color:var(--fg); border:1px solid var(--border); border-radius:6px; padding:10px 12px; font:inherit; font-size:13px; resize:none; max-height:200px; min-height:40px; outline:none; transition:border-color 0.15s; }
#chat-input:focus { border-color:var(--accent-dim); }
#chat-send, #chat-mic { background:var(--bg-2); color:var(--accent); border:1px solid var(--border); border-radius:6px; padding:8px 14px; font:inherit; font-size:13px; cursor:pointer; min-width:60px; transition:all 0.15s; }
#chat-send:hover, #chat-mic:hover { background:var(--bg-3); border-color:var(--accent); }
#chat-mic.recording { background:var(--err); color:var(--bg); border-color:var(--err); animation:pulse 1s infinite; }
.msg pre { background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:8px 10px; overflow-x:auto; margin:6px 0; font-size:12px; }
.msg code { background:var(--bg); padding:1px 4px; border-radius:2px; font-size:12px; color:var(--accent-2); }
.msg pre code { background:transparent; padding:0; color:var(--fg); }