@illli-studio/mory 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Mory Runtime
2
+
3
+ Local-first memory runtime with a web console and a generic MCP server.
4
+
5
+ ```bash
6
+ npm install -g @illli-studio/mory
7
+ mory init
8
+ mory start
9
+ mory status
10
+ mory stop
11
+ mory export ./mory-export.json
12
+ mory import ./mory-export.json
13
+ ```
14
+
15
+ For MCP clients, use `mory mcp` as a stdio server. Set `MORY_API_URL` and `MORY_API_TOKEN` when the API is managed separately.
16
+
17
+ The same package also exports the TypeScript client:
18
+
19
+ ```ts
20
+ import { MoryClient } from "@illli-studio/mory/client";
21
+ ```
@@ -0,0 +1,87 @@
1
+ import { createHash, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
2
+ import { mkdir, readFile } from "node:fs/promises";
3
+ import { dirname, resolve } from "node:path";
4
+ import { createServer } from "node:http";
5
+ import { DatabaseSync } from "node:sqlite";
6
+
7
+ const port = Number(process.env.MORY_PORT || 8787);
8
+ const token = process.env.MORY_API_TOKEN || randomBytes(24).toString("hex");
9
+ const databasePath = resolve(process.env.MORY_DATABASE || "./data/mory.sqlite");
10
+ const webDist = process.env.MORY_WEB_DIST ? resolve(process.env.MORY_WEB_DIST) : undefined;
11
+ const schemaVersion = 1;
12
+ await mkdir(dirname(databasePath), { recursive: true });
13
+ const db = new DatabaseSync(databasePath);
14
+ db.exec("PRAGMA journal_mode=WAL; PRAGMA foreign_keys=ON;");
15
+ db.exec("CREATE TABLE IF NOT EXISTS schema_meta (key TEXT PRIMARY KEY, value TEXT NOT NULL); CREATE TABLE IF NOT EXISTS memories (id TEXT PRIMARY KEY, text TEXT NOT NULL, title TEXT NOT NULL, kind TEXT NOT NULL, source TEXT NOT NULL, actor_type TEXT, actor_id TEXT, scope_json TEXT NOT NULL, metadata_json TEXT NOT NULL, tags_json TEXT NOT NULL, hash TEXT NOT NULL, confidence REAL NOT NULL, status TEXT NOT NULL, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, source_event_ids_json TEXT NOT NULL, embedding_json TEXT); CREATE INDEX IF NOT EXISTS memories_hash_idx ON memories(hash); CREATE TABLE IF NOT EXISTS raw_events (id TEXT PRIMARY KEY, content TEXT NOT NULL, source TEXT, actor_json TEXT, scope_json TEXT NOT NULL, created_at TEXT NOT NULL); CREATE TABLE IF NOT EXISTS events (id TEXT PRIMARY KEY, type TEXT NOT NULL, memory_id TEXT, source_event_id TEXT, old_hash TEXT, new_hash TEXT, actor_json TEXT, created_at TEXT NOT NULL); CREATE TABLE IF NOT EXISTS relations (id TEXT PRIMARY KEY, from_memory_id TEXT NOT NULL, to_memory_id TEXT NOT NULL, type TEXT NOT NULL, created_at TEXT NOT NULL); CREATE TABLE IF NOT EXISTS entities (id TEXT PRIMARY KEY, name TEXT NOT NULL, normalized TEXT NOT NULL UNIQUE, entity_type TEXT NOT NULL, linked_memory_ids_json TEXT NOT NULL); CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5(memory_id UNINDEXED, title, text, tags);");
16
+ const storedSchemaVersion = Number(db.prepare("SELECT value FROM schema_meta WHERE key = 'schemaVersion'").get()?.value || 0);
17
+ if (storedSchemaVersion > schemaVersion) throw new Error(`Mory database schema ${storedSchemaVersion} is newer than this runtime supports (${schemaVersion}).`);
18
+ if (storedSchemaVersion < schemaVersion) db.prepare("INSERT INTO schema_meta(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run("schemaVersion", String(schemaVersion));
19
+ const readJson = (value, fallback) => { try { return JSON.parse(value); } catch { return fallback; } };
20
+ const normalize = (value) => String(value || "").trim().toLowerCase().replace(/\s+/g, " ");
21
+ const digest = (value) => createHash("sha256").update(value).digest("hex");
22
+ const actor = (value) => value || { type: "agent", id: "api" };
23
+ function rowMemory(row) { return row && { id: row.id, text: row.text, title: row.title, kind: row.kind, source: row.source, actor: { type: row.actor_type || "agent", id: row.actor_id || undefined }, scope: readJson(row.scope_json, {}), metadata: readJson(row.metadata_json, {}), tags: readJson(row.tags_json, []), hash: row.hash, confidence: row.confidence, status: row.status, createdAt: row.created_at, updatedAt: row.updated_at, sourceEventIds: readJson(row.source_event_ids_json, []), embedding: readJson(row.embedding_json, undefined) }; }
24
+ function makeMemory(input, fallbackSource) { const text = String(input.text || input.content || input.payload?.content || "").trim(); if (!text) throw new Error("text is required"); const title = String(input.title || input.payload?.title || text.slice(0, 72)).trim(); const now = new Date().toISOString(); return { id: input.id || randomUUID(), text, title, kind: input.kind || "note", source: input.source || fallbackSource || "api", actor: actor(input.actor), scope: input.scope || {}, metadata: input.metadata || input.fields || {}, tags: Array.isArray(input.tags) ? input.tags : [], hash: input.hash || input.contentHash || digest(normalize(title + "\n" + text)), confidence: Number(input.confidence ?? 1), status: input.status || "active", createdAt: input.createdAt || now, updatedAt: now, sourceEventIds: input.sourceEventIds || [], embedding: input.embedding }; }
25
+ function inScope(memory, scope) { return Object.entries(scope || {}).every(([key, value]) => !value || memory.scope?.[key] === value); }
26
+ function allMemories(scope) { return db.prepare("SELECT * FROM memories WHERE status = 'active' ORDER BY updated_at DESC").all().map(rowMemory).filter((memory) => inScope(memory, scope)); }
27
+ function getMemory(id) { return rowMemory(db.prepare("SELECT * FROM memories WHERE id = ?").get(id)); }
28
+ function insert(memory) { db.prepare("INSERT INTO memories (id,text,title,kind,source,actor_type,actor_id,scope_json,metadata_json,tags_json,hash,confidence,status,created_at,updated_at,source_event_ids_json,embedding_json) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)").run(memory.id, memory.text, memory.title, memory.kind, memory.source, memory.actor.type, memory.actor.id || null, JSON.stringify(memory.scope), JSON.stringify(memory.metadata), JSON.stringify(memory.tags), memory.hash, memory.confidence, memory.status, memory.createdAt, memory.updatedAt, JSON.stringify(memory.sourceEventIds), memory.embedding ? JSON.stringify(memory.embedding) : null); db.prepare("INSERT INTO memory_fts(memory_id,title,text,tags) VALUES (?,?,?,?)").run(memory.id, memory.title, memory.text, memory.tags.join(" ")); }
29
+ function addEvent(type, memory, extra = {}) { db.prepare("INSERT INTO events(id,type,memory_id,source_event_id,old_hash,new_hash,actor_json,created_at) VALUES (?,?,?,?,?,?,?,?)").run(randomUUID(), type, memory?.id || null, extra.sourceEventId || null, extra.oldHash || null, extra.newHash || null, JSON.stringify(memory?.actor || extra.actor || {}), new Date().toISOString()); }
30
+ function linkEntities(memory) { for (const name of [...new Set(memory.text.match(/\b[A-Z][A-Za-z0-9_-]{2,}\b/g) || [])].slice(0, 20)) { const normalized = normalize(name); const existing = db.prepare("SELECT * FROM entities WHERE normalized = ?").get(normalized); if (existing) { const ids = new Set(readJson(existing.linked_memory_ids_json, [])); ids.add(memory.id); db.prepare("UPDATE entities SET linked_memory_ids_json = ? WHERE id = ?").run(JSON.stringify([...ids]), existing.id); } else db.prepare("INSERT INTO entities(id,name,normalized,entity_type,linked_memory_ids_json) VALUES (?,?,?,?,?)").run(randomUUID(), name, normalized, "concept", JSON.stringify([memory.id])); } }
31
+ function cosine(a, b) { if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length || !a.length) return 0; let dot = 0, aa = 0, bb = 0; for (let i = 0; i < a.length; i++) { dot += a[i] * b[i]; aa += a[i] ** 2; bb += b[i] ** 2; } return aa && bb ? dot / Math.sqrt(aa * bb) : 0; }
32
+ async function embed(text) { const key = process.env.MORY_EMBEDDING_API_KEY || process.env.MORY_LLM_API_KEY; if (!key) return undefined; const endpoint = (process.env.MORY_EMBEDDING_BASE_URL || process.env.MORY_LLM_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, "") + "/embeddings"; const response = await fetch(endpoint, { method: "POST", headers: { authorization: "Bearer " + key, "content-type": "application/json" }, body: JSON.stringify({ model: process.env.MORY_EMBEDDING_MODEL || "text-embedding-3-small", input: text }) }); if (!response.ok) return undefined; return (await response.json()).data?.[0]?.embedding; }
33
+ async function search(query, scope, limit) { const terms = normalize(query).split(" ").filter(Boolean); const vector = await embed(query); return allMemories(scope).map((memory) => { const haystack = normalize(memory.title + " " + memory.text + " " + memory.tags.join(" ") + " " + JSON.stringify(memory.metadata)); const keyword = terms.length ? terms.filter((term) => haystack.includes(term)).length / terms.length : 0; const semantic = cosine(vector, memory.embedding); return { memory, score: Math.min(1, semantic * 0.55 + keyword * 0.45) }; }).filter((item) => !terms.length || item.score > 0).sort((a, b) => b.score - a.score || b.memory.updatedAt.localeCompare(a.memory.updatedAt)).slice(0, limit || 10); }
34
+ function messageText(messages) { return typeof messages === "string" ? messages.trim() : (messages || []).map((message) => (message.role || "user") + ": " + (message.content || "")).join("\n").trim(); }
35
+ function fallbackCandidates(text, kind) { const chunks = text.split(/(?<=[.!?。!?])\s+|\n+/u).map((value) => value.trim()).filter((value) => value.length >= 24); return (chunks.length ? chunks : [text]).slice(0, 8).map((text) => ({ text, kind: kind || "note", confidence: 0.7 })); }
36
+ async function extract(input, related) { const text = messageText(input.messages || input.text || input.content); if (!process.env.MORY_LLM_API_KEY) return { extractor: "local-fallback", candidates: fallbackCandidates(text, input.kind) }; const endpoint = (process.env.MORY_LLM_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, "") + "/chat/completions"; const payload = { model: process.env.MORY_LLM_MODEL || "gpt-4o-mini", temperature: 0, response_format: { type: "json_object" }, messages: [{ role: "system", content: "Extract durable memories for future work. Exclude secrets, temporary reasoning, routine output, and filler. Return JSON with memories: [{text, kind, confidence, supersedes?}]." }, { role: "user", content: JSON.stringify({ newInput: text, relatedMemories: related.map((memory) => ({ id: memory.id, text: memory.text })) }) }] }; const response = await fetch(endpoint, { method: "POST", headers: { authorization: "Bearer " + process.env.MORY_LLM_API_KEY, "content-type": "application/json" }, body: JSON.stringify(payload) }); if (!response.ok) throw new Error("LLM extraction failed (" + response.status + ")"); const result = await response.json(); const parsed = JSON.parse(result.choices?.[0]?.message?.content || "{}"); return { extractor: "llm", candidates: Array.isArray(parsed.memories) ? parsed.memories : [] }; }
37
+ function authorized(request) { const supplied = Buffer.from((request.headers.authorization || "").replace(/^Bearer\s+/i, "")); const expected = Buffer.from(token); return supplied.length === expected.length && timingSafeEqual(supplied, expected); }
38
+ function send(response, status, result) { response.writeHead(status, { "content-type": "application/json; charset=utf-8", "access-control-allow-origin": process.env.MORY_CORS_ORIGIN || "http://127.0.0.1:" + port, "access-control-allow-headers": "authorization, content-type, x-request-id", "access-control-allow-methods": "GET, POST, PATCH, DELETE, OPTIONS" }); response.end(JSON.stringify(result)); }
39
+ async function sendWeb(response, pathname) {
40
+ if (!webDist) return false;
41
+ const relative = pathname === "/" ? "index.html" : pathname.replace(/^\/+/, "");
42
+ const safePath = resolve(webDist, relative);
43
+ if (!safePath.startsWith(webDist)) return false;
44
+ try {
45
+ const body = await readFile(safePath);
46
+ const type = safePath.endsWith(".html") ? "text/html; charset=utf-8" : safePath.endsWith(".js") ? "text/javascript; charset=utf-8" : safePath.endsWith(".css") ? "text/css; charset=utf-8" : safePath.endsWith(".svg") ? "image/svg+xml" : "application/octet-stream";
47
+ response.writeHead(200, { "content-type": type, "cache-control": safePath.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable" });
48
+ response.end(body);
49
+ return true;
50
+ } catch {
51
+ if (pathname !== "/" && !pathname.includes(".")) return sendWeb(response, "/");
52
+ return false;
53
+ }
54
+ }
55
+ async function requestBody(request) { const maxBytes = 2 * 1024 * 1024; if (Number(request.headers["content-length"] || 0) > maxBytes) throw new Error("request body exceeds 2 MiB limit"); let raw = ""; let size = 0; for await (const chunk of request) { size += chunk.length; if (size > maxBytes) throw new Error("request body exceeds 2 MiB limit"); raw += chunk; } return raw ? JSON.parse(raw) : {}; }
56
+ async function backupGithub(input) {
57
+ if (!input.token || !input.owner || !input.repo) throw new Error("GitHub backup needs token, owner and repo.");
58
+ const base = "https://api.github.com/repos/" + encodeURIComponent(input.owner) + "/" + encodeURIComponent(input.repo) + "/contents";
59
+ const headers = { Accept: "application/vnd.github+json", Authorization: "Bearer " + input.token, "Content-Type": "application/json", "X-GitHub-Api-Version": "2022-11-28" };
60
+ const branch = input.branch || "main";
61
+ async function current(path) { const response = await fetch(base + "/" + path.split("/").map(encodeURIComponent).join("/") + "?ref=" + encodeURIComponent(branch), { headers }); return response.ok ? (await response.json()).sha : undefined; }
62
+ async function put(path, content, message) { const sha = await current(path); const response = await fetch(base + "/" + path.split("/").map(encodeURIComponent).join("/"), { method: "PUT", headers, body: JSON.stringify({ message, content, branch, ...(sha ? { sha } : {}) }) }); if (!response.ok) throw new Error("GitHub backup failed (" + response.status + ")"); }
63
+ db.exec("PRAGMA wal_checkpoint(TRUNCATE)");
64
+ const sqlite = await readFile(databasePath);
65
+ const jsonSnapshot = JSON.stringify({ schemaVersion: 3, exportedAt: new Date().toISOString(), memories: allMemories({}) }, null, 2);
66
+ const sqlitePath = input.sqlitePath || "mory/mory.sqlite";
67
+ const jsonPath = input.jsonPath || "mory/memories.json";
68
+ await put(sqlitePath, sqlite.toString("base64"), "backup: update Mory SQLite repository");
69
+ await put(jsonPath, Buffer.from(jsonSnapshot).toString("base64"), "backup: update Mory JSON snapshot");
70
+ return { sqlitePath, jsonPath, count: allMemories({}).length };
71
+ }
72
+ const server = createServer(async (request, response) => { if (request.method === "OPTIONS") return send(response, 204, {}); const url = new URL(request.url, "http://localhost"); if (url.pathname === "/health") return send(response, 200, { ok: true, service: "mory-api", storage: "sqlite", schemaVersion, search: "bm25+optional-vector" }); if (url.pathname === "/runtime-config") return send(response, 200, { apiUrl: `http://127.0.0.1:${port}`, token }); if (request.method === "GET" && !url.pathname.startsWith("/v1/") && await sendWeb(response, url.pathname)) return; if (!authorized(request)) return send(response, 401, { error: "invalid token" }); try {
73
+ if (request.method === "GET" && url.pathname === "/v1/memories") { const memories = allMemories({ userId: url.searchParams.get("userId"), projectId: url.searchParams.get("projectId") }); const limit = Math.min(200, Math.max(1, Number(url.searchParams.get("limit") || 50))); return send(response, 200, { memories: memories.slice(0, limit), total: memories.length }); }
74
+ if (request.method === "POST" && url.pathname === "/v1/memories/search") { const input = await requestBody(request); return send(response, 200, { results: await search(input.query || "", input.scope || {}, Number(input.limit || 10)) }); }
75
+ if (request.method === "POST" && url.pathname === "/v1/context") { const input = await requestBody(request); const results = await search(input.query || "", input.scope || {}, Number(input.limit || 12)); const memories = results.map((item) => item.memory); return send(response, 200, { query: input.query || "", memories, context: memories.map((memory) => `- ${memory.text}`).join("\n") }); }
76
+ if (request.method === "POST" && url.pathname === "/v1/memories/remember") { const input = await requestBody(request); const text = messageText(input.messages || input.text || input.content); if (!text) return send(response, 400, { error: "messages or text is required" }); const rawId = randomUUID(); const scope = input.scope || {}; db.prepare("INSERT INTO raw_events(id,content,source,actor_json,scope_json,created_at) VALUES (?,?,?,?,?,?)").run(rawId, text, input.source || "agent", JSON.stringify(actor(input.actor)), JSON.stringify(scope), new Date().toISOString()); const extracted = await extract(input, (await search(text, scope, 10)).map((item) => item.memory)); const added = [], duplicates = []; for (const candidate of extracted.candidates) { const memory = makeMemory({ ...candidate, source: input.source || "agent", actor: actor(input.actor), scope, metadata: { ...(input.metadata || {}), ...(candidate.metadata || {}) }, sourceEventIds: [rawId], embedding: await embed(candidate.text) }, "agent"); const duplicate = allMemories(scope).find((item) => item.hash === memory.hash); if (duplicate) { duplicates.push(duplicate); continue; } insert(memory); addEvent("ADD", memory, { sourceEventId: rawId }); linkEntities(memory); if (candidate.supersedes) { db.prepare("INSERT INTO relations(id,from_memory_id,to_memory_id,type,created_at) VALUES (?,?,?,?,?)").run(randomUUID(), memory.id, candidate.supersedes, "supersedes", memory.createdAt); db.prepare("UPDATE memories SET status = 'superseded', updated_at = ? WHERE id = ?").run(memory.updatedAt, candidate.supersedes); } added.push(memory); } return send(response, 201, { eventId: rawId, extractor: extracted.extractor, memories: added, duplicates, addedCount: added.length }); }
77
+ if (request.method === "POST" && url.pathname === "/v1/memories") { const memory = makeMemory(await requestBody(request)); const duplicate = allMemories(memory.scope).find((item) => item.hash === memory.hash); if (duplicate) return send(response, 200, { memory: duplicate, duplicate: true }); insert(memory); addEvent("ADD", memory); linkEntities(memory); return send(response, 201, { memory, duplicate: false }); }
78
+ const match = url.pathname.match(/^\/v1\/memories\/([^/]+)$/);
79
+ if (match && request.method === "GET") { const memory = getMemory(match[1]); return memory ? send(response, 200, { memory }) : send(response, 404, { error: "memory not found" }); }
80
+ if (match && request.method === "PATCH") { const current = getMemory(match[1]); if (!current) return send(response, 404, { error: "memory not found" }); db.prepare("DELETE FROM memory_fts WHERE memory_id = ?").run(current.id); db.prepare("DELETE FROM memories WHERE id = ?").run(current.id); const next = makeMemory({ ...current, ...await requestBody(request), id: current.id, sourceEventIds: [...current.sourceEventIds, current.id] }, current.source); insert(next); addEvent("UPDATE", next, { oldHash: current.hash, newHash: next.hash }); return send(response, 200, { memory: next }); }
81
+ if (match && request.method === "DELETE") { const memory = getMemory(match[1]); if (!memory) return send(response, 404, { error: "memory not found" }); db.prepare("UPDATE memories SET status = 'deleted', updated_at = ? WHERE id = ?").run(new Date().toISOString(), memory.id); db.prepare("DELETE FROM memory_fts WHERE memory_id = ?").run(memory.id); addEvent("DELETE", memory); return send(response, 200, { ok: true }); }
82
+ if (request.method === "GET" && url.pathname === "/v1/export") return send(response, 200, { schemaVersion: 1, exportedAt: new Date().toISOString(), memories: allMemories({}) });
83
+ if (request.method === "POST" && url.pathname === "/v1/import") { const input = await requestBody(request); if (!Array.isArray(input.memories)) return send(response, 400, { error: "memories array is required" }); const added = [], duplicates = []; for (const item of input.memories.slice(0, 10000)) { const memory = makeMemory(item); const duplicate = allMemories(memory.scope).find((candidate) => candidate.hash === memory.hash); if (duplicate) { duplicates.push(duplicate.id); continue; } if (getMemory(memory.id)) { duplicates.push(memory.id); continue; } insert(memory); addEvent("IMPORT", memory); linkEntities(memory); added.push(memory); } return send(response, 201, { addedCount: added.length, duplicateCount: duplicates.length, memories: added }); }
84
+ if (request.method === "POST" && url.pathname === "/v1/backup/github") return send(response, 200, await backupGithub(await requestBody(request)));
85
+ return send(response, 404, { error: "not found" });
86
+ } catch (error) { return send(response, 400, { error: error instanceof Error ? error.message : "bad request" }); } });
87
+ server.listen(port, "127.0.0.1", () => console.log("Mory API listening on http://127.0.0.1:" + port + " (" + databasePath + ")"));
@@ -0,0 +1 @@
1
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-10{height:calc(var(--spacing) * 10)}.min-h-24{min-height:calc(var(--spacing) * 24)}.w-full{width:100%}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-\[var\(--radius-ui\)\]{border-radius:var(--radius-ui)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border-soft)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--bg)}.bg-card{background-color:var(--surface)}.bg-destructive{background-color:var(--danger)}.bg-primary{background-color:var(--text)}.bg-secondary{background-color:var(--surface-muted)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--text)}.text-destructive-foreground{color:var(--surface)}.text-foreground{color:var(--text)}.text-primary-foreground{color:var(--surface)}.text-secondary-foreground{color:var(--text)}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--bg)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted)}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--surface-muted)}.hover\:bg-destructive\/90:hover{background-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--danger) 90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--text) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--surface-muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--surface-muted) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--text)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:#b8d6cb}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}}:root{--background:48 20% 95%;--foreground:225 15% 11%;--card:60 100% 99%;--card-foreground:225 15% 11%;--popover:60 100% 99%;--popover-foreground:225 15% 11%;--primary-foreground:60 100% 99%;--secondary:48 18% 94%;--secondary-foreground:225 10% 25%;--muted-foreground:220 6% 46%;--accent-foreground:161 45% 26%;--destructive:5 57% 39%;--ring:161 45% 26%;--radius:12px;--radius-ui:12px;--radius-pill:999px;--bg:#f5f4f0;--surface:#fffffc;--surface-muted:#f7f6f1;--surface-raised:#fffffceb;--border:#dedbd3;--border-soft:#e7e4dc;--text:#17191f;--muted:#70757d;--primary:225 15% 11%;--primary-hover:#2a2d35;--accent:#245f51;--danger:#9d352b;--radius-sm:var(--radius-ui);--radius-md:var(--radius-ui);--radius-lg:var(--radius-ui);--shadow-soft:0 18px 54px #191c2314;--shadow-menu:0 18px 48px #191c2324;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.ui-select-trigger{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-muted);width:100%;min-height:42px;color:var(--text);justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-weight:850;display:inline-flex}.ui-select-content{z-index:200;min-width:var(--radix-select-trigger-width);border:1px solid var(--border);border-radius:var(--radius-ui);background:var(--surface-raised);box-shadow:var(--shadow-menu);padding:6px;overflow:hidden}.ui-select-item{border-radius:var(--radius-ui);min-height:38px;color:var(--text);outline:none;justify-content:space-between;align-items:center;padding:0 10px;font-size:14px;display:flex;position:relative}.ui-select-item[data-highlighted]{background:var(--surface-muted)}.ui-tabs-list{display:flex}.ui-tabs-trigger[data-state=active]{border-color:var(--text);background:var(--text);color:var(--surface)}.ui-dialog-overlay{z-index:100;background:#17191f2e;position:fixed;inset:0}.ui-dialog-content{z-index:101;border:1px solid var(--border);border-radius:var(--radius-ui);background:var(--surface);width:min(560px,100% - 32px);box-shadow:var(--shadow-soft);padding:22px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-dialog-close{color:var(--muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:14px;right:14px}.ui-dropdown-content{z-index:300;border:1px solid var(--border);border-radius:var(--radius-ui);background:var(--surface-raised);min-width:190px;box-shadow:var(--shadow-menu);padding:6px;overflow:hidden}.ui-dropdown-item{border-radius:var(--radius-ui);min-height:38px;color:var(--text);outline:none;align-items:center;padding:0 10px;display:flex}.ui-dropdown-item[data-highlighted]{background:var(--surface-muted)}.ui-dropdown-item .bookmark-import{border-radius:var(--radius-ui);width:100%;min-height:38px;box-shadow:none;background:0 0;border:0;justify-content:flex-start}*{box-sizing:border-box}body{min-width:0;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.product-header,.workspace-layout,.feed-section{width:min(1480px,100%);margin:0 auto}.product-header{justify-content:space-between;align-items:center;min-height:52px;margin-bottom:12px;padding:0 4px;display:flex}.brand-lockup,.header-actions,.card-title,.mini-signal,.connector-item,.memory-card-top,.memory-card footer,.section-heading,.sync-actions,.memory-tags{align-items:center;display:flex}.brand-lockup{gap:12px}@media(min-width:1121px){.product-header .brand-lockup{opacity:0;pointer-events:none}}.brand-glyph{border:1px solid var(--border-soft);background:var(--surface);width:42px;height:42px;color:var(--text);border-radius:14px;place-items:center;display:grid;box-shadow:0 8px 22px #191c230f}.brand-glyph.logo-mark{width:56px;height:56px;box-shadow:none;background:0 0;border:0}.product-header .brand-glyph.logo-mark{width:52px;height:52px}.brand-lockup strong,.brand-lockup span{display:block}.brand-lockup strong{letter-spacing:0;font-size:18px}.brand-lockup span,.hero-copy p,.section-heading p,.memory-card p,.empty-feed p,.tag-stack.empty,.mini-signal,.connector-item strong{color:#6c7078}.status-chip{border:1px solid var(--border);background:#ffffffb8;border-radius:999px;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.workspace-layout{z-index:5;grid-template-columns:218px minmax(0,1fr);align-items:start;gap:12px;display:grid;position:relative}.workspace-nav{z-index:60;border:1px solid var(--border);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#fffffcd1;border-radius:24px;min-width:0;padding:12px;position:sticky;top:14px;box-shadow:0 14px 42px #191c2312}.nav-brand-card{width:100%;min-height:76px;color:var(--text);text-align:left;cursor:pointer;box-shadow:none;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;margin-bottom:18px;padding:8px 4px;display:flex}.nav-brand-card:hover{color:var(--text);background:#f7f6f1b8;border-color:#0000}.nav-brand-card .brand-glyph{width:60px;height:60px;color:var(--accent);box-shadow:none;background:0 0;border:0}.nav-brand-card strong,.nav-brand-card span{display:block}.nav-brand-card span{color:var(--muted);font-size:12px;font-weight:760}.nav-section-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:14px 6px 8px;font-size:11px;font-weight:950}.record-nav-list,.shortcut-list{gap:6px;display:grid}.record-nav-list.measure-only,.settings-tabs.measure-only{visibility:hidden;pointer-events:none;position:absolute;left:12px;right:12px;overflow:hidden}.record-nav-list button,.shortcut-list button{min-height:38px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:14px;align-items:center;gap:9px;font-weight:850;display:grid}.record-nav-list button{text-align:left;grid-template-columns:18px minmax(0,1fr) auto;padding:0 10px}.record-nav-list button:hover,.shortcut-list button:hover{border-color:var(--border-soft);background:var(--surface-muted)}.record-nav-list strong{color:var(--muted);font-size:12px}.shortcut-list button{color:#4d535c;justify-content:start;padding:0 10px}.utility-nav-list{gap:4px;display:grid}.utility-nav-button{color:#4d535c;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:18px minmax(0,1fr) 14px;align-items:center;gap:9px;width:100%;min-height:36px;padding:0 10px;font-size:12px;font-weight:820;display:grid}.utility-nav-button svg:last-child{color:var(--muted);transform:rotate(-90deg)}.utility-nav-button:hover,.utility-nav-button.active{border-color:var(--border-soft);background:var(--surface-muted);color:var(--text)}.utility-nav-button.active svg:last-child{color:var(--accent);transform:rotate(0)}.workspace-main{gap:12px;min-width:0;display:grid}.console-main,.console-side,.feed-section{border:1px solid var(--border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#fffffcc7}.console-main{min-width:0;min-height:unset;border-radius:24px;align-content:start;gap:12px;padding:clamp(16px,2.4vw,24px);display:grid;overflow:hidden}.hero-copy,.workbench-intro{max-width:100%}.eyebrow{color:#2d6b5c;letter-spacing:0;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:900;display:inline-flex}.workbench-intro{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;display:grid}.workbench-intro h1{letter-spacing:-.04em;margin:6px 0 0;font-size:clamp(30px,4vw,48px);line-height:1}.today-strip{grid-template-columns:repeat(3,96px);gap:8px;display:grid}.today-strip .metric{background:#f7f6f1c7;border-radius:14px;padding:10px}.today-strip .metric strong{margin-top:4px;font-size:20px}.capture-console,.search-row,.command-bar,.side-card,.notice,.memory-card,.empty-feed{border:1px solid var(--border);background:var(--surface)}.capture-console{border-radius:22px;min-width:0;padding:16px;overflow:visible;box-shadow:0 12px 34px #191c230f}.record-mode-shell{border:1px solid var(--border-soft);background:linear-gradient(180deg,#f7f6f1b8,#fffffce0),var(--surface-muted);border-radius:20px;min-width:0;margin-bottom:10px;padding:10px;position:relative;overflow:visible}.record-mode-current{align-items:center;gap:11px;padding:4px 4px 10px;display:flex}.record-mode-orb{background:var(--text);width:42px;height:42px;color:var(--surface);border-radius:15px;place-items:center;display:grid;box-shadow:0 12px 28px #191c2324}.record-mode-current strong,.record-mode-current span{display:block}.record-mode-current strong{font-size:15px}.record-mode-current span{color:var(--muted);margin-top:2px;font-size:12px;font-weight:760}.record-mode-tabs{gap:7px;min-width:0;max-width:100%;padding-bottom:2px;display:flex;overflow:hidden}.record-mode-tabs.measure-only{visibility:hidden;pointer-events:none;position:absolute;left:10px;right:10px}.record-mode-select{border:1px solid var(--border-soft);background:var(--surface);width:100%;min-height:42px;color:var(--text);border-radius:14px;outline:none;padding:0 12px;font-weight:850;display:none}.record-mode-select.visible{display:block}.record-mode-tabs button{border:1px solid var(--border-soft);color:#555961;background:#fffffcb8;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-size:13px;font-weight:900;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.record-mode-tabs button:hover,.record-mode-tabs button.active{background:var(--text);border-color:var(--text);color:var(--surface);box-shadow:0 10px 22px #191c2324}.record-mode-tabs button:hover{transform:translateY(-1px)}.capture-top{color:#656a73;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:42px;padding:0 4px;display:grid}.capture-top input,.capture-console textarea,.capture-bottom input,.search-row input,.command-bar input,.sync-grid input,.token-input{width:100%;color:var(--text);background:0 0;border:none;outline:none}.capture-top input{font-weight:850}.capture-console textarea{resize:vertical;border:1px solid var(--border-soft);background:#f7f6f1c2;border-radius:18px;min-height:108px;padding:14px;line-height:1.6}.capture-console textarea.chat-textarea{background:linear-gradient(180deg,#fffffcbd,#f7f6f1b8),var(--surface-muted);border-radius:18px;min-height:142px;padding:14px}.scene-fields{gap:8px;min-width:0;display:grid}.scene-panel{border:1px solid var(--border-soft);background:#f7f6f19e;border-radius:18px;margin:8px 0;padding:8px}.scene-empty{min-height:42px;color:var(--muted);align-items:center;margin:0;padding:0 10px;font-size:13px;font-weight:760;display:flex}.scene-fields.bill-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.1fr) minmax(128px,150px)}.scene-fields input{border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:42px;color:var(--text);border:1px solid #0000;outline:none;padding:0 12px}.scene-fields select{border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:42px;color:var(--text);border:1px solid #0000;outline:none;padding:0 12px;font-weight:760}.scene-fields input:focus,.scene-fields select:focus,.capture-console textarea:focus,.capture-top input:focus,.capture-bottom input:focus{background:var(--surface);border-color:#c7d8d0;box-shadow:0 0 0 3px #245f5114}.scene-fields.finance-fields{grid-template-columns:minmax(0,1fr) 96px minmax(0,1.2fr) minmax(0,1.2fr)}.scene-fields.task-fields{grid-template-columns:minmax(128px,150px) minmax(128px,160px) minmax(0,1fr)}.capture-bottom{grid-template-columns:minmax(140px,160px) minmax(0,1fr) 104px 118px;gap:8px;min-width:0;margin-top:10px;display:grid}.capture-bottom input,.sync-grid input,.token-input{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-muted);min-height:42px;padding:0 12px}.capture-bottom button,.sync-actions button,.ghost-button,.source-trigger,.source-menu button{border-radius:var(--radius-md);border:none;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:900;display:inline-flex}.capture-hint{color:var(--muted);margin:10px 2px 0;font-size:13px;font-weight:760}.source-select{z-index:30;width:100%;min-width:0;position:relative}.source-select.open{z-index:80}.inline-select{z-index:45;width:100%;min-width:0;position:relative}.inline-select.open{z-index:90}.inline-trigger{border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:42px;color:var(--text);border:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-weight:850;display:inline-flex}.inline-trigger svg{color:var(--muted);transition:transform .16s}.inline-trigger.open,.inline-trigger:hover{border-color:#c7d8d0;box-shadow:0 0 0 3px #245f5114}.inline-trigger.open svg{transform:rotate(180deg)}.inline-menu{z-index:30;border:1px solid var(--border);background:var(--surface-raised);box-shadow:var(--shadow-menu);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;min-width:140px;padding:8px;position:absolute;top:calc(100% + 8px);left:0;right:0}.inline-menu button{color:#3d4148;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;width:100%;min-height:38px;padding:0 10px;font-size:14px;font-weight:780;display:inline-flex}.inline-menu button:hover,.inline-menu button.selected{background:var(--surface-muted);color:var(--text)}.source-trigger{border:1px solid var(--border-soft);background:var(--surface-muted);width:100%;min-width:160px;height:42px;color:var(--text);justify-content:space-between;padding:0 12px;font-size:15px;font-weight:850;transition:background .14s,border-color .14s,box-shadow .14s}.source-trigger svg{color:var(--muted);transition:transform .16s}.source-trigger:hover,.source-trigger.open{background:var(--surface);border-color:#d4d0c6;box-shadow:0 0 0 3px #17191f0a}.source-trigger.open svg{transform:rotate(180deg)}.source-menu{z-index:20;border:1px solid var(--border);background:var(--surface-raised);box-shadow:var(--shadow-menu);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;min-width:160px;padding:8px;position:absolute;top:calc(100% + 8px);left:0;right:0}.source-menu button{color:#3d4148;width:100%;min-height:40px;box-shadow:none;background:0 0;border:none;justify-content:space-between;padding:0 11px;font-size:15px;font-weight:760}.source-menu button:hover,.source-menu button.selected{background:var(--surface-muted);color:var(--text)}.capture-bottom button,.primary-action{border:1px solid var(--border-soft);background:var(--surface);color:var(--text);box-shadow:0 8px 22px #191c230f}.capture-bottom button:hover,.primary-action:hover{background:var(--surface-muted);border-color:#d4d0c6}.capture-bottom .clipboard-action{background:var(--surface-muted);box-shadow:none;color:#4d535c}.capture-bottom button[type=submit]{background:var(--text);border-color:var(--text);color:var(--surface);box-shadow:0 14px 30px #191c232e}.capture-bottom button[type=submit]:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.source-select .source-menu button,.capture-bottom .source-select .source-menu button{color:#3d4148;width:100%;min-height:40px;box-shadow:none;background:0 0;border:none;border-radius:12px;justify-content:space-between;padding:0 11px;font-size:15px;font-weight:760}.source-select .source-menu button:hover,.source-select .source-menu button.selected,.capture-bottom .source-select .source-menu button:hover,.capture-bottom .source-select .source-menu button.selected{background:var(--surface-muted);color:var(--text)}.search-row,.command-bar{border-radius:18px;grid-template-columns:minmax(0,1fr) 160px;gap:8px;padding:8px;display:grid}.command-bar{border:1px solid var(--border);background:var(--surface);box-shadow:0 10px 30px #191c230d}.advanced-filters{border:1px solid var(--border);background:var(--surface);border-radius:18px;grid-template-columns:110px repeat(4,minmax(0,1fr));gap:8px;padding:8px;display:grid}.advanced-filters>span{color:var(--muted);align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:850;display:inline-flex}.advanced-filters input,.advanced-filters select{border:1px solid var(--border-soft);background:var(--surface);min-height:38px;color:var(--text);border-radius:999px;outline:none;padding:0 14px;box-shadow:0 6px 18px #191c230a}.search-input{color:#71757d;align-items:center;gap:10px;padding:0 10px;display:flex}.notice{border-radius:14px;padding:12px 14px;font-weight:850}.notice.good{color:#1f6a55;background:#eff7f2}.notice.bad{color:#9d352b;background:#fff0ed}.console-side{border-radius:24px;gap:10px;padding:12px;display:grid;position:sticky;top:14px}.utility-drawer-backdrop{z-index:90;cursor:default;background:#17191f29;border:0;position:fixed;inset:0}.utility-drawer{z-index:100;border:1px solid var(--border);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#fffffcf5;border-radius:24px;width:min(390px,100vw - 36px);padding:14px;animation:.16s ease-out utility-drawer-in;position:fixed;top:18px;bottom:18px;right:18px;overflow-y:auto;box-shadow:0 26px 80px #191c2338}.utility-drawer-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 4px 14px;display:flex}.utility-drawer-header h2{letter-spacing:-.03em;margin:5px 0 0;font-size:22px}.utility-drawer-close{border:1px solid var(--border-soft);background:var(--surface-muted);width:34px;height:34px;color:var(--muted);border-radius:12px;font-size:22px;line-height:1}.utility-drawer-close:hover{color:var(--text);background:var(--surface)}.capture-modal-backdrop{z-index:110;cursor:default;background:#17191f47;border:0;position:fixed;inset:0}.capture-modal{z-index:120;border:1px solid var(--border);background:#fffffcfa;border-radius:26px;width:min(820px,100vw - 32px);height:min(760px,100vh - 48px);max-height:calc(100vh - 48px);padding:18px;animation:.16s ease-out capture-modal-in;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 30px 100px #191c2342}.capture-modal-body{scrollbar-width:thin;scrollbar-color:#b8b8b2 transparent;flex:1;min-height:0;padding-right:8px;overflow:hidden auto}.capture-modal{flex-direction:column;display:flex}.capture-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:2px 2px 14px;display:flex}.capture-modal-header h2{letter-spacing:-.04em;margin:5px 0 0;font-size:clamp(22px,3vw,30px)}.capture-modal .capture-console{box-shadow:none;border:0;padding:0}.capture-modal .source-select.open,.capture-modal .inline-select.open{z-index:150}@keyframes capture-modal-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.utility-panel-tabs{gap:6px;padding:0 4px 12px;display:flex;overflow-x:auto}.utility-panel-tabs button{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:32px;color:var(--muted);border-radius:999px;flex:none;padding:0 10px;font-size:12px;font-weight:850}.utility-panel-tabs button.active,.utility-panel-tabs button:hover{border-color:var(--text);background:var(--text);color:var(--surface)}.utility-drawer .side-card{box-shadow:none}@keyframes utility-drawer-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.side-card{border-radius:18px;padding:14px}.card-title{gap:9px;margin-bottom:14px}.card-title h3,.section-heading h2,.memory-card h3,.empty-feed h3{margin:0}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.metric{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:16px;padding:12px}.metric span,.metric strong{display:block}.metric span{color:var(--muted);font-size:12px}.metric strong{margin-top:8px;font-size:24px}.mini-signal{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:14px;justify-content:space-between;gap:8px;margin:12px 0;padding:10px;font-size:13px;font-weight:800}.tag-stack,.connector-list{gap:8px;display:grid}.tag-stack:not(.empty){flex-wrap:wrap;display:flex}.tag-stack button,.memory-tags button{color:#245f51;background:#f6f5f0;border:1px solid #e1ded7;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}.tag-stack button span{color:#72767e;margin-left:6px}.tag-stack.empty{grid-template-columns:18px minmax(0,1fr);align-items:center;font-size:13px}.settings-content{max-width:1120px}.sync-card{max-width:1080px;padding:0 0 4px}.sync-card .card-title{align-items:flex-start;gap:12px;margin-bottom:20px}.sync-card .card-title h3{letter-spacing:-.02em;font-size:19px}.sync-card-subtitle{color:var(--muted);margin-top:4px;font-size:12px;font-weight:700;display:block}.sync-config-section,.sync-security-section{border:1px solid var(--border-soft);background:linear-gradient(#fffffcdb,#f7f6f194);border-radius:20px;padding:18px}.sync-connection-card{border:1px solid var(--border-soft);background:linear-gradient(#fffffcdb,#f7f6f194);border-radius:20px;overflow:hidden}.sync-connection-card .sync-config-section,.sync-connection-card .sync-security-section{background:0 0;border:0;border-radius:0}.sync-connection-card .sync-security-section{margin-top:0;padding-top:0}.sync-config-section{grid-template-columns:180px minmax(0,1fr);align-items:end;gap:12px 16px;display:grid}.sync-config-section .sync-section-heading{grid-column:1/-1}.sync-config-section .language-field{margin:0}.sync-section-heading{align-items:baseline;gap:10px;min-width:0;margin-bottom:2px;display:flex}.sync-section-heading strong{color:var(--text);font-size:14px}.sync-section-heading span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.sync-security-section{grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:12px;margin-top:12px;display:grid}.sync-security-section .token-input{margin:0}.sync-auto-option{color:var(--text);cursor:pointer;background:#eff8f3;border:1px solid #cfe4d8;border-radius:16px;align-items:center;gap:12px;margin:12px 0;padding:13px 15px;display:flex}.sync-auto-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.sync-auto-option span{gap:2px;display:grid}.sync-auto-option small{color:var(--muted);font-size:12px;font-weight:650}.token-input{margin:8px 0}.sync-actions{align-items:center;gap:8px;padding-top:4px;display:flex}.sync-actions .primary-action{flex:1;min-height:48px;font-size:14px}.sync-actions button:not(.primary-action){background:var(--surface-muted);width:42px;color:var(--text)}.sync-guide-button{border:1px solid var(--border);border-radius:var(--radius-ui);min-height:42px;color:var(--text);background:var(--surface-muted);justify-content:center;align-items:center;gap:8px;margin-top:10px;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s;display:flex}.sync-guide-button:hover{border-color:var(--accent);background:var(--surface)}.connector-list{gap:6px}.collection-list{gap:8px;display:grid}.collection-list button{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:38px;color:var(--text);border-radius:14px;justify-content:space-between;align-items:center;padding:0 10px;font-weight:850;display:flex}.collection-list strong{color:var(--muted);font-size:12px}.empty-note,.sync-note,.sync-warning{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.sync-note,.sync-warning{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:12px;margin-bottom:8px;padding:9px 10px;font-weight:760}.sync-warning{color:var(--danger);background:#fff0ed;border-color:#efc9c2}.connector-item{border-radius:12px;gap:10px;min-height:40px}.connector-item span{flex:1;font-weight:850}.connector-item strong{font-size:12px}.feed-section{z-index:1;border-radius:24px;padding:16px;position:relative}.settings-page{border:1px solid var(--border);min-width:0;min-height:620px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#fffffcc7;border-radius:24px;padding:clamp(20px,3vw,34px)}.settings-page-header{justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:24px;display:flex}.settings-page-header h1{letter-spacing:-.05em;margin:7px 0 0;font-size:clamp(30px,4vw,46px)}.settings-page-header p{color:var(--muted);margin:8px 0 0}.language-setting{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:14px;gap:6px;min-width:150px;padding:12px 14px;display:grid}.language-setting label{color:var(--muted);font-size:11px;font-weight:850}.language-setting select{border:1px solid var(--border-soft);background:var(--surface);min-height:32px;color:var(--text);font:inherit;border-radius:9px;padding:0 8px;font-size:12px;font-weight:750}.language-setting small{color:var(--muted);font-size:10px}.settings-tabs{border-bottom:1px solid var(--border-soft);gap:8px;padding:0 0 18px;display:flex;overflow:hidden}.settings-tabs.measure-only{display:flex;overflow:hidden}.settings-select{max-width:360px}.settings-tabs button{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:38px;color:var(--muted);border-radius:999px;flex:none;padding:0 14px;font-size:13px;font-weight:850}.settings-tabs button.active,.settings-tabs button[data-state=active],.settings-tabs button:hover{border-color:var(--text);background:var(--text);color:var(--surface)}.settings-content .side-card{background:0 0;border:0;padding:0}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-heading .feed-actions{margin-left:8px}.section-heading p{margin:4px 0 0}.feed-summary{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:12px;font-weight:800;display:flex}.feed-summary span{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:999px;padding:7px 10px}.feed-summary strong{color:var(--text);margin-right:3px}.ghost-button{background:var(--surface-muted);color:#3d4148;padding:0 14px}.feed-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.feed-controls{border:1px solid var(--border);background:var(--surface);border-radius:18px;grid-template-columns:minmax(240px,1.8fr) 145px 64px repeat(4,minmax(100px,1fr));align-items:center;gap:8px;padding:8px;display:grid}.feed-controls .search-input,.feed-controls .advanced-filters>span,.feed-controls .advanced-filters>input{min-width:0}.feed-controls .advanced-filters>span{grid-column:3}.feed-controls .advanced-filters>button.inline-trigger:first-of-type{grid-column:4}.feed-controls .advanced-filters>button.inline-trigger:nth-of-type(2){grid-column:5}.feed-controls .advanced-filters>input{grid-column:6}.feed-controls .advanced-filters>button.inline-trigger:nth-of-type(3){grid-column:7}.memory-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.memory-card{border-radius:18px;align-content:start;gap:10px;min-height:218px;padding:14px;display:grid}.memory-card.selected{border-color:#b8d6cb;box-shadow:0 0 0 3px #245f5114}.memory-card-top{justify-content:space-between}.memory-card-top span,.memory-card-top strong{color:#555961;text-transform:uppercase;background:#f3f2ed;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.memory-card p{-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0;line-height:1.58;display:-webkit-box;overflow:hidden}.scene-preview{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:16px;padding:10px}.bill-preview{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;display:grid}.bill-preview strong{letter-spacing:-.03em;font-size:24px}.bill-preview span{color:var(--text);font-weight:850}.bill-preview em{color:var(--muted);grid-column:1/-1;font-size:12px;font-style:normal;font-weight:820}.finance-preview strong{color:#245f51}.chat-preview,.bookmark-preview{color:var(--accent);align-items:center;gap:8px;font-size:13px;font-weight:880;display:flex}.status-preview{color:var(--accent);grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px;font-weight:880;display:grid}.status-preview em{color:var(--muted);font-size:12px;font-style:normal}.waiting-preview{color:#7b5d21}.memory-url{color:var(--accent);overflow-wrap:anywhere;font-size:13px;font-weight:780;text-decoration:none}.memory-tags{flex-wrap:wrap;gap:7px}.card-actions{flex-wrap:wrap;gap:7px;display:flex}.card-actions label,.card-actions button,.bookmark-import,.context-pack button{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:34px;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex}.card-actions input{margin:0}.edit-stack{gap:8px;display:grid}.edit-stack input,.edit-stack textarea{border:1px solid var(--border-soft);background:var(--surface-muted);width:100%;color:var(--text);border-radius:12px;outline:none;padding:10px}.edit-stack textarea{resize:vertical;min-height:120px;line-height:1.5}.context-pack{background:#eff7f2;border:1px solid #b8d6cb;border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.context-pack-main{align-items:center;gap:12px;min-width:0;display:flex}.context-pack span{color:var(--muted);font-size:13px;line-height:1.4}.context-icon{width:36px;height:36px;color:var(--accent);background:#fffffcb8;border:1px solid #c9ded5;border-radius:12px;flex:none;place-items:center;display:grid}.context-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.context-actions select{border:1px solid var(--border-soft);background:var(--surface);min-height:34px;color:var(--text);border-radius:999px;padding:0 10px;font-size:12px;font-weight:850;box-shadow:0 6px 18px #191c230a}.feed-tools{justify-content:flex-end;margin-top:14px;display:flex}.bookmark-import{cursor:pointer;position:relative}.bookmark-import input{opacity:0;cursor:pointer;position:absolute;inset:0}.memory-card footer{color:#777b83;justify-content:space-between;margin-top:auto;font-size:12px}.memory-card footer button{border:1px solid var(--border-soft);background:var(--surface-muted);color:var(--text);border-radius:999px;min-height:30px;padding:0 10px;font-size:12px;font-weight:850}.drawer-backdrop{z-index:100;background:#17191f2e;justify-content:flex-end;display:flex;position:fixed;inset:0}.memory-drawer{border-left:1px solid var(--border);background:var(--surface);align-content:start;gap:18px;width:min(560px,100%);height:100vh;padding:22px;display:grid;overflow:auto;box-shadow:-24px 0 70px #191c2329}.memory-drawer header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.memory-drawer h2{margin:8px 0 0;font-size:30px;line-height:1.05}.memory-drawer header button,.drawer-actions button{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:38px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:850;display:inline-flex}.drawer-grid{gap:12px;display:grid}.drawer-grid label{color:var(--muted);gap:7px;font-size:12px;font-weight:850;display:grid}.drawer-grid input,.drawer-grid textarea{border:1px solid var(--border-soft);background:var(--surface-muted);width:100%;color:var(--text);border-radius:14px;outline:none;padding:11px}.drawer-grid textarea{resize:vertical;min-height:220px;line-height:1.55}.drawer-meta,.drawer-actions{flex-wrap:wrap;gap:8px;display:flex}.drawer-meta span{border:1px solid var(--border-soft);background:var(--surface-muted);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:820}.drawer-summary,.drawer-fields{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:16px;padding:14px}.drawer-fields>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.drawer-fields span{border:1px solid var(--border-soft);background:var(--surface);min-height:48px;color:var(--text);border-radius:14px;gap:3px;padding:8px 10px;font-weight:850;display:grid}.drawer-fields em{color:var(--muted);text-transform:uppercase;font-size:11px;font-style:normal}.drawer-summary p{color:var(--muted);margin:8px 0 0;line-height:1.55}.empty-feed{text-align:center;border-style:dashed;border-radius:20px;align-content:center;place-items:center;gap:8px;min-height:260px;display:grid}@media(max-width:1120px){.workspace-layout,.memory-grid{grid-template-columns:1fr}.workspace-nav{order:-1;position:static}.nav-brand-card{display:flex}.record-nav-list{padding-bottom:4px;display:flex;overflow:hidden}.record-nav-list.measure-only{display:flex;overflow:hidden}.record-nav-list button{flex:none;min-width:128px}.shortcut-list{grid-template-columns:repeat(3,minmax(0,1fr))}.console-side{order:2;position:static}}@media(max-width:680px){.product-shell{padding:8px}.product-header,.section-heading,.settings-page-header{display:grid}.language-setting{width:100%}.header-actions{flex-wrap:wrap}.console-main,.console-side,.feed-section,.workspace-nav{border-radius:18px}.workbench-intro{grid-template-columns:1fr;align-items:start}.workbench-intro h1{font-size:34px;line-height:1}.today-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.capture-bottom,.search-row,.command-bar,.sync-grid,.context-pack,.advanced-filters,.record-mode-tabs,.scene-fields.bill-fields,.scene-fields.finance-fields,.scene-fields.task-fields,.drawer-fields>div{grid-template-columns:1fr}.context-actions,.feed-actions,.feed-summary{justify-content:flex-start}.capture-console{padding:12px}.record-mode-current{align-items:flex-start}.record-mode-tabs{padding-bottom:6px}.feed-section{padding:12px}.settings-page{min-height:0;padding:16px}.settings-content,.sync-card{max-width:none}.sync-config-section,.sync-security-section{grid-template-columns:1fr}.sync-config-section .sync-section-heading,.sync-security-section .sync-section-heading{grid-column:auto}.sync-section-heading{gap:3px;display:grid}.memory-card{min-height:0}}.memory-list-header{border:1px solid var(--border);background:var(--surface-muted);min-height:42px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;border-bottom:0;border-radius:18px 18px 0 0;grid-template-columns:108px 150px minmax(260px,1fr) 120px 110px 96px;align-items:center;gap:12px;padding:0 14px;font-size:12px;font-weight:900;display:grid}.memory-grid{border:1px solid var(--border);background:var(--surface);border-radius:0 0 18px 18px;display:block;overflow:hidden}.memory-card{border:0;border-bottom:1px solid var(--border-soft);background:var(--surface);min-height:76px;box-shadow:none;cursor:pointer;border-radius:0;grid-template-columns:108px 150px minmax(260px,1fr) 120px 110px 96px;align-items:center;gap:12px;padding:11px 14px;display:grid}.memory-list-header.selection-mode,.memory-card.selection-mode{grid-template-columns:36px 108px 150px minmax(260px,1fr) 120px 110px}.selection-toggle{min-height:30px;padding:0 8px;font-size:11px;font-weight:700}.memory-selection-cell{place-items:center;display:grid}.memory-card:last-child{border-bottom:0}.memory-card:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.memory-time,.memory-entity span,.memory-category span{color:var(--muted);font-size:12px}.memory-entity{gap:3px;min-width:0;display:grid}.memory-entity strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.memory-content-cell{min-width:0}.memory-title-button{max-width:100%;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;font-weight:850;overflow:hidden}.memory-title-button:hover{color:var(--accent)}.memory-content-cell p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:12px;line-height:1.35;display:block;overflow:hidden}.memory-category{justify-items:start;gap:4px;min-width:0;display:grid}.memory-category [data-slot=button],.memory-life [data-slot=badge]{border:1px solid var(--border-soft);background:var(--surface-muted);color:var(--accent);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850}.memory-category span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.memory-life{align-items:center;gap:8px;display:flex}.memory-life strong{color:var(--muted);font-size:12px}.memory-card .card-actions{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:center;gap:5px;min-width:0;display:grid;overflow:hidden}.memory-card .card-actions>*{white-space:nowrap;justify-content:center;width:100%;min-width:0}.memory-card .card-actions label{justify-self:end;width:auto;min-width:76px}@media(max-width:1450px)and (min-width:1121px){.workspace-layout{grid-template-columns:188px minmax(0,1fr)}.memory-list-header,.memory-card{grid-template-columns:74px 88px minmax(130px,1fr) 76px 76px 82px;gap:8px}.memory-list-header.selection-mode,.memory-card.selection-mode{grid-template-columns:30px 74px 88px minmax(130px,1fr) 76px 76px}.memory-list-header{padding-left:10px;padding-right:10px;font-size:10px}.memory-card{padding-left:10px;padding-right:10px}.memory-card .card-actions{gap:4px}.memory-card .card-actions label,.memory-card .card-actions button{padding-left:7px;padding-right:7px;font-size:11px}}@media(max-width:1120px){.memory-list-header,.memory-card{grid-template-columns:92px 130px minmax(220px,1fr) 100px 94px 82px}.memory-list-header.selection-mode,.memory-card.selection-mode{grid-template-columns:32px 92px 130px minmax(220px,1fr) 100px 94px}}@media(max-width:780px){.memory-list-header{display:none}.memory-grid{border-radius:18px}.memory-card{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px}.memory-card.selection-mode{grid-template-columns:28px minmax(0,1fr) auto}.memory-selection-cell{grid-area:1/1}.memory-time{grid-area:1/1/auto/2}.memory-card.selection-mode .memory-time{grid-column:2}.memory-entity{grid-area:1/2;justify-items:end}.memory-card.selection-mode .memory-entity{grid-column:3}.memory-content-cell,.memory-category,.memory-life,.memory-card .card-actions{grid-column:1/-1}.memory-card .card-actions{justify-content:flex-start}.feed-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.feed-actions .bookmark-import,.feed-actions [data-slot=button]{width:100%}}.feed-actions [data-slot=button],.feed-actions .bookmark-import{min-height:36px;box-shadow:none;border-radius:999px}.memory-title-button{min-height:0;box-shadow:none;line-height:1.35}.memory-category [data-slot=button]{min-height:26px;box-shadow:none;border-radius:999px;padding:0 8px;font-size:11px}.card-actions [data-slot=button]{min-height:30px;box-shadow:none;border-radius:999px;font-size:12px}.context-actions [data-slot=button]{min-height:34px;box-shadow:none;border-radius:999px}.ui-dropdown-item .bookmark-import{width:100%;min-height:38px;box-shadow:none;background:0 0;border:0;border-radius:10px;justify-content:flex-start}.memory-card .memory-title-button:hover{transform:none}@media(max-width:900px){.feed-controls{grid-template-columns:minmax(0,1fr) minmax(130px,.7fr)}.feed-controls .search-input,.feed-controls .command-bar>button.source-trigger,.feed-controls .advanced-filters>span{grid-column:1/-1}.feed-controls .advanced-filters>button.inline-trigger:first-of-type,.feed-controls .advanced-filters>button.inline-trigger:nth-of-type(2),.feed-controls .advanced-filters>input,.feed-controls .advanced-filters>button.inline-trigger:nth-of-type(3){grid-column:auto}}[data-slot=button]{border:1px solid #0000;border-radius:6px;min-height:40px;font-weight:500;transition:color .14s,background-color .14s,border-color .14s,box-shadow .14s,transform .14s}[data-slot=button][data-variant=default]{background:var(--text);color:var(--surface);border-color:var(--text)}[data-slot=button][data-variant=secondary]{background:var(--surface-muted);color:var(--text);border-color:var(--border-soft)}[data-slot=button][data-variant=outline]{background:var(--surface);color:var(--text);border-color:var(--border-soft)}[data-slot=button][data-variant=ghost]{color:var(--text);background:0 0;border-color:#0000}[data-slot=button][data-variant=destructive]{background:var(--danger);color:var(--surface);border-color:var(--danger)}[data-slot=button]:not(:disabled):hover{transform:translateY(-1px)}[data-slot=button][data-variant=default]:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary-hover)}[data-slot=button][data-variant=secondary]:not(:disabled):hover,[data-slot=button][data-variant=outline]:not(:disabled):hover,[data-slot=button][data-variant=ghost]:not(:disabled):hover{background:var(--surface-muted);border-color:var(--border-soft)}[data-slot=button][data-variant=destructive]:not(:disabled):hover{background:#7f2b24;border-color:#7f2b24}[data-slot=button]:focus-visible{outline:none;box-shadow:0 0 0 3px #245f5126}[data-slot=button]:disabled{cursor:not-allowed;opacity:.5}.memory-category [data-slot=button]{background:var(--surface-muted);border-color:var(--border-soft);color:var(--accent)}.memory-category [data-slot=button]:not(:disabled):hover{background:var(--surface);border-color:var(--border);color:var(--text)}[data-slot=badge]{border-color:var(--border-soft);background:var(--surface-muted);color:var(--accent);font-size:11px;font-weight:700}[data-slot=input]:focus-visible,[data-slot=textarea]:focus-visible{border-color:#b8d6cb;outline:none;box-shadow:0 0 0 3px #245f5121}.nav-brand-card[data-slot=button],.nav-brand-card[data-slot=button]:hover,.nav-brand-card[data-slot=button]:focus-visible{box-shadow:none;background:0 0;border-color:#0000}.nav-brand-card[data-slot=button]:hover{background:#f7f6f1b8}:root{--bg:#f1f3f2;--surface:#fff;--surface-muted:#f5f7f6;--surface-raised:#fffffffa;--border:#dce4e0;--border-soft:#e8eeeb;--text:#17221f;--muted:#6c7a75;--accent:#1f6b58;--primary-hover:#264b40;--shadow-soft:0 14px 40px #19352c12}body{background:var(--bg)}.product-shell{background:radial-gradient(circle at 8% -8%,#dbf1e8d9,transparent 28%),linear-gradient(180deg,#f7faf8 0%,var(--bg) 48%,#edf1ef 100%);min-height:100vh;padding:20px clamp(12px,2.5vw,36px) 40px}.product-header{width:min(1560px,100%);min-height:58px;margin-bottom:16px;padding:0 4px}.product-header .brand-lockup{opacity:1;pointer-events:auto}.brand-lockup strong,.nav-brand-card strong{letter-spacing:-.02em}.brand-lockup span{color:var(--muted);margin-top:2px;font-size:12px;font-weight:700}.header-actions{gap:10px}.status-chip{border-color:var(--border-soft);background:var(--surface-muted);height:32px;color:var(--muted);font-size:12px}.status-chip.good{color:var(--accent);background:#eef8f3;border-color:#cfe5da}.status-chip.syncing,.status-chip.synced{color:var(--accent)}.status-chip.error{color:#b94a48;border-color:#b94a48}@supports (color:color-mix(in lab,red,red)){.status-chip.error{border-color:color-mix(in srgb,#b94a48 30%,var(--border-soft))}}.status-chip-spin{animation:1s linear infinite status-chip-spin}@keyframes status-chip-spin{to{transform:rotate(360deg)}}.workspace-layout{grid-template-columns:232px minmax(0,1fr);gap:18px;width:min(1560px,100%)}.workspace-nav,.feed-section,.settings-page{border-color:var(--border);box-shadow:var(--shadow-soft);background:#ffffffd1;border-radius:20px}.workspace-nav{padding:14px;top:20px}.nav-brand-card{min-height:72px;margin-bottom:20px;padding:8px 6px}.nav-section-label{color:#87948f;letter-spacing:.11em;margin-top:18px;font-size:10px}.record-nav-list,.shortcut-list{gap:3px}.record-nav-list button,.shortcut-list button,.utility-nav-button{border-radius:11px;min-height:40px;font-size:13px}.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{color:var(--accent);background:#eef7f2;border-color:#d8e7e0}.record-nav-list button.active{color:var(--accent);background:#eaf6f0;border-color:#d3e8de}.sidebar-more{border-top:1px solid var(--border-soft);margin-top:8px;padding-top:8px}.sidebar-more .source-trigger{min-width:0;min-height:38px;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;font-size:12px}.sidebar-more .source-trigger:hover{border-color:var(--border-soft);background:var(--surface-muted);color:var(--text);box-shadow:none}.sidebar-footer{border-top:1px solid var(--border-soft);margin-top:18px;padding-top:10px}.sidebar-footer .utility-nav-button{color:var(--muted)}.feed-controls{border-color:var(--border-soft);background:#f8faf9;border-radius:16px;grid-template-columns:minmax(220px,1fr) 150px;gap:10px;padding:10px}.feed-controls .command-bar,.feed-controls .advanced-filters{display:contents}.feed-controls .search-input{grid-column:1}.feed-controls .command-bar>button.source-trigger{grid-column:2}.feed-controls .advanced-filters{grid-column:1/-1;grid-template-columns:auto repeat(4,minmax(110px,1fr));align-items:center;gap:8px;display:grid}.feed-controls .advanced-filters>*{min-width:0;display:inline-flex;grid-column:auto!important}.feed-controls .advanced-filters>span{color:var(--muted);align-items:center;gap:6px;padding:0 4px;font-size:12px;font-weight:800}.search-input,.source-trigger{border-radius:12px;min-height:44px}.search-input{border:1px solid var(--border-soft);background:var(--surface);box-shadow:none}.search-input:focus-within{border-color:#9bc8b5;box-shadow:0 0 0 3px #1f6b581a}.search-input [data-slot=input]{height:42px;min-height:42px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;font-size:15px}.search-input [data-slot=input]:focus,.search-input [data-slot=input]:focus-visible{box-shadow:none;border:0;outline:none}.section-heading{align-items:end;gap:16px;margin:24px 2px 14px}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(22px,2.2vw,30px)}.section-heading p{color:var(--muted);font-size:13px}.feed-summary{gap:6px}.feed-summary span{border-color:var(--border-soft);background:#f6f8f7;padding:6px 9px;font-size:11px}.feed-actions{gap:7px}.feed-actions [data-slot=button],.feed-actions .bookmark-import{border-radius:10px;min-height:38px;padding-inline:12px}.capture-cta[data-slot=button]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 18px #1f6b582e}.capture-cta[data-slot=button]:hover{background:#185643;border-color:#185643}.memory-grid{border-color:var(--border-soft);border-radius:14px}.memory-list-header{border-color:var(--border-soft);letter-spacing:.08em;background:#f5f8f6;min-height:38px;font-size:10px}.memory-card{border-bottom-color:var(--border-soft);min-height:72px;transition:background .14s,box-shadow .14s}.memory-card.selected{box-shadow:inset 3px 0 0 var(--accent);background:#edf8f2}.memory-title-button{font-size:13px}.memory-content-cell p{color:#7a8983}.settings-page{padding:clamp(18px,3vw,36px)}@media(max-width:900px){.feed-controls{grid-template-columns:1fr 150px}.feed-controls .advanced-filters>*{display:inline-flex}}@media(max-width:680px){.product-shell{padding:10px 8px 24px}.product-header{min-height:50px;margin-bottom:10px}.header-actions{margin-top:8px}.workspace-layout{gap:10px}.workspace-nav{padding:10px}.nav-brand-card{min-height:58px;margin-bottom:10px}.compact-record-nav{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.compact-record-nav button{min-width:0}.feed-controls{grid-template-columns:1fr}.feed-controls .search-input,.feed-controls .command-bar>button.source-trigger{grid-column:1}.feed-controls .advanced-filters{grid-template-columns:1fr}.feed-controls .advanced-filters>*{width:100%}.section-heading{align-items:start;margin-top:20px}.section-heading .feed-summary{order:3;width:100%}.feed-actions{width:100%}.feed-actions [data-slot=button],.feed-actions .bookmark-import{flex:1;justify-content:center}}.record-nav-list{display:grid;overflow:visible}.record-nav-list.measure-only{visibility:visible;pointer-events:auto;position:static}@media(max-width:1120px){.record-nav-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.record-nav-list button{min-width:0}.record-nav-list button strong{display:none}}@media(max-width:680px){.record-nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.memory-list-header{grid-template-columns:108px 150px minmax(260px,1fr) 120px 110px}.memory-list-header.selection-mode{grid-template-columns:36px 108px 150px minmax(260px,1fr) 120px 110px}.selection-header-label{color:var(--accent);text-transform:none;letter-spacing:0}.selection-toolbar-button[data-slot=button]{border-radius:10px;min-height:38px}.capture-modal{height:auto;max-height:min(780px,100vh - 32px);top:5vh;transform:translate(-50%)}@media(max-width:1450px)and (min-width:1121px){.memory-list-header{grid-template-columns:74px 88px minmax(130px,1fr) 76px 76px}.memory-list-header.selection-mode{grid-template-columns:30px 74px 88px minmax(130px,1fr) 76px 76px}}@media(max-width:1120px){.memory-list-header{grid-template-columns:92px 130px minmax(220px,1fr) 100px 94px}.memory-list-header.selection-mode{grid-template-columns:32px 92px 130px minmax(220px,1fr) 100px 94px}}@media(max-width:780px){.selection-header-label{display:none}.capture-modal{max-height:calc(100vh - 32px);top:16px}}@media(max-width:1180px){.product-shell{padding-inline:16px}.workspace-layout{grid-template-columns:1fr;gap:12px}.workspace-nav{order:-1;width:100%;position:static}.nav-brand-card{width:auto;min-width:210px;margin-bottom:0}.workspace-nav{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:18px;display:grid}.workspace-nav .nav-section-label{display:none}.workspace-nav .all-memory-list{gap:4px;min-width:0;display:flex}.workspace-nav .all-memory-list button{flex:none}.workspace-nav .all-types-list{grid-area:2/1/auto/-1;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:6px}.sidebar-footer{border-top:0;margin-top:0;padding-top:0}}@media(max-width:760px){.product-header{align-items:flex-start}.workspace-nav{display:block}.nav-brand-card{width:100%;margin-bottom:10px}.workspace-nav .all-memory-list,.workspace-nav .all-types-list{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0;display:grid}.sidebar-footer{border-top:1px solid var(--border-soft);margin-top:14px;padding-top:10px}.feed-controls{grid-template-columns:1fr}.feed-controls .search-input,.feed-controls .command-bar>button.source-trigger{grid-column:1}.feed-controls .advanced-filters{grid-template-columns:1fr}.feed-controls .advanced-filters>*{width:100%}}.sync-layout{grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);align-items:start;gap:14px;display:grid}.sync-column{flex-direction:column;gap:10px;min-width:0;display:flex}.sync-config-section,.sync-security-section{margin:0;padding:15px}.sync-config-section{grid-template-columns:1fr;gap:12px;display:grid}.sync-config-section .language-field{grid-template-columns:1fr;gap:5px;display:grid}.sync-grid,.sync-security-section{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.sync-security-section .sync-section-heading{grid-column:1/-1}.sync-auto-option{margin:0}.sync-note,.sync-warning{margin:0;padding:10px 12px;font-size:12px;line-height:1.45}@media(max-width:860px){.sync-layout{grid-template-columns:1fr}}@media(max-width:520px){.sync-grid,.sync-security-section{grid-template-columns:1fr}.sync-security-section .sync-section-heading{grid-column:auto}}@media(min-width:761px)and (max-width:1180px)and (orientation:portrait){.product-shell{padding:18px 16px 32px}.product-header,.workspace-layout{width:min(760px,100%);max-width:760px;margin-inline:auto}.product-header{align-items:center}.workspace-nav{padding:14px 16px;display:block}.nav-brand-card{width:100%;min-width:0;margin-bottom:14px}.workspace-nav .nav-section-label{margin-top:12px;display:block}.workspace-nav .all-memory-list,.workspace-nav .all-types-list{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:0;display:grid}.workspace-nav .all-memory-list button{grid-column:1/-1}.workspace-nav .all-types-list button{gap:6px;min-width:0;min-height:36px;padding-inline:8px;font-size:12px}.workspace-nav .all-types-list button strong{font-size:11px;display:inline}.sidebar-footer{border-top:1px solid var(--border-soft);margin-top:12px;padding-top:10px}.feed-section,.settings-page{width:100%;max-width:760px;margin-inline:auto}.feed-controls{grid-template-columns:1fr}.feed-controls .search-input,.feed-controls .command-bar>button.source-trigger{grid-column:1}.feed-controls .advanced-filters{background:0 0;border:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.feed-controls .advanced-filters>span{grid-column:1/-1!important}.section-heading{grid-template-columns:1fr auto;align-items:end;display:grid}.section-heading .feed-summary{order:3;grid-column:1/-1;margin-left:0}.section-heading .feed-actions{justify-content:flex-end}}@media(max-width:760px)and (orientation:portrait){.workspace-nav{border-radius:16px;padding:10px 12px}.workspace-nav .nav-brand-card,.workspace-nav .nav-section-label{display:none}.workspace-nav .all-memory-list,.workspace-nav .all-types-list{margin:0}.workspace-nav .all-memory-list button{min-height:34px}.workspace-nav .all-types-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.workspace-nav .all-types-list button{min-height:32px;padding-inline:6px;font-size:11px}.workspace-nav .all-types-list button strong{display:none}.sidebar-footer{margin-top:6px;padding-top:6px}.feed-controls .advanced-filters{background:0 0;border:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.feed-controls .advanced-filters>span{grid-column:1/-1!important}.feed-controls .advanced-filters>*{width:auto;min-width:0}.feed-controls .advanced-filters .inline-trigger{min-width:0;padding-inline:10px;font-size:12px}}@media(min-width:900px){.memory-list-header,.memory-card{grid-template-columns:34px 110px 150px minmax(220px,1fr) 130px 110px;gap:14px}.memory-card{min-height:68px;padding-block:8px}.memory-entity span,.memory-content-cell p,.memory-category span{display:none}.memory-content-cell,.memory-title-button,.memory-entity,.memory-category,.memory-life{min-width:0}.memory-title-button,.memory-entity strong,.memory-time,.memory-category [data-slot=button]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.memory-life{white-space:nowrap}.memory-list-header.selection-mode,.memory-card.selection-mode{grid-template-columns:34px 110px 150px minmax(220px,1fr) 130px 110px}.feed-controls{grid-template-columns:minmax(0,1fr) 160px 150px 176px 176px!important;gap:10px!important}.feed-controls .advanced-filters{display:contents!important}}.feed-controls{border-bottom:0;margin-bottom:14px;padding-bottom:0}.feed-section>.notice{margin:0 0 14px}.feed-section>.memory-list-header{margin-top:0}@media(min-width:900px){.feed-controls{grid-template-columns:minmax(0,1fr) 160px 150px 176px 176px!important;gap:10px!important}.feed-controls .advanced-filters{display:contents!important}}[data-theme=midnight]{--bg:#101522;--surface:#171d2c;--surface-muted:#1d2638;--surface-raised:#1c2435fa;--border:#33405a;--border-soft:#29354d;--text:#ecf1ff;--muted:#9aa8c2;--accent:#8b9cff;--primary-hover:#303b64;--shadow-soft:0 14px 40px #00000047;--shadow-menu:0 18px 48px #0006;--background:222 30% 9%;--foreground:220 40% 96%;--card:222 28% 14%;--card-foreground:220 40% 96%;--popover:222 28% 14%;--popover-foreground:220 40% 96%;--primary-foreground:222 30% 9%;--secondary:222 25% 19%;--secondary-foreground:220 30% 88%;--muted-foreground:220 18% 68%;--accent-foreground:230 100% 88%;--ring:230 100% 80%}[data-theme=ocean]{--bg:#eef7fa;--surface:#fff;--surface-muted:#f2f9fb;--surface-raised:#fffffffa;--border:#cfe3e8;--border-soft:#deedf0;--text:#16323d;--muted:#63808a;--accent:#176b87;--primary-hover:#214e60;--shadow-soft:0 14px 40px #176b871a;--shadow-menu:0 18px 48px #174b5c29;--background:192 44% 96%;--foreground:194 45% 16%;--card:0 0% 100%;--card-foreground:194 45% 16%;--popover:0 0% 100%;--popover-foreground:194 45% 16%;--primary-foreground:0 0% 100%;--secondary:190 40% 95%;--secondary-foreground:194 35% 24%;--muted-foreground:194 18% 46%;--accent-foreground:194 70% 28%;--ring:194 70% 32%}[data-theme=sunset]{--bg:#fff7ed;--surface:#fffdf9;--surface-muted:#fff3e4;--surface-raised:#fffdf9fa;--border:#efd8c0;--border-soft:#f5e5d4;--text:#362018;--muted:#8b7165;--accent:#a64b2a;--primary-hover:#5a3024;--shadow-soft:0 14px 40px #a64b2a1a;--shadow-menu:0 18px 48px #743d2329;--background:34 100% 96%;--foreground:17 36% 15%;--card:40 100% 99%;--card-foreground:17 36% 15%;--popover:40 100% 99%;--popover-foreground:17 36% 15%;--primary-foreground:40 100% 99%;--secondary:34 80% 94%;--secondary-foreground:17 25% 25%;--muted-foreground:18 18% 48%;--accent-foreground:16 60% 30%;--ring:16 60% 38%}[data-theme=midnight] body,[data-theme=ocean] body,[data-theme=sunset] body{background:var(--bg)}[data-theme=midnight] .product-shell{background:radial-gradient(circle at 8% -8%,#5263be38,transparent 28%),linear-gradient(180deg,#151b2a 0%,var(--bg) 48%,#0c101a 100%)}[data-theme=ocean] .product-shell{background:radial-gradient(circle at 8% -8%,#a4e0ebb8,transparent 28%),linear-gradient(180deg,#f8fdfe 0%,var(--bg) 48%,#e8f2f5 100%)}[data-theme=sunset] .product-shell{background:radial-gradient(circle at 8% -8%,#ffd19d9e,transparent 28%),linear-gradient(180deg,#fffdf9 0%,var(--bg) 48%,#fff0dc 100%)}.theme-panel{border:1px solid var(--border);background:var(--surface);max-width:760px;box-shadow:var(--shadow-soft);border-radius:22px;padding:22px}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.theme-option{border:1px solid var(--border-soft);background:var(--surface-muted);min-height:82px;color:var(--text);text-align:left;border-radius:16px;align-items:center;gap:12px;padding:14px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.theme-option:hover{border-color:var(--accent);transform:translateY(-1px)}.theme-option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),0 8px 20px var(--accent)}@supports (color:color-mix(in lab,red,red)){.theme-option.selected{box-shadow:inset 0 0 0 1px var(--accent),0 8px 20px color-mix(in srgb,var(--accent) 14%,transparent)}}.theme-swatches{border:1px solid var(--border);border-radius:12px;flex:none;width:38px;height:38px;display:flex;overflow:hidden}.theme-swatches span{flex:1}.theme-option-copy{gap:3px;min-width:0;display:grid}.theme-option-copy strong{font-size:15px}.theme-option-copy small{color:var(--muted);font-size:12px}.theme-check{color:var(--accent);margin-left:auto;font-size:18px;font-weight:900}@media(max-width:620px){.theme-options{grid-template-columns:1fr}}.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{border-color:color-mix(in srgb,var(--accent) 24%,var(--border-soft))}}.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}}.record-nav-list button:hover,.shortcut-list button:hover,.utility-nav-button:hover,.utility-nav-button.active{color:var(--accent)}.record-nav-list button.active{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.record-nav-list button.active{border-color:color-mix(in srgb,var(--accent) 28%,var(--border-soft))}}.record-nav-list button.active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.record-nav-list button.active{background:color-mix(in srgb,var(--accent) 13%,var(--surface))}}.record-nav-list button.active{color:var(--accent)}[data-theme=midnight] .workspace-nav,[data-theme=midnight] .feed-section,[data-theme=midnight] .settings-page{background:#171d2cf0;border-color:#33405a}[data-theme=midnight] .settings-page{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}[data-theme=midnight] .language-setting,[data-theme=midnight] .theme-option,[data-theme=midnight] .ui-select-trigger,[data-theme=midnight] .inline-trigger,[data-theme=midnight] .source-trigger{color:var(--text)!important;background:#1d2638!important;border-color:#33405a!important}[data-theme=midnight] .settings-tabs button{color:#b7c3dd;background:#1d2638;border-color:#33405a}[data-theme=midnight] .settings-tabs button.active,[data-theme=midnight] .settings-tabs button[data-state=active],[data-theme=midnight] .settings-tabs button:hover{background:var(--accent);border-color:var(--accent);color:#101522}[data-theme=midnight] .settings-page-header h1,[data-theme=midnight] .settings-page-header p,[data-theme=midnight] .settings-page .eyebrow,[data-theme=midnight] .settings-page .card-title h3,[data-theme=midnight] .settings-page .card-title svg{color:var(--text)}[data-theme=midnight] .settings-page-header p,[data-theme=midnight] .settings-page .sync-note,[data-theme=midnight] .settings-page small,[data-theme=midnight] .settings-page .muted,[data-theme=midnight] .settings-page .language-setting label{color:var(--muted)}[data-theme=midnight] [data-slot=input],[data-theme=midnight] [data-slot=textarea],[data-theme=midnight] .language-setting select{color:var(--text)!important;background:#171d2c!important;border-color:#33405a!important}[data-theme=midnight] .sync-config-section,[data-theme=midnight] .sync-security-section{background:linear-gradient(#1d2638f5,#171d2cf5);border-color:#33405a}[data-theme=midnight] .sync-section-heading strong,[data-theme=midnight] .sync-card-subtitle{color:var(--text)}[data-theme=midnight] .sync-section-heading span,[data-theme=midnight] .sync-auto-option small{color:var(--muted)}[data-theme=midnight] .sync-auto-option{color:var(--text);background:#36436975;border-color:#526189}[data-theme=midnight] .sync-auto-option input[type=checkbox]{accent-color:var(--accent)}[data-theme=midnight] .header-settings[data-slot=button]:hover,[data-theme=midnight] .header-settings[data-slot=button][aria-pressed=true]{color:var(--accent);background:#1d2638;border-color:#526189}[data-theme=midnight] .header-settings[data-slot=button]{color:#b7c3dd!important;background:#1d2638!important;border-color:#33405a!important}[data-theme=midnight] .header-settings[data-slot=button]:hover,[data-theme=midnight] .header-settings[data-slot=button][aria-pressed=true]{background:var(--accent)!important;border-color:var(--accent)!important;color:#101522!important}.metric strong{color:var(--accent)}.status-chip.good{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.status-chip.good{border-color:color-mix(in srgb,var(--accent) 25%,var(--border-soft))}}.status-chip.good{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.status-chip.good{background:color-mix(in srgb,var(--accent) 11%,var(--surface))}}.status-chip.good{color:var(--accent)}[data-theme=midnight] .status-chip{color:#b7c3dd;background:#1d2638;border-color:#33405a}[data-theme=midnight] .metric,[data-theme=midnight] .mini-signal{background:#1d2638;border-color:#33405a}[data-theme=midnight] .metric span,[data-theme=midnight] .mini-signal{color:#b7c3dd}.language-panel{max-width:520px}.language-field{width:100%;margin-top:18px;display:block}.language-select-trigger{width:100%}.capture-modal{border-color:var(--border);background:var(--surface);color:var(--text)}.capture-modal-backdrop{background:var(--bg)}@supports (color:color-mix(in lab,red,red)){.capture-modal-backdrop{background:color-mix(in srgb,var(--bg) 78%,transparent)}}.capture-modal .record-mode-shell{border-color:var(--border-soft);background:linear-gradient(180deg,var(--surface-muted),var(--surface-muted))}@supports (color:color-mix(in lab,red,red)){.capture-modal .record-mode-shell{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-muted) 84%,transparent),var(--surface-muted))}}.capture-modal .record-mode-current strong,.capture-modal .capture-top,.capture-modal .capture-top input,.capture-modal .capture-console textarea,.capture-modal .capture-bottom input,.capture-modal .scene-fields input,.capture-modal .scene-fields select{color:var(--text)}.capture-modal .record-mode-current span,.capture-modal .capture-hint{color:var(--muted)}.capture-modal .record-mode-tabs button{border-color:var(--border-soft);background:var(--surface);color:var(--muted)}.capture-modal .record-mode-tabs button:hover,.capture-modal .record-mode-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--surface)}.capture-modal .capture-console textarea,.capture-modal .scene-panel,.capture-modal .capture-bottom input,.capture-modal .scene-fields input,.capture-modal .scene-fields select{border-color:var(--border-soft);background:var(--surface-muted)}.capture-modal .capture-bottom .clipboard-action{background:var(--surface-muted);color:var(--text)}.capture-modal .capture-bottom button[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.capture-modal .capture-bottom button[type=submit]:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.feed-controls{box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}.feed-controls .search-input{border:1px solid var(--border-soft);background:var(--surface);border-radius:18px;min-height:46px;padding:0 16px;box-shadow:0 4px 12px #191c230d}.feed-controls .search-input:focus-within{border-color:#b7d8cc;box-shadow:0 0 0 3px #37846a1c,0 4px 12px #191c230a}.feed-controls .search-input input{height:44px!important;min-height:44px!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.feed-controls .search-input input:focus,.feed-controls .search-input input:focus-visible{box-shadow:none!important;border:0!important;outline:none!important}#root .feed-controls .search-input>input,#root .feed-controls .search-input>input:focus,#root .feed-controls .search-input>input:focus-visible{box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:none!important}#root .feed-controls .search-input:focus-within{box-shadow:none!important;border-color:#b7d8cc!important}[data-slot=input]:not([type=checkbox]):not([type=date]):not([type=file]){height:46px!important;min-height:46px!important}[data-slot=input]:not([type=checkbox]):not([type=date]):not([type=file]):focus,[data-slot=textarea]:focus,.inline-trigger:focus,.source-trigger:focus,.advanced-filters input:focus,.advanced-filters select:focus,.scene-fields select:focus{outline:none;border-color:#b7d8cc!important;box-shadow:0 0 0 3px #37846a1c,0 4px 12px #191c230a!important}[data-slot=input]:not([type=checkbox]):not([type=date]):not([type=file]):focus-visible,[data-slot=textarea]:focus-visible,.inline-trigger:focus-visible,.source-trigger:focus-visible{outline:none}.inline-trigger.open,.source-trigger.open{background:var(--surface)!important;border-color:#b7d8cc!important;box-shadow:0 0 0 3px #37846a1c,0 4px 12px #191c230a!important}.inline-trigger,.source-trigger,.advanced-filters input,.advanced-filters select,.scene-fields select{height:46px;min-height:46px;color:var(--text);padding:0 16px;font-size:16px;font-weight:400;box-shadow:0 4px 12px #191c230d;border:1px solid var(--border-soft)!important;background:var(--surface)!important;border-radius:18px!important}:where([data-slot=button],[data-slot=input],[data-slot=textarea],[data-slot=badge],.status-chip,.record-nav-list button,.shortcut-list button,.utility-nav-button,.source-trigger,.inline-trigger,.record-mode-select,.capture-console textarea,.capture-bottom input,.sync-grid input,.token-input,.drawer-grid input,.drawer-grid textarea,.tag-stack button,.memory-tags button,.workspace-nav,.console-main,.feed-section,.capture-console,.record-mode-shell,.scene-panel,.search-row,.command-bar,.advanced-filters,.console-side,.utility-drawer,.capture-modal,.side-card,.metric,.mini-signal,.notice,.memory-card,.empty-feed,.settings-page,.drawer-summary,.drawer-fields,.ui-select-content,.ui-select-item,.ui-dialog-content,.ui-dropdown-content,.ui-dropdown-item,.ui-dropdown-item .bookmark-import){border-radius:var(--radius-ui)!important}.context-actions .inline-trigger,.context-actions>[data-slot=button]{box-sizing:border-box;justify-content:center;align-items:center;display:inline-flex;border-radius:var(--radius-ui)!important;height:44px!important;min-height:44px!important;padding-top:0!important;padding-bottom:0!important;line-height:1!important}.memory-card.selected{box-shadow:none!important}:where(.feed-actions [data-slot=button],.feed-actions .bookmark-import,.memory-category [data-slot=button],.memory-life [data-slot=badge],.card-actions [data-slot=button],.context-actions .inline-trigger,.context-actions>[data-slot=button],.header-settings[data-slot=button]){border-radius:var(--radius-ui)!important}@media(min-width:900px)and (max-width:1180px){.section-heading{flex-wrap:nowrap;gap:10px}.section-heading>div:first-child{flex:auto}.feed-actions{flex:none;gap:6px}.feed-controls{align-items:center;gap:6px;grid-template-columns:minmax(190px,1fr) 132px 132px 150px 150px!important;display:grid!important}.feed-controls .command-bar{display:contents!important}.feed-controls .search-input{min-width:0;grid-column:1!important}.feed-controls .command-bar>.source-trigger{width:100%;grid-column:2!important;min-width:0!important}.feed-controls .advanced-filters{display:contents!important}.feed-controls .advanced-filters>*{width:100%;min-width:0;grid-column:auto!important}.feed-controls .advanced-filters>span{display:none}}@media(min-width:520px)and (max-width:899px){.feed-controls{align-items:center;gap:6px;overflow:hidden;grid-template-columns:minmax(150px,1fr) 112px 112px 132px 132px!important;display:grid!important}.feed-controls .command-bar,.feed-controls .advanced-filters{display:contents!important}.feed-controls .search-input,.feed-controls .command-bar>.source-trigger,.feed-controls .advanced-filters>*{width:100%;grid-column:auto!important;min-width:0!important}.feed-controls .advanced-filters>span{display:none}.feed-controls .search-input,.feed-controls .source-trigger,.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{text-overflow:ellipsis;white-space:nowrap;height:40px;min-height:40px;padding-inline:10px;overflow:hidden}}@media(max-width:519px){.feed-controls{gap:4px;padding-inline:4px;overflow:hidden;grid-template-columns:minmax(112px,1.35fr) repeat(4,minmax(58px,1fr))!important;display:grid!important}.feed-controls .command-bar,.feed-controls .advanced-filters{display:contents!important}.feed-controls .search-input,.feed-controls .command-bar>.source-trigger,.feed-controls .advanced-filters>*{width:100%;grid-column:auto!important;min-width:0!important}.feed-controls .advanced-filters>span{display:none}.feed-controls .search-input,.feed-controls .source-trigger,.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{text-overflow:ellipsis;white-space:nowrap;height:38px;min-height:38px;padding-inline:6px;font-size:11px;overflow:hidden}.feed-controls .search-input svg{flex:none}}@media(max-width:1180px){.workspace-layout{display:block}.workspace-nav{display:none!important}.workspace-main{width:100%}}.capture-modal .capture-bottom>select[aria-hidden=true]{display:none!important}@media(min-width:900px)and (max-width:1180px)and (orientation:portrait){.memory-list-header,.memory-card{grid-template-columns:30px 82px 108px minmax(170px,1fr) 100px 88px;gap:8px}.memory-list-header.selection-mode,.memory-card.selection-mode{grid-template-columns:30px 82px 108px minmax(170px,1fr) 100px 88px}}@media(max-width:780px){.memory-card{grid-template-columns:28px minmax(0,1fr) auto}.memory-card .memory-time{grid-column:2}.memory-card .memory-entity{grid-column:3}}@media(min-width:520px)and (max-width:760px)and (orientation:portrait){.workspace-nav .all-types-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.workspace-nav .all-types-list button{min-height:34px;padding-inline:7px;font-size:12px}.workspace-nav .all-types-list button strong{display:none}.feed-controls{grid-template-columns:minmax(0,1fr) 140px;gap:7px;padding:8px}.feed-controls .search-input,.feed-controls .command-bar>button.source-trigger{grid-column:auto}.feed-controls .advanced-filters{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:6px}.feed-controls .advanced-filters>*{width:100%}.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{height:36px;min-height:36px;padding-inline:8px;font-size:11px}.section-heading{grid-template-columns:minmax(0,1fr) auto}.section-heading .feed-actions{flex-wrap:nowrap;gap:5px;width:auto;display:flex}.section-heading .feed-actions [data-slot=button],.section-heading .feed-actions .bookmark-import{flex:0 auto;min-height:36px;padding-inline:8px;font-size:11px}}@media(max-width:760px)and (orientation:portrait){.feed-summary{display:none}.empty-feed{min-height:220px;padding:28px 18px}}@media(min-width:520px)and (max-width:1180px)and (orientation:portrait){.feed-controls{grid-template-columns:minmax(0,1fr) 176px;gap:5px;padding:6px;overflow:visible}.feed-controls .search-input,.feed-controls .source-trigger{min-height:40px}.feed-controls .advanced-filters{gap:5px;padding:0}.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{height:34px;min-height:34px}.source-trigger{min-width:0;padding-inline:12px;font-size:13px;overflow:hidden}.source-trigger [data-slot=select-value]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.section-heading{grid-template-columns:minmax(190px,1fr) auto;gap:8px;margin-top:16px}.section-heading h2{white-space:nowrap;font-size:clamp(23px,3.2vw,28px)}.section-heading .feed-actions [data-slot=button],.section-heading .feed-actions .bookmark-import{min-width:0;padding-inline:9px;font-size:12px}}.feed-summary{display:none}.section-heading{margin-top:16px;margin-bottom:10px}.section-heading p{margin-top:2px}.feed-actions .import-action,.feed-actions .export-action{white-space:nowrap;vertical-align:middle;place-items:center;height:38px;min-height:38px;line-height:0;overflow:hidden;flex:0 0 38px!important;justify-content:center!important;align-items:center!important;width:38px!important;min-width:38px!important;padding:0!important;font-size:0!important;display:inline-grid!important}.feed-actions .import-action svg,.feed-actions .export-action svg{flex:none;width:16px;height:16px;display:block;margin:0!important;transform:none!important}.section-heading .feed-actions{align-self:center;align-items:center;margin-left:auto;display:flex}@media(max-width:760px)and (orientation:portrait){.feed-controls{border-radius:14px}.section-heading h2{font-size:24px}.section-heading .feed-actions [data-slot=button],.section-heading .feed-actions .bookmark-import{width:36px;min-width:36px;padding:0;font-size:0}.section-heading .feed-actions .capture-cta{width:auto;min-width:36px;padding-inline:10px;font-size:0}}.feed-controls{grid-template-columns:minmax(320px,1fr) 154px}.feed-controls .advanced-filters{grid-template-columns:150px 176px 176px;justify-content:start}.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{min-width:0}.section-heading{align-items:center;display:flex}.feed-section>.section-heading{margin-top:0;margin-bottom:14px}.section-heading>div:first-child{min-width:0}.section-heading>.context-pack{box-shadow:none;background:0 0;border:0;margin:0 0 0 auto;padding:0;display:block}.section-heading>.context-pack .context-pack-main{display:none}.section-heading>.context-pack .context-actions{flex-wrap:nowrap;align-items:center;gap:7px}.section-heading>.context-pack+.feed-actions{margin-left:0}.feed-capture-button{min-height:42px;padding-inline:16px}@media(max-width:1180px)and (orientation:portrait){.feed-controls{grid-template-columns:minmax(0,1fr) 150px}.feed-controls .advanced-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px)and (orientation:portrait){.feed-controls{grid-template-columns:minmax(0,1fr) 132px}.feed-controls .advanced-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{padding-inline:6px;font-size:10px}}@media(max-width:520px)and (orientation:portrait){.feed-controls{grid-template-columns:1fr}.feed-controls .advanced-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}.settings-page-header{max-width:1180px;padding-bottom:26px}.settings-page-header h1{font-size:clamp(34px,4vw,52px);line-height:1}.settings-page-header p{max-width:620px;font-size:16px;line-height:1.5}.settings-page>[data-slot=tabs],.settings-page>.settings-tabs,.settings-page>.settings-select,.settings-content{width:min(100%,1180px)}.settings-tabs{gap:8px;padding-bottom:16px}.settings-content{max-width:1180px;padding-top:28px}.sync-card{width:100%;max-width:none}.setup-flow-button{border:1px solid var(--border);background:var(--surface);width:100%;min-height:46px;color:var(--text);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.setup-flow-button:hover{background:var(--accent-soft)}.sync-config-section,.sync-security-section{background:var(--surface-muted);border-radius:18px;padding:22px}.sync-config-section .language-field{grid-template-columns:190px minmax(0,1fr);align-items:center;gap:22px;margin:0;display:grid}.sync-config-section .language-field>span,.sync-field>span{color:var(--muted);font-size:13px;font-weight:800}.sync-grid{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sync-field{gap:8px;min-width:0;display:grid}.sync-field input,.sync-config-section .ui-select-trigger,.sync-security-section input{width:100%;min-width:0;min-height:46px}.sync-security-section{grid-template-columns:minmax(0,1.45fr) minmax(220px,.75fr);gap:16px 18px;margin-top:16px}.sync-auto-option{border-radius:14px;min-height:68px;margin:16px 0;padding:14px 18px}.sync-actions{gap:10px;padding-top:6px}.sync-actions .primary-action{border-radius:12px;min-height:46px}.sync-actions button:not(.primary-action){border-radius:12px;width:46px;min-height:46px}@media(max-width:760px){.settings-page{min-height:0;padding:22px 16px 32px}.settings-page-header{padding-bottom:20px}.settings-tabs{scrollbar-width:none;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}.sync-config-section,.sync-security-section{grid-template-columns:1fr;padding:16px}.sync-config-section .language-field{grid-template-columns:1fr;gap:8px}.sync-config-section .sync-section-heading,.sync-security-section .sync-section-heading{margin-bottom:2px}.sync-grid{grid-template-columns:1fr}}.settings-page{min-height:0;padding:24px 32px 36px}.settings-page-header,.settings-page>[data-slot=tabs],.settings-page>.settings-tabs,.settings-page>.settings-select,.settings-content{width:min(100%,980px)}.settings-page-header{padding-bottom:18px}.settings-page-header h1{font-size:clamp(32px,3.4vw,44px)}.settings-page-header p{margin-top:6px;font-size:14px}.settings-tabs{padding-bottom:12px}.settings-tabs button{min-height:36px;padding-inline:14px;font-size:13px}.settings-content{padding-top:18px}.sync-card .card-title{margin-bottom:16px}.sync-card .card-title h3{font-size:19px}.sync-config-section,.sync-security-section{border-radius:16px;padding:16px}.sync-config-section{grid-template-columns:170px minmax(0,1fr);gap:12px 16px}.sync-config-section .sync-section-heading,.sync-security-section .sync-section-heading{margin-bottom:0}.sync-config-section .language-field{grid-column:auto;grid-template-columns:1fr;align-self:end;gap:6px}.sync-grid{grid-column:auto;gap:10px}.sync-config-section .sync-grid{grid-column:1/-1;width:100%}.repository-connect-row{grid-column:1/-1;align-items:center;gap:10px;width:100%;margin-top:14px;display:flex}.repository-connect-row input{flex:1;min-width:0}.repository-connect-row button{white-space:nowrap;flex:none}.connection-access-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.connection-access-row .sync-field{min-width:0}.check-connection-button{justify-content:center;width:100%;min-height:44px}.check-connection-button:disabled{cursor:not-allowed;opacity:.55}.sync-connection-card .sync-config-section{grid-template-columns:minmax(0,1fr)}.sync-connection-card .sync-config-section .language-field,.sync-connection-card .sync-config-section .repository-url-field,.sync-connection-card .sync-config-section .connection-access-row,.sync-connection-card .sync-config-section .check-connection-button,.sync-connection-card .sync-config-section .sync-note,.sync-connection-card .sync-config-section .sync-warning{grid-column:1/-1}@media(max-width:520px){.connection-access-row{grid-template-columns:1fr}}.sync-field{gap:5px}.sync-config-section .ui-select-trigger,.sync-field input,.sync-security-section input{height:42px;min-height:42px}.sync-security-section{gap:10px 14px;margin-top:10px}.sync-column-access .sync-security-section{margin-top:0}.sync-auto-option{min-height:56px;margin:10px 0;padding:10px 14px}.sync-actions{padding-top:2px}.sync-actions .primary-action,.sync-actions button:not(.primary-action){min-height:42px}.sync-actions button:not(.primary-action){width:42px}@media(max-width:760px){.settings-page{padding:18px 16px 28px}.sync-config-section{grid-template-columns:1fr}.sync-config-section .language-field,.sync-grid{grid-column:1/-1}}.feed-section{padding:18px}.feed-controls{border:0;border-bottom:1px solid var(--border-soft);box-shadow:none;background:0 0;border-radius:0;padding:0 0 14px}.memory-list-header{border:0;border-bottom:1px solid var(--border-soft);background:0 0;border-radius:0}.memory-grid{background:0 0;border:0;border-radius:0}.memory-pagination{color:var(--muted);justify-content:flex-end;align-items:center;gap:16px;padding:14px 4px 2px;font-size:13px;display:flex}.page-size-options,.page-navigation{border-left:1px solid var(--border-soft);align-items:center;gap:8px;margin-left:4px;padding-left:16px;display:flex}.page-size-options button,.page-navigation button{border-radius:9px;min-width:34px;min-height:34px;padding-inline:9px}.page-navigation>span{text-align:center;min-width:58px}@media(max-width:560px){.memory-pagination{flex-direction:column;align-items:center}.page-navigation{border-left:0;margin-left:0;padding-left:0}}.memory-card{background:0 0;border-radius:0}.memory-card:hover{background:var(--surface-muted)}.memory-card.selected{background:#edf8f2}.context-pack{border-radius:12px;grid-template-columns:1fr;margin-top:12px;padding:8px}.context-actions{justify-content:flex-end}.ui-dropdown-content{gap:2px;width:190px;display:grid}.ui-dropdown-content .ui-dropdown-item{width:100%;min-width:0;display:flex}.ui-dropdown-content .bookmark-import{white-space:nowrap;text-overflow:ellipsis;justify-content:flex-start;width:100%;min-width:0;display:flex;overflow:hidden}.ui-dropdown-content{border-radius:14px;gap:2px;width:220px;padding:6px}.ui-dropdown-content .ui-dropdown-item,.ui-dropdown-content .bookmark-import{height:36px;min-height:36px;box-shadow:none;background:0 0;border:0;border-radius:9px;padding:0 10px;font-size:13px;font-weight:750}.ui-dropdown-content .ui-dropdown-item[data-highlighted],.ui-dropdown-content .bookmark-import:hover{background:var(--surface-muted)}.header-settings[data-slot=button]{border:1px solid var(--border);width:150px;height:34px;min-height:34px;color:var(--muted);background:#ffffffb8;border-radius:999px;justify-content:center;padding-inline:12px;font-size:13px;font-weight:800}.header-actions>.status-chip{justify-content:center;width:150px}.header-actions{flex:none;align-items:center}.header-settings[data-slot=button],.header-actions>.status-chip{box-sizing:border-box;flex:none;width:auto;height:34px;min-height:34px}.memory-category>[data-slot=button],.memory-life>[data-slot=badge]{border-radius:999px;width:auto;min-width:0;height:26px;min-height:26px;padding:0 10px;line-height:1}.context-pack{background:0 0;border:0;border-radius:0;justify-content:flex-end;align-items:center;margin-top:10px;padding:0;display:flex}.context-pack-main{display:none}.context-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.context-actions .inline-trigger,.context-actions>[data-slot=button]{white-space:nowrap;border-radius:999px;width:auto;min-width:0;height:34px;min-height:34px;padding:0 12px}.capture-modal{border-radius:22px;width:min(720px,100vw - 28px);padding:22px}.capture-modal-header{padding:0 0 16px}.capture-modal-header h2{margin-top:8px;font-size:clamp(26px,3.2vw,34px);line-height:1.05}.capture-modal .capture-console{box-sizing:border-box;width:100%;min-width:0;box-shadow:none;background:0 0;gap:10px;padding-bottom:14px;display:grid}.capture-modal .capture-modal-body,.capture-modal-body{box-sizing:border-box;width:100%;padding-right:0;overflow-x:visible}.capture-modal .capture-console>*,.capture-modal .capture-console input,.capture-modal .capture-console textarea,.capture-modal .capture-console button{box-sizing:border-box;max-width:100%}.capture-modal .record-mode-shell{background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:0 0 8px;display:flex}.capture-modal .record-mode-current{padding:0}.capture-modal .record-mode-orb{width:38px;height:38px;box-shadow:none;border-radius:12px}.capture-modal .record-mode-shell>.source-trigger{border-radius:999px;flex:0 0 150px;width:150px;height:40px;min-height:40px}.capture-modal .capture-top{min-height:46px;box-shadow:none;background:0 0;border:0;padding:0 2px;display:block}.capture-modal .capture-top input{border-radius:18px;width:100%;height:46px;padding:0 16px;font-size:17px;border:1px solid var(--border-soft)!important;background:var(--surface)!important;box-shadow:0 4px 10px #191c2314!important}.capture-modal .scene-panel{background:0 0;border:0;margin:0;padding:0}.capture-modal .capture-console>textarea{box-sizing:border-box;width:100%;min-height:150px;margin:0;padding:14px}.capture-modal .capture-top input,.capture-modal .capture-console>textarea{color:var(--text);border-radius:18px;font-size:17px;font-weight:400;border:1px solid var(--border-soft)!important;background:var(--surface-muted)!important;box-shadow:0 4px 10px #191c2314!important}.capture-modal .capture-top input{height:46px;padding:14px}.capture-modal .capture-console>textarea{line-height:1.6}[data-slot=input]:not([type=checkbox]):not([type=date]):not([type=file]),[data-slot=textarea]{min-height:46px;color:var(--text);font:inherit;border-radius:18px;padding:0 16px;font-size:16px;font-weight:400;line-height:1.5;box-shadow:0 4px 12px #191c230d;border:1px solid var(--border-soft)!important;background:var(--surface)!important}[data-slot=textarea]{resize:vertical;min-height:150px;padding:14px 16px}.capture-modal .capture-bottom{box-shadow:none;background:0 0;grid-template-columns:132px minmax(0,1fr) 88px 108px;column-gap:8px;margin-top:0}.capture-modal .capture-bottom>[data-slot=input]{box-sizing:border-box;border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:999px;min-width:0}.capture-modal .capture-bottom>.source-trigger{box-sizing:border-box;width:100%!important;min-width:0!important}.capture-modal .capture-bottom>*,.capture-modal .capture-bottom>:before,.capture-modal .capture-bottom>:after{box-shadow:none!important}.capture-modal{max-height:calc(100vh - 32px);top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}.capture-modal .capture-bottom input,.capture-modal .capture-bottom button,.capture-modal .source-trigger{border-radius:999px;height:40px;min-height:40px}@media(max-width:600px){.capture-modal{width:calc(100vw - 20px);padding:16px}.capture-modal-header h2{font-size:28px}.capture-modal .record-mode-current span{display:none}.capture-modal .record-mode-shell>.source-trigger{flex-basis:132px;width:132px}.capture-modal .capture-bottom{flex-wrap:nowrap;gap:5px;grid-template-columns:108px minmax(0,1fr) 78px 96px!important;display:grid!important}.capture-modal .capture-bottom>.source-trigger{min-width:0;padding-inline:8px;display:inline-flex;width:100%!important}.capture-modal .capture-bottom>[data-slot=input]{min-width:0;width:100%!important}.capture-modal .capture-bottom>button{min-width:0;padding-inline:6px;width:100%!important}}@media(min-width:601px)and (max-width:900px){.capture-modal .capture-bottom{align-items:center;width:100%;overflow:hidden;flex-wrap:nowrap!important;gap:8px!important;display:flex!important}.capture-modal .capture-bottom>.source-trigger{flex:0 0 132px!important;width:132px!important}.capture-modal .capture-bottom>[data-slot=input]{flex:1 1 0!important;width:0!important}.capture-modal .capture-bottom>button{flex:none!important;width:auto!important}.capture-modal .capture-bottom>*{min-width:0}.capture-modal .capture-bottom input,.capture-modal .capture-bottom button,.capture-modal .capture-bottom .source-trigger{text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;padding-inline:10px;overflow:hidden}.capture-modal .capture-bottom button{width:auto}}.header-settings[data-slot=button]:hover,.header-settings[data-slot=button][aria-pressed=true]{color:var(--accent);background:#eef7f2;border-color:#d3e8de}[data-theme=midnight] .header-settings[data-slot=button]:hover,[data-theme=midnight] .header-settings[data-slot=button][aria-pressed=true]{box-shadow:0 8px 20px #8b9cff38;background:var(--accent)!important;border-color:var(--accent)!important;color:#101522!important}[data-theme=midnight] .header-settings[data-slot=button]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:520px){.header-settings span{display:none}.header-settings[data-slot=button]{flex-basis:42px;width:42px;padding:0}.header-actions>.status-chip{flex-basis:42px;width:42px;padding:0;font-size:0}.header-actions>.status-chip svg{margin:0}}[data-theme=midnight] .memory-list-header{color:#9aa8c2;background:#171d2c;border-color:#33405a}[data-theme=midnight] .memory-grid,[data-theme=midnight] .memory-card{color:var(--text);background:#171d2c;border-color:#29354d}[data-theme=midnight] .memory-card:hover{background:#1d2638}[data-theme=midnight] .memory-card.selected{box-shadow:inset 3px 0 0 var(--accent);background:#8b9cff24}[data-theme=midnight] .memory-card.selected:hover{background:#8b9cff33}[data-theme=midnight] .memory-card .memory-time,[data-theme=midnight] .memory-card .memory-entity span,[data-theme=midnight] .memory-card .memory-category span{color:#9aa8c2}[data-theme=midnight] .memory-card .memory-entity strong,[data-theme=midnight] .memory-card .memory-content-cell,[data-theme=midnight] .memory-card .memory-title-button{color:var(--text)}[data-theme=midnight] .memory-selection-cell input[type=checkbox],[data-theme=midnight] .memory-list-header input[type=checkbox]{accent-color:var(--accent)}.record-nav-list{gap:6px!important}.context-actions{gap:10px!important}@media(max-width:760px){.feed-section{padding:14px}}@media(min-width:900px){.feed-controls{grid-template-columns:minmax(260px,1fr) 150px 150px 176px 176px;align-items:center}.feed-controls .advanced-filters{grid-column:auto;display:contents}.feed-controls .advanced-filters>*{min-width:0;grid-column:auto!important}.feed-controls .advanced-filters .inline-trigger,.feed-controls .advanced-filters [data-slot=input]{height:40px;min-height:40px}}.inline-trigger,.source-trigger,.advanced-filters input,.advanced-filters select,.scene-fields select{font-size:16px;font-weight:400;box-shadow:0 4px 12px #191c230d;border:1px solid var(--border-soft)!important;background:var(--surface)!important;border-radius:18px!important;height:46px!important;min-height:46px!important}.command-bar,.feed-controls{box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}[data-slot=input]:not([type=checkbox]):not([type=date]):not([type=file]),[data-slot=textarea]{font-weight:400;box-shadow:0 4px 12px #191c230d;border:1px solid var(--border-soft)!important;background:var(--surface)!important;border-radius:18px!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}