@iamem/amem 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.
Files changed (104) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +534 -0
  3. package/dist/activity.d.ts +27 -0
  4. package/dist/activity.js +202 -0
  5. package/dist/api/routes.d.ts +31 -0
  6. package/dist/api/routes.js +1345 -0
  7. package/dist/attest.d.ts +52 -0
  8. package/dist/attest.js +192 -0
  9. package/dist/backup-schedule.d.ts +25 -0
  10. package/dist/backup-schedule.js +216 -0
  11. package/dist/capture.d.ts +34 -0
  12. package/dist/capture.js +257 -0
  13. package/dist/cli.d.ts +2 -0
  14. package/dist/cli.js +1007 -0
  15. package/dist/context.d.ts +46 -0
  16. package/dist/context.js +334 -0
  17. package/dist/crypto.d.ts +39 -0
  18. package/dist/crypto.js +166 -0
  19. package/dist/db.d.ts +192 -0
  20. package/dist/db.js +666 -0
  21. package/dist/draft-quality.d.ts +19 -0
  22. package/dist/draft-quality.js +85 -0
  23. package/dist/embed.d.ts +76 -0
  24. package/dist/embed.js +331 -0
  25. package/dist/estimate.d.ts +32 -0
  26. package/dist/estimate.js +69 -0
  27. package/dist/freshness.d.ts +15 -0
  28. package/dist/freshness.js +93 -0
  29. package/dist/hook.d.ts +16 -0
  30. package/dist/hook.js +177 -0
  31. package/dist/hygiene-schedule.d.ts +28 -0
  32. package/dist/hygiene-schedule.js +221 -0
  33. package/dist/hygiene.d.ts +61 -0
  34. package/dist/hygiene.js +196 -0
  35. package/dist/install/claude.d.ts +6 -0
  36. package/dist/install/claude.js +69 -0
  37. package/dist/install/cursor.d.ts +7 -0
  38. package/dist/install/cursor.js +80 -0
  39. package/dist/install/hosts.d.ts +21 -0
  40. package/dist/install/hosts.js +186 -0
  41. package/dist/install/skills.d.ts +8 -0
  42. package/dist/install/skills.js +67 -0
  43. package/dist/it-pack.d.ts +20 -0
  44. package/dist/it-pack.js +84 -0
  45. package/dist/kinds.d.ts +18 -0
  46. package/dist/kinds.js +106 -0
  47. package/dist/license.d.ts +48 -0
  48. package/dist/license.js +172 -0
  49. package/dist/mcp.d.ts +40 -0
  50. package/dist/mcp.js +435 -0
  51. package/dist/paths.d.ts +11 -0
  52. package/dist/paths.js +55 -0
  53. package/dist/personal.d.ts +7 -0
  54. package/dist/personal.js +44 -0
  55. package/dist/platforms.d.ts +11 -0
  56. package/dist/platforms.js +32 -0
  57. package/dist/policy.d.ts +46 -0
  58. package/dist/policy.js +254 -0
  59. package/dist/prefs.d.ts +6 -0
  60. package/dist/prefs.js +11 -0
  61. package/dist/proposal.d.ts +90 -0
  62. package/dist/proposal.js +376 -0
  63. package/dist/publish.d.ts +28 -0
  64. package/dist/publish.js +57 -0
  65. package/dist/remember-contract.d.ts +23 -0
  66. package/dist/remember-contract.js +117 -0
  67. package/dist/repo-identity.d.ts +15 -0
  68. package/dist/repo-identity.js +82 -0
  69. package/dist/rules-sync.d.ts +7 -0
  70. package/dist/rules-sync.js +47 -0
  71. package/dist/savings-export.d.ts +49 -0
  72. package/dist/savings-export.js +141 -0
  73. package/dist/scan.d.ts +16 -0
  74. package/dist/scan.js +109 -0
  75. package/dist/search.d.ts +25 -0
  76. package/dist/search.js +150 -0
  77. package/dist/service.d.ts +20 -0
  78. package/dist/service.js +254 -0
  79. package/dist/shop.d.ts +9 -0
  80. package/dist/shop.js +15 -0
  81. package/dist/ui/server.d.ts +21 -0
  82. package/dist/ui/server.js +268 -0
  83. package/dist/vault.d.ts +25 -0
  84. package/dist/vault.js +42 -0
  85. package/dist/workspace-setup.d.ts +8 -0
  86. package/dist/workspace-setup.js +55 -0
  87. package/docs/agent-install-prompt.md +41 -0
  88. package/docs/backlog.md +59 -0
  89. package/docs/enterprise-endpoint.md +98 -0
  90. package/docs/license.md +54 -0
  91. package/docs/npm-release.md +38 -0
  92. package/docs/remember-contract.md +42 -0
  93. package/package.json +64 -0
  94. package/scripts/mdm-offboard.sh +14 -0
  95. package/skills/amem-bootstrap/SKILL.md +83 -0
  96. package/skills/amem-update-working-memory/SKILL.md +54 -0
  97. package/templates/cursor-rule.mdc +23 -0
  98. package/templates/mdm/co.amem.managed.plist +33 -0
  99. package/templates/policy.deny-default.toml +20 -0
  100. package/templates/policy.example.toml +22 -0
  101. package/ui-static/app.js +3966 -0
  102. package/ui-static/index.html +178 -0
  103. package/ui-static/orbit.js +389 -0
  104. package/ui-static/styles.css +2411 -0
@@ -0,0 +1,2411 @@
1
+ :root {
2
+ --bg0: #0b0f12;
3
+ --bg1: #141b21;
4
+ --bg2: #1a232b;
5
+ --ink: #e8eef2;
6
+ --muted: #8fa3b0;
7
+ --accent: #2ec4b6;
8
+ --accent-dim: #1a7a72;
9
+ --warn: #e8b86d;
10
+ --line: rgba(232, 238, 242, 0.1);
11
+ --claim: #7eb8ff;
12
+ --flow: #2ec4b6;
13
+ --component: #c4a46b;
14
+ --side-w: 212px;
15
+ --right-w: 300px;
16
+ --radius: 12px;
17
+ }
18
+
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ html,
24
+ body {
25
+ margin: 0;
26
+ height: 100%;
27
+ min-height: 100%;
28
+ background: var(--bg0);
29
+ color: var(--ink);
30
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
31
+ }
32
+
33
+ .app {
34
+ min-height: 100%;
35
+ height: 100%;
36
+ display: grid;
37
+ grid-template-columns: var(--side-w) 1fr;
38
+ overflow: hidden;
39
+ }
40
+
41
+ .side-nav {
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 0.85rem;
45
+ padding: 1.1rem 0.85rem 0.9rem;
46
+ border-right: 1px solid var(--line);
47
+ background: rgba(11, 15, 18, 0.96);
48
+ min-height: 0;
49
+ z-index: 12;
50
+ }
51
+
52
+ .side-nav .brand {
53
+ appearance: none;
54
+ border: 0;
55
+ background: transparent;
56
+ padding: 0.15rem 0.55rem;
57
+ color: inherit;
58
+ font: inherit;
59
+ font-size: 1.35rem;
60
+ font-weight: 700;
61
+ letter-spacing: -0.04em;
62
+ text-align: left;
63
+ cursor: pointer;
64
+ }
65
+
66
+ .side-tabs {
67
+ display: flex;
68
+ flex-direction: column;
69
+ gap: 0.25rem;
70
+ flex: 1;
71
+ min-height: 0;
72
+ }
73
+
74
+ .side-tabs button {
75
+ appearance: none;
76
+ display: flex;
77
+ align-items: center;
78
+ gap: 0.65rem;
79
+ width: 100%;
80
+ border: 1px solid transparent;
81
+ background: transparent;
82
+ color: var(--muted);
83
+ padding: 0.55rem 0.7rem;
84
+ border-radius: 10px;
85
+ cursor: pointer;
86
+ font: inherit;
87
+ font-size: 0.9rem;
88
+ font-weight: 500;
89
+ text-align: left;
90
+ }
91
+
92
+ .side-tabs button:hover {
93
+ color: var(--ink);
94
+ background: rgba(232, 238, 242, 0.04);
95
+ }
96
+
97
+ .side-tabs button.active {
98
+ color: var(--ink);
99
+ background: rgba(232, 238, 242, 0.08);
100
+ border-color: rgba(232, 238, 242, 0.06);
101
+ }
102
+
103
+ .nav-ico {
104
+ width: 0.55rem;
105
+ height: 0.55rem;
106
+ border-radius: 2px;
107
+ background: currentColor;
108
+ opacity: 0.45;
109
+ flex-shrink: 0;
110
+ }
111
+
112
+ .side-tabs button.active .nav-ico {
113
+ background: var(--accent);
114
+ opacity: 1;
115
+ }
116
+
117
+ .side-footer {
118
+ display: flex;
119
+ flex-direction: column;
120
+ gap: 0.3rem;
121
+ padding-top: 0.5rem;
122
+ border-top: 1px solid var(--line);
123
+ }
124
+
125
+ .side-foot-btn {
126
+ appearance: none;
127
+ border: 0;
128
+ background: transparent;
129
+ color: var(--muted);
130
+ font: inherit;
131
+ font-size: 0.8rem;
132
+ text-align: left;
133
+ padding: 0.45rem 0.7rem;
134
+ border-radius: 8px;
135
+ cursor: pointer;
136
+ }
137
+
138
+ .side-foot-btn:hover {
139
+ color: var(--ink);
140
+ background: rgba(232, 238, 242, 0.04);
141
+ }
142
+
143
+ .app-main {
144
+ display: flex;
145
+ flex-direction: column;
146
+ min-width: 0;
147
+ min-height: 0;
148
+ overflow: hidden;
149
+ background:
150
+ radial-gradient(900px 480px at 20% -20%, rgba(46, 196, 182, 0.08), transparent 55%),
151
+ radial-gradient(700px 400px at 90% 0%, rgba(126, 184, 255, 0.05), transparent 50%),
152
+ var(--bg0);
153
+ }
154
+
155
+ .top-bar {
156
+ display: flex;
157
+ align-items: center;
158
+ gap: 0.75rem 1rem;
159
+ flex-wrap: wrap;
160
+ padding: 0.7rem 1.15rem;
161
+ border-bottom: 1px solid var(--line);
162
+ background: rgba(11, 15, 18, 0.88);
163
+ backdrop-filter: blur(10px);
164
+ z-index: 10;
165
+ }
166
+
167
+ .vault-summary {
168
+ margin: 0;
169
+ min-width: 0;
170
+ max-width: 16rem;
171
+ color: var(--muted);
172
+ font-size: 0.72rem;
173
+ line-height: 1.35;
174
+ overflow: hidden;
175
+ text-overflow: ellipsis;
176
+ white-space: nowrap;
177
+ margin-left: auto;
178
+ }
179
+
180
+ .repo-switcher {
181
+ display: flex;
182
+ align-items: center;
183
+ flex-wrap: wrap;
184
+ gap: 0.45rem;
185
+ min-width: 0;
186
+ flex-shrink: 0;
187
+ }
188
+
189
+ .repo-switcher select {
190
+ max-width: min(240px, 32vw);
191
+ min-width: 0;
192
+ background: var(--bg2);
193
+ color: var(--ink);
194
+ border: 1px solid var(--line);
195
+ border-radius: 999px;
196
+ padding: 0.4rem 0.75rem;
197
+ font: inherit;
198
+ font-size: 0.85rem;
199
+ }
200
+
201
+ .top-search-wrap {
202
+ flex: 1 1 12rem;
203
+ min-width: 8rem;
204
+ max-width: 36rem;
205
+ display: flex;
206
+ align-items: center;
207
+ gap: 0.4rem;
208
+ }
209
+
210
+ .top-search-wrap.hidden {
211
+ display: none;
212
+ }
213
+
214
+ .top-search {
215
+ flex: 1 1 auto;
216
+ min-width: 0;
217
+ width: 100%;
218
+ background: var(--bg1);
219
+ color: var(--ink);
220
+ border: 1px solid var(--line);
221
+ border-radius: 999px;
222
+ padding: 0.5rem 0.95rem;
223
+ font: inherit;
224
+ font-size: 0.88rem;
225
+ }
226
+
227
+ .top-actions {
228
+ display: flex;
229
+ align-items: center;
230
+ flex-wrap: wrap;
231
+ gap: 0.45rem;
232
+ flex-shrink: 0;
233
+ }
234
+
235
+ .workspace {
236
+ flex: 1;
237
+ min-height: 0;
238
+ display: grid;
239
+ grid-template-columns: 1fr var(--right-w);
240
+ overflow: hidden;
241
+ }
242
+
243
+ .workspace.no-right {
244
+ grid-template-columns: 1fr;
245
+ }
246
+
247
+ .workspace.no-right .right-panel {
248
+ display: none;
249
+ }
250
+
251
+ .right-panel {
252
+ min-width: 0;
253
+ min-height: 0;
254
+ overflow: auto;
255
+ border-left: 1px solid var(--line);
256
+ background: rgba(20, 27, 33, 0.72);
257
+ padding: 0.9rem 0.95rem 1.1rem;
258
+ }
259
+
260
+ .right-panel h2 {
261
+ margin: 0 0 0.65rem;
262
+ font-size: 0.72rem;
263
+ letter-spacing: 0.06em;
264
+ text-transform: uppercase;
265
+ color: var(--muted);
266
+ font-weight: 600;
267
+ }
268
+
269
+ .fact-kpis {
270
+ display: grid;
271
+ grid-template-columns: 1fr 1fr;
272
+ gap: 0.5rem;
273
+ margin-bottom: 0.95rem;
274
+ }
275
+
276
+ .fact-kpi {
277
+ padding: 0.65rem 0.7rem;
278
+ border: 1px solid var(--line);
279
+ border-radius: var(--radius);
280
+ background: rgba(11, 15, 18, 0.55);
281
+ }
282
+
283
+ .fact-kpi b {
284
+ display: block;
285
+ font-size: 1.15rem;
286
+ font-weight: 700;
287
+ letter-spacing: -0.02em;
288
+ line-height: 1.2;
289
+ }
290
+
291
+ .fact-kpi span {
292
+ color: var(--muted);
293
+ font-size: 0.72rem;
294
+ }
295
+
296
+ .right-section {
297
+ margin-bottom: 1rem;
298
+ }
299
+
300
+ .right-section:last-child {
301
+ margin-bottom: 0;
302
+ }
303
+
304
+ .insight-card {
305
+ padding: 0.75rem 0.8rem;
306
+ border: 1px solid var(--line);
307
+ border-radius: var(--radius);
308
+ background: rgba(11, 15, 18, 0.45);
309
+ margin-bottom: 0.65rem;
310
+ }
311
+
312
+ .insight-card p {
313
+ margin: 0.35rem 0 0;
314
+ color: var(--muted);
315
+ font-size: 0.82rem;
316
+ }
317
+
318
+ .add-repo-panel {
319
+ padding: 0.85rem 1.5rem 1rem;
320
+ border-bottom: 1px solid var(--line);
321
+ background: var(--bg1);
322
+ }
323
+
324
+ .add-repo-panel.hidden {
325
+ display: none;
326
+ }
327
+
328
+ .add-repo-panel label {
329
+ display: block;
330
+ color: var(--muted);
331
+ font-size: 0.8rem;
332
+ margin-bottom: 0.45rem;
333
+ }
334
+
335
+ .add-repo-row {
336
+ display: flex;
337
+ gap: 0.5rem;
338
+ flex-wrap: wrap;
339
+ }
340
+
341
+ .add-repo-row input {
342
+ flex: 1;
343
+ min-width: 220px;
344
+ background: var(--bg0);
345
+ color: var(--ink);
346
+ border: 1px solid var(--line);
347
+ border-radius: 10px;
348
+ padding: 0.55rem 0.75rem;
349
+ font: inherit;
350
+ }
351
+
352
+ .btn.small {
353
+ padding: 0.4rem 0.75rem;
354
+ font-size: 0.8rem;
355
+ }
356
+
357
+ .privacy {
358
+ color: var(--muted);
359
+ font-size: 0.8rem;
360
+ }
361
+
362
+ .vault-panel {
363
+ padding: 0.85rem 1.5rem 1rem;
364
+ border-bottom: 1px solid var(--line);
365
+ background: var(--bg1);
366
+ }
367
+
368
+ .vault-panel.hidden {
369
+ display: none;
370
+ }
371
+
372
+ .vault-panel-inner {
373
+ display: flex;
374
+ flex-direction: column;
375
+ gap: 0.75rem;
376
+ }
377
+
378
+ #shopRow.hidden {
379
+ display: none;
380
+ }
381
+
382
+ .vault-panel input[type="password"],
383
+ .vault-panel input[type="number"] {
384
+ background: var(--bg0);
385
+ color: var(--ink);
386
+ border: 1px solid var(--line);
387
+ border-radius: 10px;
388
+ padding: 0.55rem 0.75rem;
389
+ font: inherit;
390
+ }
391
+
392
+ .vault-panel input[type="number"] {
393
+ width: 4.5rem;
394
+ }
395
+
396
+ .recipe-card {
397
+ margin-top: 1.5rem;
398
+ padding: 1rem 1.1rem;
399
+ border: 1px solid var(--line);
400
+ border-radius: 14px;
401
+ background: var(--bg1);
402
+ }
403
+
404
+ .recipe-card pre {
405
+ margin: 0.75rem 0 0;
406
+ padding: 0.75rem;
407
+ background: var(--bg0);
408
+ border-radius: 10px;
409
+ overflow: auto;
410
+ font-size: 0.78rem;
411
+ line-height: 1.45;
412
+ white-space: pre-wrap;
413
+ }
414
+
415
+ main {
416
+ flex: 1;
417
+ min-height: 0;
418
+ min-width: 0;
419
+ overflow: auto;
420
+ }
421
+
422
+ main.tab-brain {
423
+ overflow: hidden;
424
+ display: flex;
425
+ flex-direction: column;
426
+ }
427
+
428
+ .hero {
429
+ min-height: 100%;
430
+ display: grid;
431
+ place-items: center;
432
+ padding: 2rem;
433
+ }
434
+
435
+ .hero-inner {
436
+ max-width: 560px;
437
+ width: 100%;
438
+ }
439
+
440
+ .hero:has(.setup-wide),
441
+ .hero:has(.welcome-wide) {
442
+ place-items: start center;
443
+ min-height: auto;
444
+ }
445
+
446
+ .hero-inner.setup-wide {
447
+ max-width: 760px;
448
+ }
449
+
450
+ .setup-steps {
451
+ list-style: none;
452
+ margin: 1.25rem 0 0;
453
+ padding: 0;
454
+ display: grid;
455
+ grid-template-columns: repeat(4, minmax(0, 1fr));
456
+ gap: 0.5rem;
457
+ }
458
+
459
+ .setup-step {
460
+ appearance: none;
461
+ width: 100%;
462
+ display: flex;
463
+ align-items: flex-start;
464
+ gap: 0.55rem;
465
+ text-align: left;
466
+ background: var(--bg2);
467
+ border: 1px solid var(--line);
468
+ color: var(--muted);
469
+ border-radius: 12px;
470
+ padding: 0.65rem 0.7rem;
471
+ font: inherit;
472
+ cursor: pointer;
473
+ }
474
+
475
+ .setup-step strong {
476
+ display: block;
477
+ color: var(--ink);
478
+ font-size: 0.82rem;
479
+ }
480
+
481
+ .setup-step em {
482
+ display: block;
483
+ font-style: normal;
484
+ font-size: 0.72rem;
485
+ line-height: 1.3;
486
+ margin-top: 0.15rem;
487
+ }
488
+
489
+ .setup-step.active {
490
+ border-color: var(--accent-dim);
491
+ box-shadow: 0 0 0 1px var(--accent-dim);
492
+ }
493
+
494
+ .setup-step.done {
495
+ color: var(--accent);
496
+ }
497
+
498
+ .setup-num {
499
+ flex-shrink: 0;
500
+ width: 1.4rem;
501
+ height: 1.4rem;
502
+ border-radius: 999px;
503
+ display: grid;
504
+ place-items: center;
505
+ font-size: 0.72rem;
506
+ font-weight: 600;
507
+ background: var(--bg0);
508
+ color: var(--ink);
509
+ }
510
+
511
+ .setup-step.done .setup-num {
512
+ background: var(--accent-dim);
513
+ color: var(--ink);
514
+ }
515
+
516
+ .setup-panel {
517
+ margin-top: 1.4rem;
518
+ padding: 1.15rem 1.2rem 1.25rem;
519
+ border: 1px solid var(--line);
520
+ border-radius: 16px;
521
+ background: rgba(23, 32, 40, 0.55);
522
+ }
523
+
524
+ .setup-panel h2 {
525
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
526
+ font-size: 1.35rem;
527
+ margin: 0 0 0.35rem;
528
+ }
529
+
530
+ .setup-lead {
531
+ margin: 0 0 1rem;
532
+ }
533
+
534
+ .setup-nav {
535
+ margin-top: 1.15rem;
536
+ }
537
+
538
+ .setup-done {
539
+ list-style: none;
540
+ margin: 1.4rem 0 0;
541
+ padding: 0;
542
+ display: grid;
543
+ gap: 0.65rem;
544
+ }
545
+
546
+ .setup-done li {
547
+ display: flex;
548
+ gap: 0.8rem;
549
+ align-items: flex-start;
550
+ padding: 0.85rem 1rem;
551
+ border: 1px solid var(--line);
552
+ border-radius: 14px;
553
+ background: rgba(23, 32, 40, 0.55);
554
+ }
555
+
556
+ .setup-done strong {
557
+ display: block;
558
+ }
559
+
560
+ .setup-done p {
561
+ margin: 0.2rem 0 0;
562
+ color: var(--muted);
563
+ font-size: 0.88rem;
564
+ }
565
+
566
+ .setup-check {
567
+ flex-shrink: 0;
568
+ width: 1.55rem;
569
+ height: 1.55rem;
570
+ border-radius: 999px;
571
+ display: grid;
572
+ place-items: center;
573
+ background: var(--accent-dim);
574
+ color: var(--ink);
575
+ font-size: 0.85rem;
576
+ font-weight: 700;
577
+ }
578
+
579
+ .setup-shop {
580
+ margin-top: 1.4rem;
581
+ padding: 1.1rem 1.15rem 1.2rem;
582
+ border: 1px solid var(--line);
583
+ border-radius: 16px;
584
+ background: rgba(23, 32, 40, 0.55);
585
+ }
586
+
587
+ .setup-shop-head {
588
+ display: flex;
589
+ justify-content: space-between;
590
+ align-items: flex-start;
591
+ gap: 1rem;
592
+ margin-bottom: 0.9rem;
593
+ }
594
+
595
+ .setup-shop-head h2 {
596
+ margin: 0 0 0.35rem;
597
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
598
+ font-size: 1.2rem;
599
+ }
600
+
601
+ .setup-shop-head .note {
602
+ margin: 0;
603
+ max-width: 38rem;
604
+ }
605
+
606
+ .setup-shop-grid {
607
+ display: grid;
608
+ grid-template-columns: 1fr 1fr;
609
+ gap: 0.75rem;
610
+ }
611
+
612
+ .setup-buy {
613
+ display: flex;
614
+ flex-direction: column;
615
+ gap: 0.4rem;
616
+ min-width: 0;
617
+ padding: 0.95rem 1rem 1.05rem;
618
+ border: 1px solid var(--line);
619
+ border-radius: 14px;
620
+ background: var(--bg1);
621
+ }
622
+
623
+ .setup-buy.current {
624
+ border-color: rgba(46, 196, 182, 0.45);
625
+ }
626
+
627
+ .setup-buy-top {
628
+ display: flex;
629
+ align-items: center;
630
+ justify-content: space-between;
631
+ gap: 0.5rem;
632
+ }
633
+
634
+ .setup-buy-price {
635
+ margin: 0;
636
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
637
+ font-size: 1.55rem;
638
+ letter-spacing: -0.03em;
639
+ }
640
+
641
+ .setup-buy-price span {
642
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
643
+ font-size: 0.75rem;
644
+ color: var(--muted);
645
+ font-weight: 500;
646
+ }
647
+
648
+ .setup-buy .note {
649
+ margin: 0 0 0.35rem;
650
+ flex: 1;
651
+ }
652
+
653
+ .setup-buy a.btn,
654
+ .setup-buy .setup-buy-owned {
655
+ width: 100%;
656
+ text-align: center;
657
+ }
658
+
659
+ .setup-buy-owned {
660
+ opacity: 0.7;
661
+ cursor: default;
662
+ }
663
+
664
+ @media (max-width: 720px) {
665
+ .setup-steps {
666
+ grid-template-columns: 1fr 1fr;
667
+ }
668
+ .setup-shop-grid,
669
+ .setup-shop-head {
670
+ grid-template-columns: 1fr;
671
+ display: grid;
672
+ }
673
+ }
674
+
675
+ .hero-inner.welcome-wide {
676
+ max-width: 920px;
677
+ }
678
+
679
+ .welcome-hero {
680
+ padding-top: 2.5rem;
681
+ }
682
+
683
+ .welcome-brand {
684
+ display: flex;
685
+ align-items: center;
686
+ gap: 1rem;
687
+ margin-bottom: 0.75rem;
688
+ }
689
+
690
+ .welcome-brand h1 {
691
+ margin: 0;
692
+ }
693
+
694
+ .welcome-logo {
695
+ width: 4.25rem;
696
+ height: 4.25rem;
697
+ border-radius: 1.25rem;
698
+ display: grid;
699
+ place-items: center;
700
+ flex-shrink: 0;
701
+ background: linear-gradient(160deg, var(--accent), var(--accent-dim));
702
+ color: #062925;
703
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
704
+ font-size: 2.35rem;
705
+ font-weight: 700;
706
+ letter-spacing: -0.06em;
707
+ box-shadow: 0 12px 40px rgba(46, 196, 182, 0.18);
708
+ }
709
+
710
+ .plan-grid {
711
+ display: grid;
712
+ grid-template-columns: repeat(3, minmax(0, 1fr));
713
+ gap: 0.85rem;
714
+ margin: 0 0 1.25rem;
715
+ }
716
+
717
+ .plan-card {
718
+ display: flex;
719
+ flex-direction: column;
720
+ gap: 0.65rem;
721
+ padding: 1.15rem 1.15rem 1.2rem;
722
+ border: 1px solid var(--line);
723
+ border-radius: 16px;
724
+ background: var(--bg1);
725
+ min-width: 0;
726
+ }
727
+
728
+ .plan-card.current {
729
+ border-color: rgba(46, 196, 182, 0.45);
730
+ }
731
+
732
+ .plan-card h2 {
733
+ margin: 0;
734
+ font-size: 1.05rem;
735
+ }
736
+
737
+ .plan-price {
738
+ margin: 0;
739
+ color: var(--ink);
740
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
741
+ font-size: 1.85rem;
742
+ letter-spacing: -0.03em;
743
+ }
744
+
745
+ .plan-price span {
746
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
747
+ font-size: 0.8rem;
748
+ color: var(--muted);
749
+ font-weight: 500;
750
+ }
751
+
752
+ .plan-card ul {
753
+ margin: 0 0 0.4rem;
754
+ padding: 0 0 0 1.1rem;
755
+ color: var(--muted);
756
+ font-size: 0.88rem;
757
+ line-height: 1.45;
758
+ flex: 1;
759
+ }
760
+
761
+ .plan-card li + li {
762
+ margin-top: 0.35rem;
763
+ }
764
+
765
+ .plan-card .btn,
766
+ .plan-card a.btn {
767
+ width: 100%;
768
+ text-align: center;
769
+ }
770
+
771
+ .welcome-note {
772
+ margin: 0;
773
+ }
774
+
775
+ @media (max-width: 800px) {
776
+ .plan-grid {
777
+ grid-template-columns: 1fr;
778
+ }
779
+ }
780
+
781
+ .workspace-add {
782
+ margin-top: 1.25rem;
783
+ }
784
+
785
+ .workspace-add .add-repo-row {
786
+ margin-top: 0.4rem;
787
+ }
788
+
789
+ .workspace-row {
790
+ cursor: pointer;
791
+ justify-content: space-between;
792
+ align-items: center;
793
+ }
794
+
795
+ .workspace-row .btn {
796
+ flex-shrink: 0;
797
+ }
798
+
799
+ .autostart {
800
+ display: flex;
801
+ align-items: center;
802
+ gap: 0.55rem;
803
+ color: var(--muted);
804
+ font-size: 0.9rem;
805
+ margin: 0 0 0.5rem;
806
+ cursor: pointer;
807
+ }
808
+
809
+ .scan-head {
810
+ display: flex;
811
+ justify-content: space-between;
812
+ align-items: flex-end;
813
+ flex-wrap: wrap;
814
+ gap: 1rem;
815
+ margin: 1.25rem 0 0.75rem;
816
+ }
817
+
818
+ .scan-actions {
819
+ display: flex;
820
+ gap: 0.5rem;
821
+ align-items: center;
822
+ }
823
+
824
+ .scan-actions input {
825
+ background: var(--bg0);
826
+ color: var(--ink);
827
+ border: 1px solid var(--line);
828
+ border-radius: 999px;
829
+ padding: 0.4rem 0.75rem;
830
+ font: inherit;
831
+ font-size: 0.85rem;
832
+ min-width: 160px;
833
+ }
834
+
835
+ .repo-list {
836
+ max-height: 42vh;
837
+ overflow: auto;
838
+ border: 1px solid var(--line);
839
+ border-radius: 12px;
840
+ background: var(--bg1);
841
+ }
842
+
843
+ .repo-row {
844
+ display: flex;
845
+ gap: 0.75rem;
846
+ align-items: flex-start;
847
+ padding: 0.7rem 0.9rem;
848
+ border-bottom: 1px solid var(--line);
849
+ cursor: pointer;
850
+ }
851
+
852
+ .repo-row:last-child {
853
+ border-bottom: 0;
854
+ }
855
+
856
+ .repo-row b {
857
+ display: inline;
858
+ }
859
+
860
+ .repo-row em {
861
+ color: var(--accent);
862
+ font-style: normal;
863
+ font-size: 0.7rem;
864
+ margin-left: 0.45rem;
865
+ letter-spacing: 0.04em;
866
+ text-transform: uppercase;
867
+ }
868
+
869
+ .repo-row small {
870
+ display: block;
871
+ color: var(--muted);
872
+ font-size: 0.75rem;
873
+ word-break: break-all;
874
+ margin-top: 0.15rem;
875
+ }
876
+
877
+ .hero h1 {
878
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
879
+ font-size: clamp(2.8rem, 8vw, 4.5rem);
880
+ line-height: 0.95;
881
+ margin: 0 0 0.75rem;
882
+ letter-spacing: -0.04em;
883
+ }
884
+
885
+ .hero p {
886
+ color: var(--muted);
887
+ font-size: 1.05rem;
888
+ line-height: 1.5;
889
+ margin: 0 0 1.75rem;
890
+ }
891
+
892
+ .platform-row {
893
+ display: flex;
894
+ flex-wrap: wrap;
895
+ gap: 0.6rem;
896
+ margin-bottom: 1.25rem;
897
+ }
898
+
899
+ .chip {
900
+ flex: 1 1 9.5rem;
901
+ min-width: 9.5rem;
902
+ max-width: 14rem;
903
+ border: 1px solid var(--line);
904
+ background: var(--bg1);
905
+ color: var(--ink);
906
+ border-radius: 12px;
907
+ padding: 0.75rem 0.85rem;
908
+ cursor: pointer;
909
+ text-align: left;
910
+ font: inherit;
911
+ }
912
+
913
+ .chip.selected {
914
+ border-color: var(--accent);
915
+ box-shadow: inset 0 0 0 1px var(--accent);
916
+ }
917
+
918
+ .chip strong {
919
+ display: block;
920
+ margin-bottom: 0.2rem;
921
+ }
922
+
923
+ .chip span {
924
+ color: var(--muted);
925
+ font-size: 0.85rem;
926
+ }
927
+
928
+ .btn {
929
+ appearance: none;
930
+ border: 0;
931
+ background: var(--accent);
932
+ color: #062925;
933
+ font: inherit;
934
+ font-weight: 600;
935
+ padding: 0.85rem 1.2rem;
936
+ border-radius: 999px;
937
+ cursor: pointer;
938
+ }
939
+
940
+ a.btn {
941
+ display: inline-block;
942
+ text-decoration: none;
943
+ }
944
+
945
+ .btn:disabled {
946
+ opacity: 0.5;
947
+ cursor: not-allowed;
948
+ }
949
+
950
+ .btn.secondary {
951
+ background: transparent;
952
+ color: var(--ink);
953
+ border: 1px solid var(--line);
954
+ }
955
+
956
+ .status-grid {
957
+ display: grid;
958
+ gap: 0.75rem;
959
+ margin-top: 1.5rem;
960
+ }
961
+
962
+ .stat-line {
963
+ display: flex;
964
+ justify-content: space-between;
965
+ gap: 1rem;
966
+ padding: 0.75rem 0;
967
+ border-bottom: 1px solid var(--line);
968
+ color: var(--muted);
969
+ }
970
+
971
+ .stat-line b {
972
+ color: var(--ink);
973
+ font-weight: 500;
974
+ }
975
+
976
+ .issues {
977
+ margin-top: 1rem;
978
+ color: var(--warn);
979
+ font-size: 0.9rem;
980
+ }
981
+
982
+ .soft-paywall {
983
+ padding: 0.65rem 1.1rem;
984
+ border-bottom: 1px solid var(--line);
985
+ background: rgba(46, 196, 182, 0.08);
986
+ }
987
+
988
+ .soft-paywall.hidden {
989
+ display: none;
990
+ }
991
+
992
+ .soft-paywall-inner {
993
+ display: flex;
994
+ flex-wrap: wrap;
995
+ align-items: center;
996
+ justify-content: space-between;
997
+ gap: 0.75rem 1rem;
998
+ }
999
+
1000
+ .setup-verify {
1001
+ margin: 1rem 0 1.25rem;
1002
+ padding: 0.85rem 1rem;
1003
+ border: 1px solid var(--line);
1004
+ border-radius: 12px;
1005
+ background: rgba(232, 238, 242, 0.04);
1006
+ }
1007
+ .setup-verify.ok {
1008
+ border-color: rgba(46, 196, 182, 0.45);
1009
+ background: rgba(46, 196, 182, 0.08);
1010
+ }
1011
+ .mcp-url-chip {
1012
+ font-size: 0.78rem;
1013
+ overflow: auto;
1014
+ max-width: 100%;
1015
+ }
1016
+ .it-pack-card {
1017
+ margin-top: 1.25rem;
1018
+ padding-top: 1rem;
1019
+ border-top: 1px solid var(--line);
1020
+ }
1021
+ .it-pack-out {
1022
+ margin-top: 0.75rem;
1023
+ max-height: 12rem;
1024
+ overflow: auto;
1025
+ font-size: 0.8rem;
1026
+ }
1027
+ .pin-rules-cta {
1028
+ margin-top: 1rem;
1029
+ padding: 0.75rem 0.85rem;
1030
+ border: 1px solid var(--line);
1031
+ border-radius: 10px;
1032
+ background: rgba(46, 196, 182, 0.06);
1033
+ }
1034
+
1035
+ .embed-index-banner {
1036
+ padding: 0.65rem 1.1rem;
1037
+ border-bottom: 1px solid var(--line);
1038
+ background: rgba(232, 168, 56, 0.12);
1039
+ }
1040
+
1041
+ .embed-index-banner.hidden {
1042
+ display: none;
1043
+ }
1044
+
1045
+ .embed-index-banner-inner {
1046
+ display: flex;
1047
+ flex-wrap: wrap;
1048
+ align-items: center;
1049
+ justify-content: space-between;
1050
+ gap: 0.75rem 1rem;
1051
+ }
1052
+
1053
+ .embed-index-banner-actions {
1054
+ display: flex;
1055
+ flex-wrap: wrap;
1056
+ gap: 0.4rem;
1057
+ }
1058
+
1059
+ .brain-chrome {
1060
+ display: flex;
1061
+ flex-wrap: wrap;
1062
+ gap: 0.5rem 0.65rem;
1063
+ align-items: center;
1064
+ padding: 0.65rem 1.1rem 0.55rem;
1065
+ border-bottom: 1px solid var(--line);
1066
+ position: sticky;
1067
+ top: 0;
1068
+ z-index: 6;
1069
+ background: var(--bg1);
1070
+ }
1071
+
1072
+ .viz-toggle {
1073
+ display: inline-flex;
1074
+ gap: 0.2rem;
1075
+ padding: 0.15rem;
1076
+ border: 1px solid var(--line);
1077
+ border-radius: 999px;
1078
+ background: var(--bg0);
1079
+ flex: 0 0 auto;
1080
+ }
1081
+
1082
+ .viz-toggle button {
1083
+ appearance: none;
1084
+ border: 0;
1085
+ background: transparent;
1086
+ color: var(--muted);
1087
+ font: inherit;
1088
+ font-size: 0.75rem;
1089
+ font-weight: 600;
1090
+ padding: 0.3rem 0.7rem;
1091
+ border-radius: 999px;
1092
+ cursor: pointer;
1093
+ }
1094
+
1095
+ .viz-toggle button.active {
1096
+ background: rgba(46, 196, 182, 0.22);
1097
+ color: var(--ink);
1098
+ box-shadow: inset 0 0 0 1px rgba(46, 196, 182, 0.45);
1099
+ }
1100
+
1101
+ .viz-host {
1102
+ position: relative;
1103
+ /* Explicit, bounded height. A fr unit here resolves against the fact list,
1104
+ which can be hundreds of rows tall, and blows the canvas past the browser's
1105
+ max size until it renders as nothing. */
1106
+ height: clamp(280px, 42vh, 560px);
1107
+ min-height: 0;
1108
+ }
1109
+
1110
+ .viz-banner {
1111
+ display: flex;
1112
+ flex-wrap: wrap;
1113
+ align-items: center;
1114
+ justify-content: space-between;
1115
+ gap: 0.5rem 0.75rem;
1116
+ padding: 0.4rem 0.75rem;
1117
+ font-size: 0.72rem;
1118
+ font-weight: 600;
1119
+ letter-spacing: 0.03em;
1120
+ text-transform: uppercase;
1121
+ color: rgba(94, 224, 212, 0.95);
1122
+ border-bottom: 1px solid rgba(46, 196, 182, 0.2);
1123
+ background: rgba(8, 14, 18, 0.55);
1124
+ }
1125
+
1126
+ .orbit-host {
1127
+ position: relative;
1128
+ min-height: 320px;
1129
+ height: 100%;
1130
+ border-bottom: 1px solid var(--line);
1131
+ background:
1132
+ radial-gradient(ellipse at 50% 40%, rgba(46, 196, 182, 0.1), transparent 55%),
1133
+ linear-gradient(180deg, rgba(8, 14, 18, 0.9), var(--bg0));
1134
+ display: flex;
1135
+ flex-direction: column;
1136
+ }
1137
+
1138
+ .orbit-host canvas {
1139
+ flex: 1 1 auto;
1140
+ width: 100%;
1141
+ min-height: 280px;
1142
+ display: block;
1143
+ cursor: pointer;
1144
+ touch-action: none;
1145
+ }
1146
+
1147
+ .brain-filters {
1148
+ display: flex;
1149
+ flex-wrap: wrap;
1150
+ gap: 0.3rem;
1151
+ padding: 0;
1152
+ border: 0;
1153
+ flex: 1 1 auto;
1154
+ }
1155
+
1156
+ .brain-filters button {
1157
+ appearance: none;
1158
+ border: 1px solid transparent;
1159
+ background: transparent;
1160
+ color: var(--muted);
1161
+ padding: 0.3rem 0.65rem;
1162
+ border-radius: 999px;
1163
+ font: inherit;
1164
+ font-size: 0.78rem;
1165
+ cursor: pointer;
1166
+ }
1167
+
1168
+ .brain-filters button.active {
1169
+ color: var(--ink);
1170
+ border-color: var(--line);
1171
+ background: var(--bg2);
1172
+ }
1173
+
1174
+ .brain-body {
1175
+ display: flex;
1176
+ flex-direction: column;
1177
+ flex: 1;
1178
+ min-height: 0;
1179
+ overflow: hidden;
1180
+ }
1181
+
1182
+ .brain-map {
1183
+ flex: 1;
1184
+ min-height: 0;
1185
+ overflow: auto;
1186
+ padding: 0;
1187
+ display: grid;
1188
+ grid-template-rows: minmax(220px, 1.1fr) minmax(160px, 0.9fr);
1189
+ }
1190
+
1191
+ .brain-map:has(.draft-inbox),
1192
+ .brain-map:has(.draft-toolbar),
1193
+ .brain-map:has(.brain-empty) {
1194
+ grid-template-rows: 1fr;
1195
+ }
1196
+
1197
+ .brain-map:has(.brain-facts) {
1198
+ grid-template-rows: minmax(260px, 1.25fr) minmax(140px, 0.75fr);
1199
+ }
1200
+
1201
+ /* Must outrank the :has(.brain-facts) rule above, so keep it last: the
1202
+ visualization row takes the viz host's own height, the list takes the rest
1203
+ and scrolls inside itself. */
1204
+ .brain-map:has(.viz-host) {
1205
+ grid-template-rows: auto minmax(0, 1fr);
1206
+ }
1207
+
1208
+ /* Files mode is the list alone — no second row to reserve. */
1209
+ .brain-map:has(.brain-facts:only-child) {
1210
+ grid-template-rows: minmax(0, 1fr);
1211
+ }
1212
+
1213
+ .viz-legend {
1214
+ position: absolute;
1215
+ left: 0.85rem;
1216
+ bottom: 0.65rem;
1217
+ display: flex;
1218
+ flex-wrap: wrap;
1219
+ gap: 0.55rem 0.85rem;
1220
+ font-size: 0.72rem;
1221
+ color: var(--muted);
1222
+ pointer-events: none;
1223
+ }
1224
+
1225
+ .viz-legend .sw {
1226
+ display: inline-block;
1227
+ width: 0.55rem;
1228
+ height: 0.55rem;
1229
+ border-radius: 50%;
1230
+ margin-right: 0.3rem;
1231
+ vertical-align: middle;
1232
+ }
1233
+
1234
+ .viz-legend .sw.gold {
1235
+ background: rgba(230, 180, 80, 0.95);
1236
+ }
1237
+ .viz-legend .sw.teal {
1238
+ background: rgba(94, 224, 212, 0.95);
1239
+ }
1240
+ .viz-legend .sw.blue {
1241
+ background: rgba(140, 180, 200, 0.85);
1242
+ }
1243
+
1244
+ .pin-howto {
1245
+ display: flex;
1246
+ flex-wrap: wrap;
1247
+ gap: 0.35rem 0.75rem;
1248
+ align-items: baseline;
1249
+ margin: 0 0 0.85rem;
1250
+ padding: 0.65rem 0.8rem;
1251
+ border: 1px solid rgba(230, 180, 80, 0.45);
1252
+ border-radius: 10px;
1253
+ background: rgba(230, 180, 80, 0.08);
1254
+ font-size: 0.82rem;
1255
+ line-height: 1.4;
1256
+ }
1257
+
1258
+ .pin-howto strong {
1259
+ color: var(--warn);
1260
+ font-size: 0.78rem;
1261
+ letter-spacing: 0.02em;
1262
+ text-transform: uppercase;
1263
+ }
1264
+
1265
+ .pin-howto em {
1266
+ font-style: normal;
1267
+ font-weight: 600;
1268
+ color: var(--ink);
1269
+ }
1270
+
1271
+ .detail-pin-row {
1272
+ display: flex;
1273
+ gap: 0.5rem;
1274
+ align-items: flex-start;
1275
+ justify-content: space-between;
1276
+ }
1277
+
1278
+ .detail-pin-row strong {
1279
+ flex: 1;
1280
+ min-width: 0;
1281
+ }
1282
+
1283
+ .detail-list-pin li + li {
1284
+ margin-top: 0.65rem;
1285
+ }
1286
+
1287
+ .brain-feed,
1288
+ .drawer {
1289
+ min-height: 0;
1290
+ }
1291
+
1292
+ .right-panel .brain-feed {
1293
+ padding: 0;
1294
+ border: 0;
1295
+ background: transparent;
1296
+ max-height: none;
1297
+ }
1298
+
1299
+ .right-panel .drawer {
1300
+ margin-top: 0.85rem;
1301
+ padding-top: 0.85rem;
1302
+ border-top: 1px solid var(--line);
1303
+ }
1304
+
1305
+ .drawer.hidden {
1306
+ display: none;
1307
+ }
1308
+
1309
+ .hidden {
1310
+ display: none !important;
1311
+ }
1312
+
1313
+ .brain-auto {
1314
+ margin: 0;
1315
+ font-size: 0.78rem;
1316
+ color: var(--muted);
1317
+ display: inline-flex;
1318
+ align-items: center;
1319
+ gap: 0.35rem;
1320
+ white-space: nowrap;
1321
+ }
1322
+
1323
+ .brain-feed h2,
1324
+ .brain-map h2,
1325
+ .drawer h2 {
1326
+ margin: 0 0 0.75rem;
1327
+ font-size: 0.72rem;
1328
+ letter-spacing: 0.06em;
1329
+ text-transform: uppercase;
1330
+ color: var(--muted);
1331
+ font-weight: 600;
1332
+ }
1333
+
1334
+ .feed-item {
1335
+ display: block;
1336
+ width: 100%;
1337
+ text-align: left;
1338
+ border: 1px solid var(--line);
1339
+ background: var(--bg0);
1340
+ color: inherit;
1341
+ border-radius: 10px;
1342
+ padding: 0.7rem 0.75rem;
1343
+ margin-bottom: 0.55rem;
1344
+ font: inherit;
1345
+ cursor: pointer;
1346
+ }
1347
+
1348
+ .feed-item.active {
1349
+ border-color: var(--accent);
1350
+ }
1351
+
1352
+ .feed-top {
1353
+ display: flex;
1354
+ justify-content: space-between;
1355
+ gap: 0.5rem;
1356
+ align-items: center;
1357
+ min-width: 0;
1358
+ color: var(--muted);
1359
+ font-size: 0.72rem;
1360
+ margin-bottom: 0.35rem;
1361
+ }
1362
+
1363
+ .feed-top > span:first-child {
1364
+ min-width: 0;
1365
+ overflow: hidden;
1366
+ text-overflow: ellipsis;
1367
+ white-space: nowrap;
1368
+ }
1369
+
1370
+ .feed-q {
1371
+ font-size: 0.88rem;
1372
+ line-height: 1.35;
1373
+ display: -webkit-box;
1374
+ -webkit-line-clamp: 3;
1375
+ -webkit-box-orient: vertical;
1376
+ overflow: hidden;
1377
+ }
1378
+
1379
+ .feed-meta {
1380
+ margin-top: 0.35rem;
1381
+ color: var(--muted);
1382
+ font-size: 0.75rem;
1383
+ }
1384
+
1385
+ .pill {
1386
+ flex: 0 0 auto;
1387
+ border-radius: 999px;
1388
+ padding: 0.1rem 0.45rem;
1389
+ font-size: 0.68rem;
1390
+ letter-spacing: 0.02em;
1391
+ text-transform: uppercase;
1392
+ }
1393
+
1394
+ .pill.ok {
1395
+ color: var(--accent);
1396
+ background: rgba(46, 196, 182, 0.12);
1397
+ }
1398
+
1399
+ .pill.warn {
1400
+ color: var(--warn);
1401
+ background: rgba(232, 184, 109, 0.12);
1402
+ }
1403
+
1404
+ .coverage-host {
1405
+ min-height: 220px;
1406
+ border-bottom: 1px solid var(--line);
1407
+ display: flex;
1408
+ flex-direction: column;
1409
+ background:
1410
+ radial-gradient(800px 240px at 20% 0%, rgba(46, 196, 182, 0.07), transparent 60%),
1411
+ var(--bg0);
1412
+ }
1413
+
1414
+ .coverage-legend {
1415
+ display: flex;
1416
+ flex-wrap: wrap;
1417
+ align-items: center;
1418
+ gap: 0.55rem 0.9rem;
1419
+ padding: 0.55rem 1rem 0.2rem;
1420
+ color: var(--muted);
1421
+ font-size: 0.72rem;
1422
+ }
1423
+
1424
+ .coverage-legend .swatch {
1425
+ display: inline-block;
1426
+ width: 0.65rem;
1427
+ height: 0.65rem;
1428
+ border-radius: 3px;
1429
+ margin-right: 0.3rem;
1430
+ vertical-align: -1px;
1431
+ }
1432
+
1433
+ .coverage-legend .swatch.used {
1434
+ background: rgba(46, 196, 182, 0.75);
1435
+ }
1436
+
1437
+ .coverage-legend .swatch.file {
1438
+ background: rgba(126, 184, 255, 0.45);
1439
+ }
1440
+
1441
+ .coverage-legend .swatch.dim {
1442
+ background: rgba(232, 238, 242, 0.12);
1443
+ }
1444
+
1445
+ .coverage-legend .legend-note {
1446
+ margin-left: auto;
1447
+ }
1448
+
1449
+ .coverage-svg {
1450
+ flex: 1;
1451
+ width: 100%;
1452
+ min-height: 0;
1453
+ display: block;
1454
+ }
1455
+
1456
+ .cov-tile rect {
1457
+ fill: rgba(126, 184, 255, 0.16);
1458
+ stroke: rgba(126, 184, 255, 0.28);
1459
+ cursor: pointer;
1460
+ }
1461
+
1462
+ .cov-tile.used rect {
1463
+ fill: rgba(46, 196, 182, 0.28);
1464
+ stroke: rgba(46, 196, 182, 0.55);
1465
+ }
1466
+
1467
+ .cov-tile.session rect {
1468
+ fill: rgba(232, 184, 109, 0.18);
1469
+ stroke: rgba(232, 184, 109, 0.4);
1470
+ }
1471
+
1472
+ .cov-tile.dim rect {
1473
+ fill: rgba(232, 238, 242, 0.04);
1474
+ stroke: rgba(232, 238, 242, 0.08);
1475
+ }
1476
+
1477
+ .cov-tile.selected rect {
1478
+ stroke: var(--accent);
1479
+ stroke-width: 2;
1480
+ }
1481
+
1482
+ .cov-tile:hover rect {
1483
+ filter: brightness(1.15);
1484
+ }
1485
+
1486
+ .cov-tile .cov-name,
1487
+ .cov-tile .cov-count {
1488
+ fill: var(--ink);
1489
+ font-size: 11px;
1490
+ pointer-events: none;
1491
+ }
1492
+
1493
+ .cov-tile .cov-count {
1494
+ fill: var(--muted);
1495
+ font-size: 10px;
1496
+ }
1497
+
1498
+ .cov-tile.dim .cov-name,
1499
+ .cov-tile.dim .cov-count {
1500
+ fill: var(--muted);
1501
+ }
1502
+
1503
+ .brain-facts {
1504
+ min-height: 0;
1505
+ overflow: auto;
1506
+ padding: 0.85rem 1.15rem 2rem;
1507
+ }
1508
+
1509
+ .brain-facts h2 {
1510
+ display: flex;
1511
+ flex-wrap: wrap;
1512
+ gap: 0.35rem 0.75rem;
1513
+ align-items: baseline;
1514
+ margin: 0 0 0.75rem;
1515
+ }
1516
+
1517
+ .brain-facts h2 span {
1518
+ font-size: 0.75rem;
1519
+ letter-spacing: 0;
1520
+ text-transform: none;
1521
+ font-weight: 400;
1522
+ color: var(--muted);
1523
+ }
1524
+
1525
+ .brain-empty {
1526
+ color: var(--muted);
1527
+ padding: 1rem 0.25rem;
1528
+ max-width: 36rem;
1529
+ }
1530
+
1531
+ .file-card {
1532
+ border: 1px solid var(--line);
1533
+ border-radius: 12px;
1534
+ background: var(--bg1);
1535
+ margin-bottom: 0.85rem;
1536
+ overflow: hidden;
1537
+ }
1538
+
1539
+ .file-card.used {
1540
+ border-color: rgba(46, 196, 182, 0.4);
1541
+ }
1542
+
1543
+ .file-card header {
1544
+ display: flex;
1545
+ justify-content: space-between;
1546
+ gap: 0.75rem;
1547
+ padding: 0.7rem 0.9rem;
1548
+ border-bottom: 1px solid var(--line);
1549
+ align-items: baseline;
1550
+ }
1551
+
1552
+ .file-card header code {
1553
+ color: var(--ink);
1554
+ font-size: 0.85rem;
1555
+ }
1556
+
1557
+ .file-card header span {
1558
+ color: var(--muted);
1559
+ font-size: 0.75rem;
1560
+ }
1561
+
1562
+ .file-card ul {
1563
+ list-style: none;
1564
+ margin: 0;
1565
+ padding: 0.35rem;
1566
+ }
1567
+
1568
+ .claim-row {
1569
+ display: flex;
1570
+ flex-direction: column;
1571
+ gap: 0.3rem;
1572
+ width: 100%;
1573
+ text-align: left;
1574
+ border: 1px solid transparent;
1575
+ background: transparent;
1576
+ color: inherit;
1577
+ border-radius: 8px;
1578
+ padding: 0.55rem 0.6rem;
1579
+ font: inherit;
1580
+ cursor: pointer;
1581
+ }
1582
+
1583
+ .claim-row:hover {
1584
+ background: var(--bg2);
1585
+ }
1586
+
1587
+ .claim-row.hot {
1588
+ background: rgba(46, 196, 182, 0.08);
1589
+ }
1590
+
1591
+ .claim-row.selected {
1592
+ border-color: var(--accent);
1593
+ }
1594
+
1595
+ .claim-text {
1596
+ font-size: 0.9rem;
1597
+ line-height: 1.4;
1598
+ }
1599
+
1600
+ .claim-tags {
1601
+ display: flex;
1602
+ flex-wrap: wrap;
1603
+ gap: 0.3rem;
1604
+ }
1605
+
1606
+ .claim-tags em {
1607
+ font-style: normal;
1608
+ font-size: 0.68rem;
1609
+ letter-spacing: 0.03em;
1610
+ text-transform: uppercase;
1611
+ color: var(--muted);
1612
+ border: 1px solid var(--line);
1613
+ border-radius: 999px;
1614
+ padding: 0.08rem 0.4rem;
1615
+ }
1616
+
1617
+ .detail-list {
1618
+ list-style: none;
1619
+ margin: 0.75rem 0 0;
1620
+ padding: 0;
1621
+ }
1622
+
1623
+ .detail-list li {
1624
+ border-top: 1px solid var(--line);
1625
+ padding: 0.65rem 0;
1626
+ }
1627
+
1628
+ .detail-list strong {
1629
+ font-weight: 500;
1630
+ font-size: 0.9rem;
1631
+ }
1632
+
1633
+ .link-row {
1634
+ appearance: none;
1635
+ border: 0;
1636
+ background: transparent;
1637
+ padding: 0;
1638
+ margin: 0;
1639
+ font: inherit;
1640
+ color: var(--ink);
1641
+ text-align: left;
1642
+ cursor: pointer;
1643
+ }
1644
+
1645
+ .link-row:hover strong {
1646
+ color: rgba(94, 224, 212, 0.95);
1647
+ text-decoration: underline;
1648
+ }
1649
+
1650
+ .drawer {
1651
+ border-left: 0;
1652
+ background: transparent;
1653
+ padding: 0;
1654
+ }
1655
+
1656
+ .drawer h2 {
1657
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
1658
+ margin: 0 0 0.5rem;
1659
+ font-size: 0.95rem;
1660
+ text-transform: none;
1661
+ letter-spacing: -0.01em;
1662
+ color: var(--ink);
1663
+ }
1664
+
1665
+ .drawer .meta {
1666
+ color: var(--muted);
1667
+ font-size: 0.85rem;
1668
+ margin-bottom: 0.75rem;
1669
+ }
1670
+
1671
+ .drawer p {
1672
+ line-height: 1.5;
1673
+ }
1674
+
1675
+ .stats-page {
1676
+ padding: 2rem;
1677
+ max-width: 1100px;
1678
+ margin: 0 auto;
1679
+ }
1680
+
1681
+ .stats-page h1 {
1682
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
1683
+ margin: 0 0 0.35rem;
1684
+ }
1685
+
1686
+ .stats-page .sub {
1687
+ color: var(--muted);
1688
+ margin-bottom: 1.5rem;
1689
+ }
1690
+
1691
+ .stats-heading {
1692
+ font-size: 1rem;
1693
+ font-weight: 600;
1694
+ margin: 0 0 0.75rem;
1695
+ }
1696
+
1697
+ .analytics-split {
1698
+ display: grid;
1699
+ grid-template-columns: 1fr 1fr;
1700
+ gap: 1rem;
1701
+ margin: 1.25rem 0 1.5rem;
1702
+ }
1703
+
1704
+ .analytics-split .chart-wrap,
1705
+ .analytics-split .dash-panel {
1706
+ margin: 0;
1707
+ min-width: 0;
1708
+ }
1709
+
1710
+ .dash-page {
1711
+ padding: 1.75rem 2rem 2.5rem;
1712
+ max-width: 1100px;
1713
+ margin: 0 auto;
1714
+ }
1715
+
1716
+ .dash-head {
1717
+ display: flex;
1718
+ flex-wrap: wrap;
1719
+ justify-content: space-between;
1720
+ gap: 1rem;
1721
+ align-items: flex-end;
1722
+ margin-bottom: 1.25rem;
1723
+ }
1724
+
1725
+ .dash-head h1 {
1726
+ margin: 0 0 0.35rem;
1727
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
1728
+ }
1729
+
1730
+ .dash-head .sub {
1731
+ margin: 0;
1732
+ color: var(--muted);
1733
+ max-width: 40rem;
1734
+ }
1735
+
1736
+ .dash-actions {
1737
+ display: flex;
1738
+ flex-wrap: wrap;
1739
+ gap: 0.4rem;
1740
+ }
1741
+
1742
+ .dash-kpis {
1743
+ display: grid;
1744
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
1745
+ gap: 0.65rem;
1746
+ margin-bottom: 1.25rem;
1747
+ }
1748
+
1749
+ .dash-kpi {
1750
+ appearance: none;
1751
+ text-align: left;
1752
+ border: 1px solid var(--line);
1753
+ border-radius: 12px;
1754
+ background: var(--bg1);
1755
+ color: inherit;
1756
+ padding: 0.85rem 0.95rem;
1757
+ cursor: pointer;
1758
+ font: inherit;
1759
+ }
1760
+
1761
+ .dash-kpi.static {
1762
+ cursor: default;
1763
+ }
1764
+
1765
+ .dash-kpi.warn {
1766
+ border-color: rgba(230, 180, 80, 0.55);
1767
+ background: rgba(230, 180, 80, 0.08);
1768
+ }
1769
+
1770
+ .dash-kpi b {
1771
+ display: block;
1772
+ font-size: 1.35rem;
1773
+ font-weight: 700;
1774
+ margin-bottom: 0.25rem;
1775
+ }
1776
+
1777
+ .dash-kpi span {
1778
+ color: var(--muted);
1779
+ font-size: 0.78rem;
1780
+ }
1781
+
1782
+ .dash-grid {
1783
+ display: grid;
1784
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1785
+ gap: 0.85rem;
1786
+ }
1787
+
1788
+ .dash-panel {
1789
+ border: 1px solid var(--line);
1790
+ border-radius: 14px;
1791
+ background: var(--bg1);
1792
+ padding: 1rem 1.05rem 1.1rem;
1793
+ }
1794
+
1795
+ .dash-panel h2 {
1796
+ margin: 0 0 0.45rem;
1797
+ font-size: 0.95rem;
1798
+ }
1799
+
1800
+ .dash-panel h3 {
1801
+ margin: 0.9rem 0 0.4rem;
1802
+ font-size: 0.82rem;
1803
+ color: var(--muted);
1804
+ font-weight: 600;
1805
+ }
1806
+
1807
+ .dash-list {
1808
+ list-style: none;
1809
+ margin: 0;
1810
+ padding: 0;
1811
+ }
1812
+
1813
+ .dash-list li {
1814
+ padding: 0.45rem 0;
1815
+ border-top: 1px solid var(--line);
1816
+ }
1817
+
1818
+ .dash-list li:first-child {
1819
+ border-top: 0;
1820
+ padding-top: 0;
1821
+ }
1822
+
1823
+ .dash-list strong {
1824
+ display: block;
1825
+ font-size: 0.86rem;
1826
+ font-weight: 600;
1827
+ }
1828
+
1829
+ .dash-list .meta {
1830
+ display: block;
1831
+ margin-top: 0.15rem;
1832
+ color: var(--muted);
1833
+ font-size: 0.75rem;
1834
+ }
1835
+
1836
+ button.linkish {
1837
+ appearance: none;
1838
+ border: 0;
1839
+ background: transparent;
1840
+ color: inherit;
1841
+ padding: 0;
1842
+ font: inherit;
1843
+ cursor: pointer;
1844
+ text-align: left;
1845
+ }
1846
+
1847
+ button.linkish:hover code {
1848
+ color: var(--accent, #2ec4b6);
1849
+ }
1850
+
1851
+ @media (max-width: 960px) {
1852
+ .analytics-split,
1853
+ .dash-grid {
1854
+ grid-template-columns: 1fr;
1855
+ }
1856
+ }
1857
+
1858
+ .platform-card.accented {
1859
+ border-color: rgba(46, 196, 182, 0.35);
1860
+ }
1861
+
1862
+ .filters {
1863
+ display: flex;
1864
+ flex-wrap: wrap;
1865
+ align-items: center;
1866
+ gap: 0.75rem;
1867
+ margin-bottom: 1.5rem;
1868
+ }
1869
+
1870
+ .filters select {
1871
+ background: var(--bg2);
1872
+ color: var(--ink);
1873
+ border: 1px solid var(--line);
1874
+ border-radius: 8px;
1875
+ padding: 0.5rem 0.7rem;
1876
+ font: inherit;
1877
+ }
1878
+
1879
+ .platform-cards {
1880
+ display: grid;
1881
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
1882
+ gap: 0.75rem;
1883
+ margin-bottom: 1.5rem;
1884
+ }
1885
+
1886
+ .platform-card {
1887
+ border: 1px solid var(--line);
1888
+ border-radius: 14px;
1889
+ padding: 1rem;
1890
+ background: var(--bg1);
1891
+ }
1892
+
1893
+ .platform-card .label {
1894
+ color: var(--muted);
1895
+ font-size: 0.8rem;
1896
+ text-transform: uppercase;
1897
+ letter-spacing: 0.04em;
1898
+ }
1899
+
1900
+ .platform-card .value {
1901
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
1902
+ font-size: 1.8rem;
1903
+ margin: 0.35rem 0;
1904
+ }
1905
+
1906
+ .platform-card .meta {
1907
+ color: var(--muted);
1908
+ font-size: 0.8rem;
1909
+ line-height: 1.4;
1910
+ }
1911
+
1912
+ .chart-wrap {
1913
+ border: 1px solid var(--line);
1914
+ border-radius: 14px;
1915
+ padding: 1rem;
1916
+ background: var(--bg1);
1917
+ }
1918
+
1919
+ .chart-wrap h2 {
1920
+ margin: 0 0 0.75rem;
1921
+ font-size: 1rem;
1922
+ font-weight: 600;
1923
+ }
1924
+
1925
+ .chart-stage {
1926
+ position: relative;
1927
+ }
1928
+
1929
+ #savingsChart {
1930
+ width: 100%;
1931
+ height: 260px;
1932
+ display: block;
1933
+ }
1934
+
1935
+ .chart-tooltip {
1936
+ position: absolute;
1937
+ pointer-events: none;
1938
+ z-index: 2;
1939
+ min-width: 140px;
1940
+ padding: 0.55rem 0.7rem;
1941
+ border-radius: 10px;
1942
+ border: 1px solid var(--line);
1943
+ background: rgba(15, 20, 24, 0.94);
1944
+ color: var(--ink);
1945
+ font-size: 0.8rem;
1946
+ line-height: 1.35;
1947
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
1948
+ }
1949
+
1950
+ .chart-tooltip.hidden {
1951
+ display: none;
1952
+ }
1953
+
1954
+ .chart-tooltip strong {
1955
+ display: block;
1956
+ margin-bottom: 0.2rem;
1957
+ }
1958
+
1959
+ .chart-tooltip span {
1960
+ display: block;
1961
+ color: var(--muted);
1962
+ }
1963
+
1964
+ .note {
1965
+ margin-top: 1rem;
1966
+ color: var(--muted);
1967
+ font-size: 0.85rem;
1968
+ }
1969
+
1970
+ .bootstrap {
1971
+ margin-top: 1.5rem;
1972
+ }
1973
+
1974
+ .bootstrap textarea {
1975
+ width: 100%;
1976
+ min-height: 160px;
1977
+ background: var(--bg0);
1978
+ color: var(--ink);
1979
+ border: 1px solid var(--line);
1980
+ border-radius: 12px;
1981
+ padding: 0.75rem;
1982
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1983
+ font-size: 0.8rem;
1984
+ }
1985
+
1986
+ .actions {
1987
+ display: flex;
1988
+ gap: 0.75rem;
1989
+ flex-wrap: wrap;
1990
+ margin-top: 1rem;
1991
+ }
1992
+
1993
+ @media (max-width: 1100px) {
1994
+ :root {
1995
+ --right-w: 260px;
1996
+ --side-w: 188px;
1997
+ }
1998
+ }
1999
+
2000
+ @media (max-width: 900px) {
2001
+ .app {
2002
+ grid-template-columns: 64px 1fr;
2003
+ }
2004
+ .side-nav {
2005
+ padding: 0.85rem 0.45rem;
2006
+ }
2007
+ .side-nav .brand {
2008
+ font-size: 0.72rem;
2009
+ padding: 0.2rem;
2010
+ text-align: center;
2011
+ letter-spacing: 0;
2012
+ }
2013
+ .side-tabs button {
2014
+ justify-content: center;
2015
+ padding: 0.65rem 0.35rem;
2016
+ font-size: 0;
2017
+ }
2018
+ .side-tabs button .nav-ico {
2019
+ margin: 0;
2020
+ width: 0.7rem;
2021
+ height: 0.7rem;
2022
+ }
2023
+ .side-foot-btn {
2024
+ font-size: 0;
2025
+ padding: 0.55rem;
2026
+ position: relative;
2027
+ }
2028
+ .side-foot-btn::before {
2029
+ content: "·";
2030
+ font-size: 1.1rem;
2031
+ color: var(--muted);
2032
+ display: block;
2033
+ text-align: center;
2034
+ }
2035
+ .workspace {
2036
+ grid-template-columns: 1fr;
2037
+ grid-template-rows: 1fr auto;
2038
+ }
2039
+ .right-panel {
2040
+ border-left: 0;
2041
+ border-top: 1px solid var(--line);
2042
+ max-height: 42vh;
2043
+ }
2044
+ .vault-summary {
2045
+ display: none;
2046
+ }
2047
+ .brain-v2 {
2048
+ height: auto;
2049
+ min-height: 0;
2050
+ }
2051
+ main.tab-brain {
2052
+ overflow: auto;
2053
+ }
2054
+ .brain-map {
2055
+ grid-template-rows: minmax(200px, 280px) auto;
2056
+ overflow: visible;
2057
+ }
2058
+ .coverage-host {
2059
+ min-height: 200px;
2060
+ }
2061
+ .brain-facts {
2062
+ overflow: visible;
2063
+ }
2064
+ }
2065
+
2066
+ .brain-tools {
2067
+ padding: 0 1.25rem 0.75rem;
2068
+ }
2069
+ .brain-tools input[type="search"] {
2070
+ width: min(420px, 100%);
2071
+ padding: 0.55rem 0.75rem;
2072
+ border: 1px solid var(--line);
2073
+ border-radius: 8px;
2074
+ background: rgba(0, 0, 0, 0.2);
2075
+ color: inherit;
2076
+ font: inherit;
2077
+ }
2078
+ .drawer-label {
2079
+ display: block;
2080
+ margin: 0.75rem 0 0.35rem;
2081
+ font-size: 0.8rem;
2082
+ color: var(--muted, #8fa3b0);
2083
+ }
2084
+ .drawer textarea,
2085
+ .drawer input[type="text"] {
2086
+ width: 100%;
2087
+ box-sizing: border-box;
2088
+ padding: 0.55rem 0.65rem;
2089
+ border: 1px solid var(--line);
2090
+ border-radius: 8px;
2091
+ background: rgba(0, 0, 0, 0.2);
2092
+ color: inherit;
2093
+ font: inherit;
2094
+ resize: vertical;
2095
+ }
2096
+ .drawer-actions {
2097
+ display: flex;
2098
+ flex-wrap: wrap;
2099
+ gap: 0.5rem;
2100
+ margin: 0.9rem 0;
2101
+ }
2102
+ .btn.danger {
2103
+ border-color: rgba(220, 90, 90, 0.55);
2104
+ color: #f2b4b4;
2105
+ }
2106
+ .feed-item.draft {
2107
+ border-left: 3px solid rgba(230, 180, 80, 0.7);
2108
+ }
2109
+ .draft-toolbar {
2110
+ display: flex;
2111
+ flex-wrap: wrap;
2112
+ gap: 0.4rem;
2113
+ align-items: center;
2114
+ padding: 0.75rem 1rem 0.35rem;
2115
+ }
2116
+
2117
+ .draft-sel-meta {
2118
+ color: var(--muted);
2119
+ font-size: 0.78rem;
2120
+ margin: 0 0.25rem;
2121
+ }
2122
+
2123
+ .brain-filter-help,
2124
+ .brain-guide {
2125
+ margin: 0;
2126
+ padding: 0.35rem 1.1rem 0.55rem;
2127
+ color: var(--muted);
2128
+ font-size: 0.8rem;
2129
+ line-height: 1.4;
2130
+ border-bottom: 1px solid var(--line);
2131
+ }
2132
+
2133
+ .brain-guide {
2134
+ border: 0;
2135
+ padding: 0.35rem 0 0.75rem;
2136
+ }
2137
+
2138
+ .draft-inbox-head {
2139
+ display: flex;
2140
+ flex-wrap: wrap;
2141
+ justify-content: space-between;
2142
+ gap: 0.75rem 1rem;
2143
+ align-items: flex-start;
2144
+ padding: 1rem 1rem 0;
2145
+ }
2146
+
2147
+ .draft-inbox-head h2 {
2148
+ margin: 0;
2149
+ font-size: 1.05rem;
2150
+ }
2151
+
2152
+ .draft-inbox-head h2 span {
2153
+ color: var(--muted);
2154
+ font-weight: 500;
2155
+ font-size: 0.85rem;
2156
+ }
2157
+
2158
+ .draft-inbox-head .note {
2159
+ margin: 0.35rem 0 0;
2160
+ max-width: 52rem;
2161
+ }
2162
+
2163
+ .draft-quality-pills {
2164
+ display: flex;
2165
+ flex-wrap: wrap;
2166
+ gap: 0.35rem;
2167
+ }
2168
+
2169
+ .conflict-box {
2170
+ margin: 0.75rem 0;
2171
+ padding: 0.7rem 0.8rem;
2172
+ border: 1px solid var(--warn);
2173
+ border-radius: 10px;
2174
+ background: var(--bg0);
2175
+ }
2176
+
2177
+ .draft-grid {
2178
+ display: grid;
2179
+ gap: 0.75rem;
2180
+ padding: 1rem;
2181
+ }
2182
+
2183
+ .draft-card {
2184
+ display: grid;
2185
+ grid-template-columns: auto 1fr;
2186
+ gap: 0.55rem;
2187
+ align-items: start;
2188
+ text-align: left;
2189
+ padding: 0.75rem 0.9rem;
2190
+ border: 1px solid var(--line);
2191
+ border-radius: 10px;
2192
+ background: rgba(0, 0, 0, 0.18);
2193
+ color: inherit;
2194
+ }
2195
+
2196
+ .draft-card.selected,
2197
+ .draft-card:hover {
2198
+ border-color: rgba(120, 200, 180, 0.55);
2199
+ }
2200
+
2201
+ .draft-card strong {
2202
+ display: block;
2203
+ margin-bottom: 0.35rem;
2204
+ }
2205
+
2206
+ .draft-check {
2207
+ display: flex;
2208
+ padding-top: 0.2rem;
2209
+ cursor: pointer;
2210
+ }
2211
+
2212
+ .draft-card-main {
2213
+ appearance: none;
2214
+ border: 0;
2215
+ background: transparent;
2216
+ color: inherit;
2217
+ text-align: left;
2218
+ padding: 0;
2219
+ cursor: pointer;
2220
+ font: inherit;
2221
+ width: 100%;
2222
+ }
2223
+
2224
+ .draft-card-main .q-high {
2225
+ color: #8fd6b8;
2226
+ }
2227
+ .draft-card-main .q-low,
2228
+ .draft-card-main .q-reject {
2229
+ color: #e8b070;
2230
+ }
2231
+
2232
+ .claim-pin {
2233
+ appearance: none;
2234
+ border: 1px solid rgba(230, 180, 80, 0.55);
2235
+ background: rgba(230, 180, 80, 0.12);
2236
+ color: var(--warn);
2237
+ cursor: pointer;
2238
+ font-size: 0.78rem;
2239
+ font-weight: 700;
2240
+ line-height: 1;
2241
+ padding: 0.45rem 0.65rem;
2242
+ border-radius: 8px;
2243
+ white-space: nowrap;
2244
+ align-self: center;
2245
+ }
2246
+
2247
+ .claim-pin:hover {
2248
+ background: rgba(230, 180, 80, 0.22);
2249
+ color: var(--ink);
2250
+ border-color: rgba(230, 180, 80, 0.8);
2251
+ }
2252
+
2253
+ .claim-pin.on {
2254
+ color: #1a1510;
2255
+ border-color: rgba(230, 180, 80, 0.9);
2256
+ background: rgba(230, 180, 80, 0.85);
2257
+ }
2258
+
2259
+ .license-apply,
2260
+ .pro-onboard {
2261
+ margin-top: 1.25rem;
2262
+ padding: 1rem 1.1rem;
2263
+ border: 1px solid var(--line);
2264
+ border-radius: 16px;
2265
+ background: var(--bg0);
2266
+ }
2267
+
2268
+ .license-apply h2,
2269
+ .pro-onboard h2 {
2270
+ margin: 0 0 0.35rem;
2271
+ font-size: 1.05rem;
2272
+ }
2273
+
2274
+ .license-apply textarea {
2275
+ width: 100%;
2276
+ min-height: 110px;
2277
+ margin: 0.5rem 0;
2278
+ background: var(--bg1);
2279
+ color: var(--ink);
2280
+ border: 1px solid var(--line);
2281
+ border-radius: 12px;
2282
+ padding: 0.75rem;
2283
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
2284
+ font-size: 0.78rem;
2285
+ }
2286
+
2287
+ .license-apply-actions {
2288
+ display: flex;
2289
+ flex-wrap: wrap;
2290
+ gap: 0.5rem;
2291
+ align-items: center;
2292
+ }
2293
+
2294
+ .license-file-label {
2295
+ cursor: pointer;
2296
+ }
2297
+
2298
+ .pro-onboard-steps {
2299
+ margin: 0.6rem 0 0.9rem;
2300
+ padding: 0;
2301
+ list-style: none;
2302
+ color: var(--muted);
2303
+ font-size: 0.9rem;
2304
+ }
2305
+
2306
+ .pro-onboard-steps li {
2307
+ display: flex;
2308
+ gap: 0.45rem;
2309
+ align-items: center;
2310
+ margin: 0.25rem 0;
2311
+ }
2312
+
2313
+ .pro-onboard-steps li.done {
2314
+ color: var(--ink);
2315
+ }
2316
+
2317
+ .showdown-panel {
2318
+ display: none;
2319
+ margin: 0;
2320
+ padding: 0.55rem 1.25rem 0.65rem;
2321
+ border-bottom: 1px solid var(--line);
2322
+ background: var(--bg1);
2323
+ }
2324
+
2325
+ .showdown-panel.open {
2326
+ display: block;
2327
+ }
2328
+
2329
+ .showdown-panel.closed {
2330
+ display: none;
2331
+ }
2332
+
2333
+ .showdown-result-bar {
2334
+ display: flex;
2335
+ justify-content: space-between;
2336
+ align-items: center;
2337
+ gap: 0.75rem;
2338
+ margin-bottom: 0.45rem;
2339
+ }
2340
+
2341
+ .showdown-result-bar .note {
2342
+ margin: 0;
2343
+ }
2344
+
2345
+ .showdown-head {
2346
+ display: flex;
2347
+ flex-wrap: wrap;
2348
+ gap: 0.5rem 1rem;
2349
+ align-items: baseline;
2350
+ margin-bottom: 0.55rem;
2351
+ }
2352
+
2353
+ .showdown-run {
2354
+ display: flex;
2355
+ gap: 0.5rem;
2356
+ margin-bottom: 0.45rem;
2357
+ align-items: center;
2358
+ }
2359
+
2360
+ .showdown-run input {
2361
+ flex: 1;
2362
+ min-width: 0;
2363
+ background: var(--bg0);
2364
+ color: var(--ink);
2365
+ border: 1px solid var(--line);
2366
+ border-radius: 10px;
2367
+ padding: 0.45rem 0.7rem;
2368
+ font: inherit;
2369
+ font-size: 0.85rem;
2370
+ }
2371
+
2372
+ .showdown-grid {
2373
+ display: grid;
2374
+ grid-template-columns: 1fr 1fr;
2375
+ gap: 0.75rem;
2376
+ }
2377
+
2378
+ .showdown-col h3 {
2379
+ margin: 0 0 0.4rem;
2380
+ font-size: 0.95rem;
2381
+ }
2382
+
2383
+ .showdown-list {
2384
+ margin: 0;
2385
+ padding-left: 1.1rem;
2386
+ color: var(--muted);
2387
+ font-size: 0.82rem;
2388
+ line-height: 1.4;
2389
+ }
2390
+
2391
+ .showdown-list li + li {
2392
+ margin-top: 0.55rem;
2393
+ }
2394
+
2395
+ .showdown-list strong {
2396
+ color: var(--ink);
2397
+ font-size: 0.78rem;
2398
+ }
2399
+
2400
+ .claim-li {
2401
+ display: grid;
2402
+ grid-template-columns: 1fr auto;
2403
+ gap: 0.35rem;
2404
+ align-items: stretch;
2405
+ }
2406
+
2407
+ @media (max-width: 800px) {
2408
+ .showdown-grid {
2409
+ grid-template-columns: 1fr;
2410
+ }
2411
+ }