kimi-code-memory-mcp-server 0.1.2 → 0.2.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.
@@ -1,18 +1,4 @@
1
- :root {
2
- --bg: #0d0d0d;
3
- --card: #141414;
4
- --border: #262626;
5
- --text: #e5e5e5;
6
- --text-secondary: #a3a3a3;
7
- --accent: #3b82f6;
8
- --accent-hover: #2563eb;
9
- --hover: #1f1f1f;
10
- --danger: #ef4444;
11
- --success: #22c55e;
12
- --radius: 12px;
13
- --font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
14
- --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
15
- }
1
+ /* style.css — Kimi Code Web look-alike for Memory Vis */
16
2
 
17
3
  * {
18
4
  box-sizing: border-box;
@@ -26,168 +12,326 @@ body {
26
12
  }
27
13
 
28
14
  body {
29
- font-family: var(--font);
15
+ font-family: var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
30
16
  background: var(--bg);
31
- color: var(--text);
17
+ color: var(--ink);
18
+ font-size: 14px;
32
19
  line-height: 1.5;
33
20
  -webkit-font-smoothing: antialiased;
34
21
  }
35
22
 
36
- .app {
37
- display: flex;
38
- height: 100vh;
39
- overflow: hidden;
23
+ ::-webkit-scrollbar {
24
+ width: 6px;
25
+ height: 6px;
40
26
  }
41
27
 
42
- .sidebar {
43
- width: 240px;
44
- flex-shrink: 0;
45
- background: var(--card);
46
- border-right: 1px solid var(--border);
47
- display: flex;
48
- flex-direction: column;
49
- transition: transform 0.2s ease;
28
+ ::-webkit-scrollbar-track {
29
+ background: transparent;
50
30
  }
51
31
 
52
- .brand {
53
- display: flex;
54
- align-items: center;
55
- gap: 12px;
56
- padding: 20px 18px;
57
- border-bottom: 1px solid var(--border);
32
+ ::-webkit-scrollbar-thumb {
33
+ background: var(--line);
34
+ border-radius: 3px;
58
35
  }
59
36
 
60
- .brand-icon {
61
- width: 32px;
62
- height: 32px;
63
- border-radius: 8px;
64
- background: var(--accent);
37
+ ::-webkit-scrollbar-thumb:hover {
38
+ background: var(--muted);
39
+ }
40
+
41
+ ::selection {
42
+ background: color-mix(in srgb, var(--blue) 25%, transparent);
43
+ }
44
+
45
+ .app {
65
46
  display: grid;
66
- place-items: center;
67
- font-weight: 700;
68
- color: #fff;
47
+ grid-template-columns: 260px 1fr;
48
+ height: 100vh;
49
+ overflow: hidden;
69
50
  }
70
51
 
71
- .brand-text {
72
- font-weight: 600;
73
- font-size: 16px;
52
+ .app.sidebar-collapsed {
53
+ grid-template-columns: 48px 1fr;
74
54
  }
75
55
 
76
- .nav {
77
- padding: 12px 10px;
56
+ .sidebar {
78
57
  display: flex;
79
58
  flex-direction: column;
80
- gap: 4px;
59
+ background: var(--bg);
60
+ border-right: 1px solid var(--line);
61
+ overflow: hidden;
62
+ min-width: 0;
63
+ }
64
+
65
+ .sidebar-nav {
81
66
  flex: 1;
67
+ overflow-y: auto;
68
+ padding: 12px;
69
+ display: flex;
70
+ flex-direction: column;
71
+ gap: 16px;
72
+ }
73
+
74
+ .nav-group-label {
75
+ font-size: 11px;
76
+ text-transform: uppercase;
77
+ letter-spacing: 0.04em;
78
+ color: var(--dim);
79
+ margin-bottom: 6px;
80
+ padding-left: 6px;
82
81
  }
83
82
 
84
83
  .nav-item {
85
84
  display: flex;
86
85
  align-items: center;
87
- gap: 12px;
88
- padding: 10px 12px;
89
- border-radius: 8px;
90
- color: var(--text-secondary);
86
+ gap: 10px;
87
+ padding: 7px 12px;
88
+ border-radius: var(--r-sm);
89
+ color: var(--text);
91
90
  text-decoration: none;
92
91
  font-size: 14px;
93
- transition: background 0.15s ease, color 0.15s ease;
92
+ position: relative;
93
+ cursor: pointer;
94
+ }
95
+
96
+ .nav-item:hover {
97
+ background: var(--soft);
98
+ color: var(--ink);
94
99
  }
95
100
 
96
- .nav-item:hover,
97
101
  .nav-item.active {
98
- background: var(--hover);
99
- color: var(--text);
102
+ background: var(--bluebg);
103
+ color: var(--ink);
104
+ }
105
+
106
+ .nav-item.active::before {
107
+ content: '';
108
+ position: absolute;
109
+ left: 0;
110
+ top: 6px;
111
+ bottom: 6px;
112
+ width: 3px;
113
+ background: var(--blue);
114
+ border-radius: 0 3px 3px 0;
100
115
  }
101
116
 
102
117
  .nav-icon {
103
118
  font-size: 16px;
104
- width: 20px;
119
+ width: 18px;
105
120
  text-align: center;
106
121
  }
107
122
 
108
123
  .sidebar-footer {
109
- padding: 14px;
110
- border-top: 1px solid var(--border);
124
+ padding: 10px 12px;
125
+ border-top: 1px solid var(--line);
126
+ flex: none;
127
+ font-size: 11px;
128
+ color: var(--dim);
129
+ white-space: nowrap;
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ font-family: var(--mono);
111
133
  }
112
134
 
113
135
  .main {
114
- flex: 1;
115
136
  display: flex;
116
137
  flex-direction: column;
117
138
  min-width: 0;
139
+ min-height: 0;
140
+ background: var(--bg);
141
+ overflow: hidden;
118
142
  }
119
143
 
120
144
  .topbar {
121
- height: 56px;
122
- background: var(--card);
123
- border-bottom: 1px solid var(--border);
145
+ height: 50px;
146
+ padding: 0 12px;
124
147
  display: flex;
125
148
  align-items: center;
126
- gap: 12px;
127
- padding: 0 20px;
149
+ justify-content: space-between;
150
+ gap: 10px;
151
+ border-bottom: 1px solid var(--line);
152
+ background: var(--bg);
153
+ flex: none;
154
+ }
155
+
156
+ .topbar-left,
157
+ .topbar-right {
158
+ display: flex;
159
+ align-items: center;
160
+ gap: 10px;
161
+ min-width: 0;
128
162
  }
129
163
 
130
164
  .menu-toggle {
131
165
  display: none;
166
+ width: 28px;
167
+ height: 28px;
168
+ border-radius: 6px;
169
+ border: none;
132
170
  background: transparent;
171
+ color: var(--ink);
172
+ font-size: 16px;
173
+ cursor: pointer;
174
+ place-items: center;
175
+ }
176
+
177
+ .menu-toggle:hover {
178
+ background: var(--soft);
179
+ }
180
+
181
+ .sidebar-header {
182
+ height: 50px;
183
+ padding: 0 12px;
184
+ display: flex;
185
+ align-items: center;
186
+ justify-content: space-between;
187
+ border-bottom: 1px solid var(--line);
188
+ flex: none;
189
+ gap: 8px;
190
+ }
191
+
192
+ .brand {
193
+ display: inline-flex;
194
+ align-items: center;
195
+ gap: 8px;
196
+ height: 32px;
197
+ padding: 0 4px;
198
+ border-radius: 8px;
133
199
  border: none;
134
- color: var(--text);
135
- font-size: 20px;
200
+ background: transparent;
201
+ color: var(--ink);
202
+ font-size: 15px;
203
+ font-weight: 600;
204
+ text-decoration: none;
136
205
  cursor: pointer;
137
- padding: 4px 8px;
206
+ transition: background 0.15s ease, color 0.15s ease;
207
+ flex: 1;
208
+ min-width: 0;
209
+ overflow: hidden;
210
+ }
211
+
212
+ .brand:hover {
213
+ background: var(--soft);
214
+ color: var(--ink);
215
+ }
216
+
217
+ .brand-icon-svg {
218
+ width: 18px;
219
+ height: 18px;
220
+ flex: none;
221
+ padding: 5px;
222
+ background: var(--blue);
223
+ color: #ffffff;
138
224
  border-radius: 6px;
139
225
  }
140
226
 
141
- .menu-toggle:hover {
142
- background: var(--hover);
227
+ .sidebar-toggle-btn {
228
+ width: 32px;
229
+ height: 32px;
230
+ border-radius: 8px;
231
+ border: 1px solid var(--line);
232
+ background: var(--bg);
233
+ color: var(--ink);
234
+ cursor: pointer;
235
+ display: inline-grid;
236
+ place-items: center;
237
+ transition: background 0.15s ease, border-color 0.15s ease;
143
238
  }
144
239
 
145
- .workspace-id {
146
- font-family: var(--mono);
147
- font-size: 12px;
148
- color: var(--text-secondary);
240
+ .sidebar-toggle-btn:hover {
241
+ background: var(--soft);
242
+ border-color: var(--line);
243
+ }
244
+
245
+ .toggle-icon-svg {
246
+ width: 16px;
247
+ height: 16px;
248
+ }
249
+
250
+ .sidebar-collapsed-top {
251
+ display: none;
252
+ }
253
+
254
+ .app.sidebar-collapsed .sidebar-collapsed-top {
255
+ display: flex;
256
+ align-items: center;
257
+ justify-content: center;
258
+ height: 50px;
259
+ border-bottom: 1px solid var(--line);
260
+ flex: none;
261
+ }
262
+
263
+ .app.sidebar-collapsed .sidebar-header,
264
+ .app.sidebar-collapsed .sidebar-nav,
265
+ .app.sidebar-collapsed .sidebar-footer {
266
+ display: none;
267
+ }
268
+
269
+ .breadcrumb {
270
+ display: inline-flex;
271
+ align-items: center;
272
+ gap: 8px;
273
+ font-size: 14px;
274
+ color: var(--ink);
275
+ min-width: 0;
276
+ }
277
+
278
+ .breadcrumb a,
279
+ .breadcrumb span {
280
+ color: var(--muted);
281
+ text-decoration: none;
149
282
  white-space: nowrap;
150
283
  overflow: hidden;
151
284
  text-overflow: ellipsis;
152
285
  }
153
286
 
287
+ .breadcrumb a:hover {
288
+ color: var(--ink);
289
+ }
290
+
291
+ .breadcrumb .sep {
292
+ color: var(--dim);
293
+ flex: none;
294
+ }
295
+
154
296
  .content {
155
- flex: 1;
297
+ flex: 1 1 0;
298
+ min-height: 0;
156
299
  overflow-y: auto;
157
- padding: 24px;
300
+ padding: 20px;
158
301
  }
159
302
 
160
303
  .view {
161
304
  display: none;
162
305
  animation: fadeIn 0.2s ease;
306
+ max-width: 1120px;
307
+ margin: 0 auto;
163
308
  }
164
309
 
165
310
  .view-active {
166
311
  display: block;
167
312
  }
168
313
 
169
- @keyframes fadeIn {
170
- from {
171
- opacity: 0;
172
- transform: translateY(6px);
173
- }
174
- to {
175
- opacity: 1;
176
- transform: translateY(0);
177
- }
314
+ .page-header {
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: space-between;
318
+ gap: 16px;
319
+ margin-bottom: 20px;
320
+ min-width: 0;
178
321
  }
179
322
 
180
323
  .page-title {
181
- margin: 0 0 20px;
182
- font-size: 24px;
324
+ margin: 0;
325
+ font-size: 20px;
183
326
  font-weight: 600;
327
+ color: var(--ink);
184
328
  }
185
329
 
186
330
  .card {
187
- background: var(--card);
188
- border: 1px solid var(--border);
189
- border-radius: var(--radius);
190
- padding: 18px;
331
+ background: var(--canvas);
332
+ border: 1px solid var(--line);
333
+ border-radius: var(--r-lg);
334
+ padding: 16px;
191
335
  margin-bottom: 16px;
192
336
  }
193
337
 
@@ -195,74 +339,91 @@ body {
195
339
  display: flex;
196
340
  align-items: center;
197
341
  justify-content: space-between;
198
- margin-bottom: 14px;
342
+ gap: 12px;
343
+ padding-bottom: 12px;
344
+ margin-bottom: 16px;
345
+ border-bottom: 1px solid var(--line);
199
346
  }
200
347
 
201
348
  .card-title {
202
349
  margin: 0;
203
- font-size: 16px;
350
+ font-size: 14px;
204
351
  font-weight: 600;
352
+ color: var(--ink);
205
353
  }
206
354
 
207
- .stats-grid {
355
+ .card-body {
356
+ color: var(--text);
357
+ }
358
+
359
+ .card-grid {
208
360
  display: grid;
209
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
210
- gap: 14px;
211
- margin-bottom: 20px;
361
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
362
+ gap: 16px;
212
363
  }
213
364
 
214
- .stat-card {
215
- background: var(--card);
216
- border: 1px solid var(--border);
217
- border-radius: var(--radius);
218
- padding: 16px;
365
+ .search-card {
366
+ cursor: pointer;
367
+ transition: background 0.15s ease, border-color 0.15s ease;
219
368
  }
220
369
 
221
- .stat-value {
222
- font-size: 28px;
223
- font-weight: 700;
224
- color: var(--text);
225
- margin-bottom: 4px;
370
+ .search-card:hover {
371
+ background: var(--soft);
372
+ border-color: var(--line);
226
373
  }
227
374
 
228
- .stat-label {
229
- font-size: 13px;
230
- color: var(--text-secondary);
231
- text-transform: capitalize;
375
+ .search-card .card-title {
376
+ margin-bottom: 6px;
232
377
  }
233
378
 
234
- .essence-editor {
235
- width: 100%;
236
- min-height: 320px;
379
+ .search-card .card-meta {
380
+ font-size: 12px;
381
+ color: var(--muted);
382
+ }
383
+
384
+ .composer-card {
237
385
  background: var(--bg);
238
- border: 1px solid var(--border);
239
- border-radius: 8px;
240
- color: var(--text);
241
- font-family: var(--font);
386
+ border: 1px solid var(--line);
387
+ border-radius: 20px;
388
+ box-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 6%, transparent), 0 0 0 1px color-mix(in srgb, var(--line) 50%, transparent);
389
+ overflow: hidden;
390
+ }
391
+
392
+ .composer-header {
393
+ display: flex;
394
+ align-items: center;
395
+ justify-content: space-between;
396
+ gap: 12px;
397
+ padding: 12px 16px;
398
+ border-bottom: 1px solid var(--line);
399
+ }
400
+
401
+ .composer-title {
402
+ margin: 0;
242
403
  font-size: 14px;
243
- line-height: 1.6;
244
- padding: 14px;
245
- resize: vertical;
246
- outline: none;
247
- transition: border-color 0.15s ease;
404
+ font-weight: 600;
405
+ color: var(--ink);
248
406
  }
249
407
 
250
- .essence-editor:focus {
251
- border-color: var(--accent);
408
+ .composer-body {
409
+ padding: 16px;
410
+ max-height: calc(100vh - 260px);
411
+ overflow-y: auto;
252
412
  }
253
413
 
254
- .status {
255
- margin-top: 10px;
256
- font-size: 13px;
414
+ .composer-status {
415
+ padding: 8px 16px 12px;
416
+ font-size: 12px;
417
+ color: var(--muted);
257
418
  min-height: 20px;
258
419
  }
259
420
 
260
- .status.success {
261
- color: var(--success);
421
+ .composer-status.success {
422
+ color: var(--ok, #3fb950);
262
423
  }
263
424
 
264
- .status.error {
265
- color: var(--danger);
425
+ .composer-status.error {
426
+ color: var(--err, #f85149);
266
427
  }
267
428
 
268
429
  .btn {
@@ -270,218 +431,452 @@ body {
270
431
  align-items: center;
271
432
  justify-content: center;
272
433
  gap: 6px;
273
- padding: 8px 14px;
274
- border-radius: 8px;
275
- font-size: 14px;
434
+ padding: 6px 12px;
435
+ border-radius: var(--r-sm);
436
+ font-size: 13px;
276
437
  font-weight: 500;
277
438
  border: 1px solid transparent;
278
439
  cursor: pointer;
279
440
  transition: background 0.15s ease, border-color 0.15s ease;
280
- background: var(--hover);
281
- color: var(--text);
441
+ background: var(--soft);
442
+ color: var(--ink);
443
+ text-decoration: none;
282
444
  }
283
445
 
284
446
  .btn:hover {
285
- background: #2a2a2a;
447
+ background: var(--panel2);
286
448
  }
287
449
 
288
450
  .btn-primary {
289
- background: var(--accent);
290
- color: #fff;
451
+ background: var(--blue);
452
+ color: var(--bg);
291
453
  }
292
454
 
293
455
  .btn-primary:hover {
294
- background: var(--accent-hover);
456
+ background: var(--blue2);
295
457
  }
296
458
 
297
- .btn-ghost {
459
+ .btn-secondary {
298
460
  background: transparent;
299
- border-color: var(--border);
300
- color: var(--text-secondary);
301
- width: 100%;
461
+ border-color: var(--line);
462
+ color: var(--ink);
302
463
  }
303
464
 
304
- .btn-ghost:hover {
305
- background: var(--hover);
306
- color: var(--text);
465
+ .btn-secondary:hover {
466
+ background: var(--soft);
467
+ }
468
+
469
+ .btn-danger {
470
+ background: transparent;
471
+ border-color: var(--err);
472
+ color: var(--err);
473
+ }
474
+
475
+ .btn-danger:hover {
476
+ background: color-mix(in srgb, var(--err) 10%, transparent);
307
477
  }
308
478
 
309
479
  .btn-sm {
310
- padding: 6px 10px;
480
+ padding: 4px 8px;
311
481
  font-size: 12px;
312
482
  }
313
483
 
314
- .themes-grid {
484
+ .stat-grid {
315
485
  display: grid;
316
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
317
- gap: 14px;
486
+ grid-template-columns: repeat(4, 1fr);
487
+ gap: 12px;
488
+ margin-bottom: 20px;
318
489
  }
319
490
 
320
- .theme-card {
321
- background: var(--card);
322
- border: 1px solid var(--border);
323
- border-radius: var(--radius);
491
+ .stat-card {
492
+ background: var(--canvas);
493
+ border: 1px solid var(--line);
494
+ border-radius: var(--r-lg);
324
495
  padding: 16px;
325
- cursor: pointer;
326
- transition: border-color 0.15s ease, transform 0.1s ease;
327
496
  }
328
497
 
329
- .theme-card:hover {
330
- border-color: var(--accent);
331
- transform: translateY(-2px);
332
- }
333
-
334
- .theme-name {
335
- font-size: 15px;
336
- font-weight: 600;
337
- margin-bottom: 6px;
338
- word-break: break-word;
498
+ .stat-value {
499
+ font-size: 28px;
500
+ font-weight: 700;
501
+ color: var(--ink);
502
+ margin-bottom: 4px;
503
+ letter-spacing: -0.02em;
504
+ }
505
+
506
+ .stat-label {
507
+ font-size: 12px;
508
+ color: var(--muted);
509
+ text-transform: capitalize;
510
+ }
511
+
512
+ .essence-editor {
513
+ width: 100%;
514
+ min-height: 320px;
515
+ background: transparent;
516
+ border: none;
517
+ color: var(--ink);
518
+ font-family: var(--sans);
519
+ font-size: 14px;
520
+ line-height: 1.6;
521
+ padding: 0;
522
+ resize: vertical;
523
+ outline: none;
524
+ }
525
+
526
+ .essence-editor::placeholder {
527
+ color: var(--dim);
528
+ }
529
+
530
+ .essence-content {
531
+ word-break: break-word;
532
+ color: var(--text);
533
+ }
534
+
535
+ .memory-meta {
536
+ margin-bottom: 12px;
537
+ }
538
+
539
+ .memory-title {
540
+ font-size: 16px;
541
+ font-weight: 600;
542
+ color: var(--ink);
543
+ margin-bottom: 8px;
544
+ }
545
+
546
+ .memory-content {
547
+ word-break: break-word;
548
+ color: var(--text);
549
+ }
550
+
551
+ .md-content {
552
+ color: var(--text);
553
+ line-height: 1.7;
554
+ }
555
+
556
+ .md-content h1,
557
+ .md-content h2,
558
+ .md-content h3,
559
+ .md-content h4,
560
+ .md-content h5,
561
+ .md-content h6 {
562
+ color: var(--ink);
563
+ margin: 16px 0 8px;
564
+ font-weight: 600;
565
+ }
566
+
567
+ .md-content h1 { font-size: 20px; }
568
+ .md-content h2 { font-size: 18px; }
569
+ .md-content h3 { font-size: 16px; }
570
+ .md-content h4,
571
+ .md-content h5,
572
+ .md-content h6 { font-size: 14px; }
573
+
574
+ .md-content p {
575
+ margin: 0 0 12px;
576
+ }
577
+
578
+ .md-content ul,
579
+ .md-content ol {
580
+ margin: 0 0 12px 18px;
581
+ padding: 0;
582
+ }
583
+
584
+ .md-content li {
585
+ margin-bottom: 4px;
586
+ }
587
+
588
+ .md-content blockquote {
589
+ margin: 0 0 12px;
590
+ padding: 8px 12px;
591
+ border-left: 3px solid var(--blue);
592
+ background: var(--canvas);
593
+ color: var(--muted);
594
+ }
595
+
596
+ .md-content pre {
597
+ background: var(--canvas);
598
+ border: 1px solid var(--line);
599
+ border-radius: var(--r-sm);
600
+ padding: 12px;
601
+ overflow-x: auto;
602
+ margin: 0 0 12px;
603
+ }
604
+
605
+ .md-content code {
606
+ font-family: var(--mono);
607
+ font-size: 12px;
608
+ background: var(--canvas);
609
+ padding: 2px 5px;
610
+ border-radius: 4px;
611
+ }
612
+
613
+ .md-content pre code {
614
+ background: transparent;
615
+ padding: 0;
616
+ }
617
+
618
+ .md-content a {
619
+ color: var(--blue);
620
+ text-decoration: none;
621
+ }
622
+
623
+ .md-content a:hover {
624
+ text-decoration: underline;
625
+ }
626
+
627
+ .md-content hr {
628
+ border: none;
629
+ border-top: 1px solid var(--line);
630
+ margin: 16px 0;
631
+ }
632
+
633
+ .theme-grid {
634
+ display: grid;
635
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
636
+ gap: 12px;
637
+ }
638
+
639
+ .theme-card {
640
+ background: var(--canvas);
641
+ border: 1px solid var(--line);
642
+ border-radius: var(--r-lg);
643
+ padding: 16px;
644
+ cursor: pointer;
645
+ transition: border-color 0.15s ease, background 0.15s ease;
646
+ }
647
+
648
+ .theme-card:hover {
649
+ border-color: var(--blue);
650
+ background: var(--panel);
651
+ }
652
+
653
+ .theme-name {
654
+ font-size: 14px;
655
+ font-weight: 600;
656
+ margin-bottom: 8px;
657
+ color: var(--ink);
658
+ word-break: break-word;
339
659
  }
340
660
 
341
661
  .theme-meta {
342
662
  font-size: 12px;
343
- color: var(--text-secondary);
663
+ color: var(--muted);
344
664
  display: flex;
345
665
  gap: 12px;
346
666
  }
347
667
 
668
+ .search-input {
669
+ background: var(--canvas);
670
+ border: 1px solid var(--line);
671
+ border-radius: var(--r-sm);
672
+ color: var(--ink);
673
+ padding: 6px 12px;
674
+ font-size: 13px;
675
+ outline: none;
676
+ min-width: 180px;
677
+ }
678
+
679
+ .search-input:focus {
680
+ border-color: var(--blue);
681
+ }
682
+
683
+ .inline-edit {
684
+ display: flex;
685
+ align-items: center;
686
+ gap: 10px;
687
+ }
688
+
689
+ .page-header-actions {
690
+ display: flex;
691
+ align-items: center;
692
+ gap: 6px;
693
+ }
694
+
695
+ .inline-edit input {
696
+ flex: 1;
697
+ background: var(--canvas);
698
+ border: 1px solid var(--line);
699
+ border-radius: var(--r-sm);
700
+ color: var(--ink);
701
+ padding: 6px 10px;
702
+ font-size: 13px;
703
+ outline: none;
704
+ min-width: 140px;
705
+ }
706
+
707
+ .inline-edit input:focus {
708
+ border-color: var(--blue);
709
+ }
710
+
348
711
  .decisions-list {
349
712
  display: flex;
350
713
  flex-direction: column;
351
- gap: 14px;
714
+ gap: 8px;
352
715
  }
353
716
 
354
- .decision-card {
355
- background: var(--card);
356
- border: 1px solid var(--border);
357
- border-radius: var(--radius);
358
- padding: 16px;
717
+ .decision-row {
718
+ display: flex;
719
+ align-items: flex-start;
720
+ gap: 16px;
721
+ background: var(--canvas);
722
+ border: 1px solid var(--line);
723
+ border-left: 3px solid transparent;
724
+ border-radius: var(--r-md);
725
+ padding: 12px 16px;
726
+ transition: background 0.15s ease, border-color 0.15s ease;
359
727
  }
360
728
 
361
- .decision-header {
362
- display: flex;
363
- align-items: center;
364
- justify-content: space-between;
365
- margin-bottom: 10px;
729
+ .decision-row:hover {
730
+ background: var(--panel);
731
+ border-left-color: var(--blue);
366
732
  }
367
733
 
368
- .decision-title {
369
- font-size: 14px;
370
- font-weight: 600;
371
- margin: 0;
734
+ .decision-row-main {
735
+ flex: 1;
736
+ min-width: 0;
372
737
  }
373
738
 
374
- .decision-time {
739
+ .decision-row-title {
375
740
  font-family: var(--mono);
376
- font-size: 11px;
377
- color: var(--text-secondary);
741
+ font-size: 12px;
742
+ color: var(--ink);
743
+ margin-bottom: 4px;
744
+ white-space: nowrap;
745
+ overflow: hidden;
746
+ text-overflow: ellipsis;
378
747
  }
379
748
 
380
- .decision-summary {
749
+ .decision-row-summary {
381
750
  font-size: 14px;
382
- color: var(--text-secondary);
383
- margin-bottom: 12px;
751
+ color: var(--text);
752
+ margin-bottom: 8px;
753
+ display: -webkit-box;
754
+ -webkit-line-clamp: 2;
755
+ -webkit-box-orient: vertical;
756
+ overflow: hidden;
757
+ }
758
+
759
+ .decision-row-meta {
760
+ flex: none;
761
+ text-align: right;
762
+ }
763
+
764
+ .decision-time {
765
+ font-family: var(--mono);
766
+ font-size: 11px;
767
+ color: var(--dim);
768
+ white-space: nowrap;
384
769
  }
385
770
 
386
771
  .decision-bullets {
387
- margin: 0;
388
- padding-left: 18px;
389
- font-size: 14px;
772
+ margin: 0 0 12px;
773
+ padding-left: 16px;
774
+ font-size: 12px;
775
+ color: var(--muted);
390
776
  }
391
777
 
392
778
  .decision-bullets li {
393
- margin-bottom: 6px;
779
+ margin-bottom: 4px;
394
780
  }
395
781
 
396
782
  .tag-list {
397
783
  display: flex;
398
784
  flex-wrap: wrap;
399
785
  gap: 6px;
400
- margin-top: 12px;
401
786
  }
402
787
 
403
- .tag {
788
+ .tag,
789
+ .badge {
790
+ display: inline-flex;
791
+ align-items: center;
792
+ font-family: var(--mono);
404
793
  font-size: 11px;
405
- padding: 3px 8px;
406
- border-radius: 999px;
407
- background: var(--hover);
408
- color: var(--text-secondary);
409
- border: 1px solid var(--border);
794
+ padding: 2px 8px;
795
+ border-radius: 99px;
796
+ background: var(--soft);
797
+ color: var(--muted);
798
+ border: 1px solid var(--line);
799
+ white-space: nowrap;
410
800
  }
411
801
 
412
802
  .tag.file {
413
- font-family: var(--mono);
803
+ text-transform: none;
804
+ }
805
+
806
+ .badge {
807
+ color: var(--ink);
414
808
  }
415
809
 
416
810
  .memories-layout {
417
811
  display: grid;
418
- grid-template-columns: 320px 1fr;
812
+ grid-template-columns: 280px 1fr;
419
813
  gap: 16px;
420
- height: calc(100vh - 140px);
814
+ height: calc(100vh - 130px);
421
815
  }
422
816
 
423
817
  .memory-tree,
424
818
  .memory-preview {
425
- background: var(--card);
426
- border: 1px solid var(--border);
427
- border-radius: var(--radius);
819
+ background: var(--canvas);
820
+ border: 1px solid var(--line);
821
+ border-radius: var(--r-lg);
428
822
  overflow-y: auto;
429
- padding: 14px;
823
+ padding: 12px;
430
824
  }
431
825
 
432
826
  .tree-node {
433
- margin-left: 14px;
827
+ margin-left: 12px;
434
828
  }
435
829
 
436
830
  .tree-folder {
437
831
  display: flex;
438
832
  align-items: center;
439
- gap: 8px;
440
- padding: 6px 0;
833
+ gap: 6px;
834
+ padding: 2px 0;
441
835
  font-size: 14px;
442
836
  font-weight: 500;
443
- color: var(--text);
837
+ color: var(--ink);
444
838
  cursor: pointer;
445
839
  user-select: none;
446
840
  }
447
841
 
448
842
  .tree-folder:hover {
449
- color: var(--accent);
843
+ color: var(--blue);
450
844
  }
451
845
 
452
846
  .tree-folder-icon {
453
- color: var(--accent);
847
+ color: var(--blue);
848
+ font-size: 11px;
454
849
  }
455
850
 
456
851
  .tree-file {
457
852
  display: flex;
458
853
  align-items: center;
459
- gap: 8px;
460
- padding: 5px 0 5px 22px;
854
+ gap: 6px;
855
+ padding: 4px 8px;
856
+ margin-left: 12px;
461
857
  font-size: 13px;
462
- color: var(--text-secondary);
858
+ color: var(--muted);
463
859
  cursor: pointer;
464
- border-radius: 6px;
860
+ border-radius: var(--r-sm);
861
+ border-left: 3px solid transparent;
862
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
863
+ }
864
+
865
+ .tree-file:hover {
866
+ background: var(--soft);
867
+ color: var(--ink);
465
868
  }
466
869
 
467
- .tree-file:hover,
468
870
  .tree-file.active {
469
- background: var(--hover);
470
- color: var(--text);
871
+ background: var(--bluebg);
872
+ color: var(--ink);
873
+ border-left-color: var(--blue);
471
874
  }
472
875
 
473
876
  .tree-comment {
474
877
  font-size: 12px;
475
- color: var(--text-secondary);
476
- margin: -4px 0 6px 22px;
477
- }
478
-
479
- .memory-preview .empty-state {
480
- display: grid;
481
- place-items: center;
482
- height: 100%;
483
- color: var(--text-secondary);
484
- font-size: 14px;
878
+ color: var(--dim);
879
+ margin: -4px 0 8px 12px;
485
880
  }
486
881
 
487
882
  .preview-header {
@@ -489,22 +884,26 @@ body {
489
884
  align-items: flex-start;
490
885
  justify-content: space-between;
491
886
  gap: 12px;
492
- margin-bottom: 14px;
493
- padding-bottom: 14px;
494
- border-bottom: 1px solid var(--border);
887
+ margin-bottom: 16px;
888
+ padding-bottom: 16px;
889
+ border-bottom: 1px solid var(--line);
495
890
  }
496
891
 
497
892
  .preview-title {
498
893
  margin: 0;
499
- font-size: 18px;
894
+ font-size: 16px;
500
895
  font-weight: 600;
896
+ color: var(--ink);
501
897
  }
502
898
 
503
899
  .preview-path {
504
900
  font-family: var(--mono);
505
901
  font-size: 12px;
506
- color: var(--text-secondary);
902
+ color: var(--dim);
507
903
  margin-top: 4px;
904
+ white-space: nowrap;
905
+ overflow: hidden;
906
+ text-overflow: ellipsis;
508
907
  }
509
908
 
510
909
  .preview-content {
@@ -512,187 +911,472 @@ body {
512
911
  line-height: 1.7;
513
912
  white-space: pre-wrap;
514
913
  word-break: break-word;
914
+ color: var(--ink);
515
915
  }
516
916
 
517
- .timeline {
518
- display: flex;
519
- flex-direction: column;
520
- gap: 16px;
917
+ .preview-content.error {
918
+ color: var(--err, #f85149);
521
919
  }
522
920
 
523
- .timeline-item {
524
- position: relative;
525
- padding-left: 28px;
921
+ .folder-tree,
922
+ .memory-editor {
923
+ background: var(--canvas);
924
+ border: 1px solid var(--line);
925
+ border-radius: var(--r-lg);
926
+ overflow-y: auto;
927
+ padding: 8px;
526
928
  }
527
929
 
528
- .timeline-item::before {
529
- content: '';
530
- position: absolute;
531
- left: 6px;
532
- top: 28px;
533
- bottom: -16px;
534
- width: 2px;
535
- background: var(--border);
930
+ .memory-editor {
931
+ display: flex;
932
+ flex-direction: column;
933
+ gap: 16px;
536
934
  }
537
935
 
538
- .timeline-item:last-child::before {
539
- display: none;
936
+ .folder-branch {
937
+ display: flex;
938
+ flex-direction: column;
540
939
  }
541
940
 
542
- .timeline-dot {
543
- position: absolute;
544
- left: 0;
545
- top: 6px;
546
- width: 14px;
547
- height: 14px;
548
- border-radius: 50%;
549
- background: var(--accent);
550
- border: 3px solid var(--card);
941
+ .folder-row {
942
+ display: flex;
943
+ align-items: center;
944
+ justify-content: space-between;
945
+ gap: 6px;
946
+ padding: 5px 8px;
947
+ border-radius: var(--r-sm);
948
+ cursor: pointer;
949
+ user-select: none;
950
+ transition: background 0.15s ease;
551
951
  }
552
952
 
553
- .timeline-dot.memory {
554
- background: var(--success);
953
+ .folder-row:hover {
954
+ background: var(--soft);
555
955
  }
556
956
 
557
- .timeline-time {
558
- font-family: var(--mono);
559
- font-size: 11px;
560
- color: var(--text-secondary);
561
- margin-bottom: 6px;
957
+ .folder-row.active {
958
+ background: var(--bluebg);
562
959
  }
563
960
 
564
- .timeline-card {
565
- background: var(--card);
566
- border: 1px solid var(--border);
567
- border-radius: var(--radius);
568
- padding: 14px;
961
+ .folder-row-main {
962
+ display: flex;
963
+ align-items: center;
964
+ gap: 6px;
965
+ min-width: 0;
966
+ flex: 1;
569
967
  }
570
968
 
571
- .timeline-card h4 {
572
- margin: 0 0 8px;
573
- font-size: 14px;
574
- font-weight: 600;
969
+ .folder-icon {
970
+ flex: none;
971
+ font-size: 13px;
575
972
  }
576
973
 
577
- .timeline-card p {
578
- margin: 0 0 10px;
974
+ .folder-name {
579
975
  font-size: 13px;
580
- color: var(--text-secondary);
976
+ color: var(--ink);
977
+ white-space: nowrap;
978
+ overflow: hidden;
979
+ text-overflow: ellipsis;
581
980
  }
582
981
 
583
- .timeline-meta {
584
- font-size: 12px;
585
- color: var(--text-secondary);
982
+ .folder-count {
983
+ font-size: 11px;
984
+ color: var(--muted);
985
+ background: var(--soft);
986
+ padding: 1px 5px;
987
+ border-radius: 9px;
988
+ line-height: 1;
989
+ }
990
+
991
+ .tree-file-list {
586
992
  display: flex;
587
- flex-wrap: wrap;
588
- gap: 10px;
993
+ flex-direction: column;
589
994
  }
590
995
 
591
- .modal {
592
- display: none;
593
- position: fixed;
594
- inset: 0;
595
- z-index: 100;
996
+ .tree-file-row {
997
+ display: flex;
998
+ align-items: center;
999
+ gap: 6px;
1000
+ padding: 5px 8px;
1001
+ border-radius: var(--r-sm);
1002
+ cursor: pointer;
1003
+ min-width: 0;
596
1004
  }
597
1005
 
598
- .modal.open {
599
- display: block;
1006
+ .tree-file-row:hover {
1007
+ background: var(--soft);
600
1008
  }
601
1009
 
602
- .modal-backdrop {
603
- position: absolute;
604
- inset: 0;
605
- background: rgba(0, 0, 0, 0.7);
606
- backdrop-filter: blur(2px);
1010
+ .tree-file-row.active {
1011
+ background: var(--bluebg);
607
1012
  }
608
1013
 
609
- .modal-content {
610
- position: absolute;
611
- top: 50%;
612
- left: 50%;
613
- transform: translate(-50%, -50%);
614
- width: min(900px, calc(100vw - 32px));
615
- max-height: calc(100vh - 48px);
616
- background: var(--card);
617
- border: 1px solid var(--border);
618
- border-radius: var(--radius);
619
- display: flex;
620
- flex-direction: column;
1014
+ .tree-file-row .file-icon {
1015
+ flex: none;
1016
+ font-size: 13px;
621
1017
  }
622
1018
 
623
- .modal-header {
624
- display: flex;
1019
+ .tree-file-row .file-name {
1020
+ font-size: 13px;
1021
+ color: var(--ink);
1022
+ white-space: nowrap;
1023
+ overflow: hidden;
1024
+ text-overflow: ellipsis;
1025
+ flex: 1;
1026
+ }
1027
+
1028
+ .folder-actions {
1029
+ display: flex;
625
1030
  align-items: center;
626
- justify-content: space-between;
627
- padding: 16px 20px;
628
- border-bottom: 1px solid var(--border);
1031
+ gap: 2px;
1032
+ opacity: 0;
1033
+ transition: opacity 0.15s ease;
629
1034
  }
630
1035
 
631
- .modal-title {
632
- margin: 0;
633
- font-size: 18px;
634
- font-weight: 600;
1036
+ .folder-row:hover .folder-actions {
1037
+ opacity: 1;
635
1038
  }
636
1039
 
637
- .modal-close {
638
- background: transparent;
1040
+ .icon-btn {
1041
+ width: 22px;
1042
+ height: 22px;
1043
+ display: inline-grid;
1044
+ place-items: center;
639
1045
  border: none;
640
- color: var(--text-secondary);
641
- font-size: 24px;
1046
+ background: transparent;
1047
+ color: var(--muted);
1048
+ border-radius: var(--r-sm);
642
1049
  cursor: pointer;
1050
+ font-size: 12px;
1051
+ line-height: 1;
1052
+ }
1053
+
1054
+ .icon-btn:hover {
1055
+ background: var(--panel2);
1056
+ color: var(--ink);
1057
+ }
1058
+
1059
+ .file-list-section {
1060
+ flex: 1;
1061
+ min-height: 0;
1062
+ display: flex;
1063
+ flex-direction: column;
1064
+ }
1065
+
1066
+ .file-list-header {
1067
+ font-size: 12px;
1068
+ font-weight: 600;
1069
+ color: var(--ink);
1070
+ margin-bottom: 8px;
1071
+ padding: 0 4px;
643
1072
  }
644
1073
 
645
- .modal-close:hover {
1074
+ .file-list {
1075
+ display: flex;
1076
+ flex-direction: column;
1077
+ gap: 4px;
1078
+ }
1079
+
1080
+ .file-row {
1081
+ display: flex;
1082
+ align-items: center;
1083
+ gap: 8px;
1084
+ padding: 6px 10px;
1085
+ border-radius: var(--r-sm);
1086
+ cursor: pointer;
1087
+ border-left: 3px solid transparent;
1088
+ transition: background 0.15s ease, border-color 0.15s ease;
1089
+ }
1090
+
1091
+ .file-row:hover {
1092
+ background: var(--soft);
1093
+ }
1094
+
1095
+ .file-row.active {
1096
+ background: var(--bluebg);
1097
+ border-left-color: var(--blue);
1098
+ }
1099
+
1100
+ .file-icon {
1101
+ font-size: 13px;
1102
+ }
1103
+
1104
+ .file-name {
1105
+ font-size: 13px;
646
1106
  color: var(--text);
1107
+ white-space: nowrap;
1108
+ overflow: hidden;
1109
+ text-overflow: ellipsis;
647
1110
  }
648
1111
 
649
- .modal-body {
650
- padding: 20px;
651
- overflow-y: auto;
1112
+ .memory-composer .composer-body {
1113
+ display: flex;
1114
+ flex-direction: column;
1115
+ gap: 12px;
652
1116
  }
653
1117
 
654
- .inline-edit {
1118
+ .field-label {
1119
+ font-size: 12px;
1120
+ font-weight: 500;
1121
+ color: var(--muted);
1122
+ }
1123
+
1124
+ .composer-input,
1125
+ .composer-textarea {
1126
+ width: 100%;
1127
+ background: var(--canvas);
1128
+ border: 1px solid var(--line);
1129
+ border-radius: var(--r-sm);
1130
+ color: var(--ink);
1131
+ padding: 8px 10px;
1132
+ font-size: 13px;
1133
+ outline: none;
1134
+ }
1135
+
1136
+ .composer-input:focus,
1137
+ .composer-textarea:focus {
1138
+ border-color: var(--blue);
1139
+ }
1140
+
1141
+ .composer-textarea {
1142
+ min-height: 240px;
1143
+ resize: vertical;
1144
+ font-family: var(--sans);
1145
+ line-height: 1.6;
1146
+ }
1147
+
1148
+ .composer-footer {
655
1149
  display: flex;
656
1150
  align-items: center;
657
1151
  gap: 10px;
658
- margin-bottom: 16px;
1152
+ padding: 12px 16px;
1153
+ border-top: 1px solid var(--line);
659
1154
  }
660
1155
 
661
- .inline-edit input {
662
- flex: 1;
1156
+ .timeline {
1157
+ display: flex;
1158
+ flex-direction: column;
1159
+ gap: 16px;
1160
+ position: relative;
1161
+ padding-left: 24px;
1162
+ }
1163
+
1164
+ .timeline::before {
1165
+ content: '';
1166
+ position: absolute;
1167
+ left: 7px;
1168
+ top: 8px;
1169
+ bottom: 8px;
1170
+ width: 2px;
1171
+ background: var(--blue);
1172
+ border-radius: 1px;
1173
+ opacity: 0.4;
1174
+ }
1175
+
1176
+ .timeline-item {
1177
+ position: relative;
1178
+ }
1179
+
1180
+ .timeline-item::before {
1181
+ content: '';
1182
+ position: absolute;
1183
+ left: -21px;
1184
+ top: 8px;
1185
+ width: 10px;
1186
+ height: 10px;
1187
+ border-radius: 50%;
663
1188
  background: var(--bg);
664
- border: 1px solid var(--border);
665
- border-radius: 6px;
666
- color: var(--text);
667
- padding: 8px 10px;
1189
+ border: 2px solid var(--blue);
1190
+ z-index: 1;
1191
+ }
1192
+
1193
+ .timeline-item.memory::before {
1194
+ border-color: var(--ok, #3fb950);
1195
+ }
1196
+
1197
+ .timeline-header {
1198
+ display: flex;
1199
+ align-items: center;
1200
+ gap: 10px;
1201
+ margin-bottom: 6px;
1202
+ }
1203
+
1204
+ .timeline-time {
1205
+ font-family: var(--mono);
1206
+ font-size: 11px;
1207
+ color: var(--dim);
1208
+ }
1209
+
1210
+ .timeline-card {
1211
+ background: var(--canvas);
1212
+ border: 1px solid var(--line);
1213
+ border-radius: var(--r-lg);
1214
+ padding: 12px;
1215
+ }
1216
+
1217
+ .timeline-card h4 {
1218
+ margin: 0 0 8px;
668
1219
  font-size: 14px;
1220
+ font-weight: 600;
1221
+ color: var(--ink);
669
1222
  }
670
1223
 
671
- .inline-edit input:focus {
672
- outline: none;
673
- border-color: var(--accent);
1224
+ .timeline-card p {
1225
+ margin: 0 0 12px;
1226
+ font-size: 13px;
1227
+ color: var(--muted);
1228
+ display: -webkit-box;
1229
+ -webkit-line-clamp: 3;
1230
+ -webkit-box-orient: vertical;
1231
+ overflow: hidden;
1232
+ }
1233
+
1234
+ .timeline-meta {
1235
+ font-family: var(--mono);
1236
+ font-size: 11px;
1237
+ color: var(--dim);
1238
+ }
1239
+
1240
+ .settings-grid {
1241
+ display: grid;
1242
+ grid-template-columns: repeat(2, 1fr);
1243
+ gap: 16px;
1244
+ }
1245
+
1246
+ .info-row {
1247
+ display: flex;
1248
+ flex-direction: column;
1249
+ gap: 4px;
1250
+ margin-bottom: 12px;
1251
+ }
1252
+
1253
+ .info-label {
1254
+ font-size: 12px;
1255
+ color: var(--muted);
1256
+ }
1257
+
1258
+ .info-value {
1259
+ font-family: var(--mono);
1260
+ font-size: 12px;
1261
+ color: var(--ink);
1262
+ background: var(--panel);
1263
+ padding: 6px 8px;
1264
+ border-radius: var(--r-sm);
1265
+ border: 1px solid var(--line);
1266
+ word-break: break-all;
1267
+ }
1268
+
1269
+ .toggle-row {
1270
+ display: flex;
1271
+ align-items: center;
1272
+ justify-content: space-between;
1273
+ gap: 12px;
1274
+ font-size: 14px;
1275
+ color: var(--ink);
1276
+ }
1277
+
1278
+ .toggle-row input[type='checkbox'] {
1279
+ width: 16px;
1280
+ height: 16px;
1281
+ accent-color: var(--blue);
1282
+ cursor: pointer;
1283
+ }
1284
+
1285
+ .help-text {
1286
+ font-size: 12px;
1287
+ color: var(--dim);
1288
+ margin: 8px 0 0;
1289
+ }
1290
+
1291
+ .link-list {
1292
+ display: flex;
1293
+ flex-wrap: wrap;
1294
+ gap: 10px;
1295
+ }
1296
+
1297
+ .empty-state {
1298
+ display: grid;
1299
+ place-items: center;
1300
+ height: 100%;
1301
+ color: var(--dim);
1302
+ font-size: 14px;
1303
+ text-align: center;
1304
+ background: var(--canvas);
1305
+ border: 1px dashed var(--line);
1306
+ border-radius: var(--r-lg);
1307
+ padding: 24px;
674
1308
  }
675
1309
 
676
- @media (max-width: 820px) {
1310
+ .status-badge {
1311
+ display: inline-flex;
1312
+ align-items: center;
1313
+ gap: 6px;
1314
+ font-size: 12px;
1315
+ color: var(--muted);
1316
+ padding: 4px 10px;
1317
+ border-radius: 99px;
1318
+ border: 1px solid var(--line);
1319
+ background: var(--canvas);
1320
+ }
1321
+
1322
+ .status-dot {
1323
+ width: 7px;
1324
+ height: 7px;
1325
+ border-radius: 50%;
1326
+ background: var(--ok, #3fb950);
1327
+ }
1328
+
1329
+ @keyframes fadeIn {
1330
+ from {
1331
+ opacity: 0;
1332
+ transform: translateY(6px);
1333
+ }
1334
+ to {
1335
+ opacity: 1;
1336
+ transform: translateY(0);
1337
+ }
1338
+ }
1339
+
1340
+ @media (max-width: 1024px) {
1341
+ .stat-grid {
1342
+ grid-template-columns: repeat(2, 1fr);
1343
+ }
1344
+ .settings-grid {
1345
+ grid-template-columns: 1fr;
1346
+ }
1347
+ }
1348
+
1349
+ @media (max-width: 768px) {
1350
+ .app,
1351
+ .app.sidebar-collapsed {
1352
+ grid-template-columns: 0 1fr;
1353
+ }
1354
+
677
1355
  .sidebar {
678
1356
  position: fixed;
679
1357
  left: 0;
680
1358
  top: 0;
681
1359
  bottom: 0;
1360
+ width: 260px;
682
1361
  z-index: 50;
683
1362
  transform: translateX(-100%);
1363
+ transition: transform 0.2s ease;
684
1364
  }
685
1365
 
686
1366
  .sidebar.open {
687
1367
  transform: translateX(0);
688
1368
  }
689
1369
 
1370
+ .sidebar-collapsed-top {
1371
+ display: none !important;
1372
+ }
1373
+
690
1374
  .menu-toggle {
691
- display: block;
1375
+ display: grid;
692
1376
  }
693
1377
 
694
- .content {
695
- padding: 16px;
1378
+ .stat-grid {
1379
+ grid-template-columns: 1fr;
696
1380
  }
697
1381
 
698
1382
  .memories-layout {
@@ -701,7 +1385,169 @@ body {
701
1385
  }
702
1386
 
703
1387
  .memory-tree,
704
- .memory-preview {
1388
+ .memory-preview,
1389
+ .folder-tree,
1390
+ .memory-editor {
705
1391
  min-height: 240px;
706
1392
  }
1393
+
1394
+ .decision-row {
1395
+ flex-direction: column;
1396
+ gap: 8px;
1397
+ }
1398
+
1399
+ .decision-row-meta {
1400
+ text-align: left;
1401
+ }
1402
+
1403
+ .theme-grid {
1404
+ grid-template-columns: 1fr;
1405
+ }
1406
+
1407
+ .page-header {
1408
+ flex-wrap: wrap;
1409
+ }
1410
+ }
1411
+
1412
+ /* Search / Theme views */
1413
+ .search-table-wrap {
1414
+ overflow-x: auto;
1415
+ }
1416
+
1417
+ .theme-icon {
1418
+ color: var(--blue);
1419
+ margin-right: 8px;
1420
+ font-size: 12px;
1421
+ }
1422
+
1423
+ .search-table {
1424
+ width: 100%;
1425
+ border-collapse: collapse;
1426
+ font-size: 13px;
1427
+ }
1428
+
1429
+ .search-table th,
1430
+ .search-table td {
1431
+ padding: 10px 12px;
1432
+ text-align: left;
1433
+ border-bottom: 1px solid var(--line);
1434
+ }
1435
+
1436
+ .search-table th {
1437
+ color: var(--muted);
1438
+ font-weight: 500;
1439
+ background: var(--soft);
1440
+ }
1441
+
1442
+ .search-row {
1443
+ cursor: pointer;
1444
+ transition: background 0.12s ease;
1445
+ }
1446
+
1447
+ .search-row:hover {
1448
+ background: var(--soft);
1449
+ }
1450
+
1451
+ .search-query {
1452
+ color: var(--ink);
1453
+ font-weight: 500;
1454
+ max-width: 360px;
1455
+ white-space: nowrap;
1456
+ overflow: hidden;
1457
+ text-overflow: ellipsis;
1458
+ }
1459
+
1460
+ .search-number {
1461
+ text-align: right;
1462
+ width: 90px;
1463
+ }
1464
+
1465
+ .search-actions {
1466
+ text-align: right;
1467
+ width: 100px;
1468
+ white-space: nowrap;
1469
+ }
1470
+
1471
+ .timeline-item.hit .timeline-dot {
1472
+ background: var(--blue);
1473
+ border-color: var(--blue);
1474
+ }
1475
+
1476
+ /* Modal */
1477
+ .modal-backdrop {
1478
+ position: fixed;
1479
+ inset: 0;
1480
+ background: rgba(0, 0, 0, 0.5);
1481
+ display: grid;
1482
+ place-items: center;
1483
+ z-index: 100;
1484
+ }
1485
+
1486
+ .modal {
1487
+ background: var(--bg);
1488
+ border: 1px solid var(--line);
1489
+ border-radius: var(--r-lg);
1490
+ width: min(720px, 90vw);
1491
+ max-height: 80vh;
1492
+ display: flex;
1493
+ flex-direction: column;
1494
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
1495
+ }
1496
+
1497
+ .modal-header {
1498
+ display: flex;
1499
+ align-items: center;
1500
+ justify-content: space-between;
1501
+ padding: 14px 18px;
1502
+ border-bottom: 1px solid var(--line);
1503
+ }
1504
+
1505
+ .modal-header h3 {
1506
+ margin: 0;
1507
+ font-size: 15px;
1508
+ font-weight: 600;
1509
+ }
1510
+
1511
+ .modal-close {
1512
+ background: transparent;
1513
+ border: none;
1514
+ font-size: 22px;
1515
+ color: var(--muted);
1516
+ cursor: pointer;
1517
+ }
1518
+
1519
+ .modal-body {
1520
+ padding: 18px;
1521
+ overflow-y: auto;
1522
+ }
1523
+
1524
+ .modal-body h4 {
1525
+ margin: 18px 0 8px;
1526
+ font-size: 13px;
1527
+ color: var(--muted);
1528
+ text-transform: uppercase;
1529
+ letter-spacing: 0.5px;
1530
+ }
1531
+
1532
+ .modal-body h4:first-child {
1533
+ margin-top: 0;
1534
+ }
1535
+
1536
+ .modal-body p {
1537
+ margin: 0 0 12px;
1538
+ line-height: 1.6;
1539
+ }
1540
+
1541
+ .refined-content {
1542
+ background: var(--panel);
1543
+ border: 1px solid var(--line);
1544
+ border-radius: var(--r-sm);
1545
+ padding: 12px;
1546
+ white-space: pre-wrap;
1547
+ word-break: break-word;
1548
+ font-family: var(--mono);
1549
+ font-size: 13px;
1550
+ line-height: 1.6;
1551
+ max-height: 360px;
1552
+ overflow-y: auto;
707
1553
  }