ltcai 2.2.2 → 2.2.7

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.
@@ -0,0 +1,1658 @@
1
+ /* Lattice AI — reference base skin (shared resets, rail, dashboard, page-1 skins). Token-native; values come from /static/css/tokens.css. */
2
+
3
+ /* Lattice AI PPT reference skin.
4
+ The deck uses a bright basic workspace and a dark administrator workspace. */
5
+
6
+ /* 색 토큰(--ref-*, color-scheme 포함)은 tokens.css 가 라이트/다크 모두 제공한다. */
7
+
8
+ .lattice-ref-auth,
9
+ .lattice-ref-chat {
10
+ font-family: "Inter", "Pretendard", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, sans-serif;
11
+ }
12
+
13
+ .lattice-ref-auth {
14
+ background:
15
+ radial-gradient(circle at 74% 25%, rgba(255,255,255,0.70), transparent 16%),
16
+ radial-gradient(circle at 80% 58%, rgba(111,66,232,0.15), transparent 28%),
17
+ radial-gradient(circle at 15% 72%, rgba(111,66,232,0.13), transparent 34%),
18
+ linear-gradient(135deg, var(--surface) 0%, var(--surface) 48%, #ffffff 100%);
19
+ min-height: 100dvh;
20
+ /* 타이틀바(58px)를 제외한 나머지 영역의 수직 중앙에 카드 배치 */
21
+ flex-direction: column;
22
+ align-items: center;
23
+ justify-content: center;
24
+ /* padding-top: 타이틀바 높이만큼만 → justify-content가 나머지 공간에서 중앙 정렬 */
25
+ padding: 58px 18px clamp(72px, 8dvh, 90px);
26
+ overflow: auto;
27
+ }
28
+
29
+ .lattice-ref-auth .login-shell {
30
+ width: min(460px, calc(100vw - 36px));
31
+ display: block;
32
+ z-index: 3;
33
+ }
34
+
35
+ .lattice-ref-auth .brand-preview {
36
+ display: none;
37
+ }
38
+
39
+ .lattice-ref-auth .card {
40
+ width: 100%;
41
+ min-height: auto;
42
+ max-height: none;
43
+ overflow: visible;
44
+ border-radius: 16px;
45
+ padding: clamp(40px, 4.6dvh, 50px) clamp(28px, 3.6vw, 40px) clamp(20px, 2.4dvh, 28px);
46
+ background: var(--card);
47
+ border-color: var(--accent-soft);
48
+ box-shadow: 0 20px 64px rgba(102, 82, 168, 0.20), inset 0 1px 0 rgba(255,255,255,0.86);
49
+ backdrop-filter: blur(26px);
50
+ }
51
+
52
+ .lattice-ref-auth .card::before {
53
+ display: none;
54
+ }
55
+
56
+ .auth-titlebar {
57
+ position: fixed;
58
+ inset: 0 0 auto;
59
+ height: 58px;
60
+ z-index: 4;
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ padding: 0 22px;
65
+ color: var(--ref-ink);
66
+ background: var(--surface);
67
+ border-bottom: 1px solid rgba(111,66,232,0.08);
68
+ backdrop-filter: blur(12px);
69
+ }
70
+
71
+ .auth-window-brand {
72
+ display: inline-flex;
73
+ align-items: center;
74
+ gap: 10px;
75
+ font-size: 21px;
76
+ font-weight: 720;
77
+ }
78
+
79
+ .auth-window-brand i {
80
+ color: var(--ref-purple);
81
+ font-size: 26px;
82
+ }
83
+
84
+ .auth-window-controls {
85
+ display: inline-flex;
86
+ align-items: center;
87
+ gap: 30px;
88
+ }
89
+
90
+ .auth-window-controls span {
91
+ width: 18px;
92
+ height: 18px;
93
+ position: relative;
94
+ }
95
+
96
+ .auth-window-controls span:nth-child(1)::before {
97
+ content: '';
98
+ position: absolute;
99
+ left: 2px;
100
+ right: 2px;
101
+ top: 9px;
102
+ height: 2px;
103
+ background: #202033;
104
+ }
105
+
106
+ .auth-window-controls span:nth-child(2)::before {
107
+ content: '';
108
+ position: absolute;
109
+ inset: 2px;
110
+ border: 2px solid #202033;
111
+ border-radius: 2px;
112
+ }
113
+
114
+ .auth-window-controls span:nth-child(3)::before,
115
+ .auth-window-controls span:nth-child(3)::after {
116
+ content: '';
117
+ position: absolute;
118
+ top: 8px;
119
+ left: 1px;
120
+ width: 18px;
121
+ height: 2px;
122
+ background: #202033;
123
+ }
124
+
125
+ .auth-window-controls span:nth-child(3)::before { transform: rotate(45deg); }
126
+ .auth-window-controls span:nth-child(3)::after { transform: rotate(-45deg); }
127
+
128
+ .auth-wave {
129
+ position: fixed;
130
+ z-index: 0;
131
+ pointer-events: none;
132
+ opacity: 0.78;
133
+ filter: blur(0.2px);
134
+ }
135
+
136
+ .auth-wave::before,
137
+ .auth-wave::after {
138
+ content: '';
139
+ position: absolute;
140
+ inset: 0;
141
+ border-radius: 50% 50% 0 0;
142
+ border-top: 3px solid rgba(255,255,255,0.68);
143
+ transform: skewY(-11deg);
144
+ }
145
+
146
+ .auth-wave::after {
147
+ inset: 34px -80px -20px 40px;
148
+ border-top-color: rgba(124,92,255,0.16);
149
+ }
150
+
151
+ .auth-wave-left {
152
+ left: -130px;
153
+ bottom: -80px;
154
+ width: 780px;
155
+ height: 360px;
156
+ background: radial-gradient(ellipse at 45% 80%, rgba(111,66,232,0.23), transparent 58%);
157
+ transform: rotate(4deg);
158
+ }
159
+
160
+ .auth-wave-right {
161
+ right: -140px;
162
+ bottom: -88px;
163
+ width: 760px;
164
+ height: 340px;
165
+ background: radial-gradient(ellipse at 55% 82%, rgba(111,66,232,0.20), transparent 58%);
166
+ transform: scaleX(-1) rotate(2deg);
167
+ }
168
+
169
+ .auth-network {
170
+ position: fixed;
171
+ right: 160px;
172
+ top: 300px;
173
+ width: 430px;
174
+ height: 330px;
175
+ z-index: 0;
176
+ opacity: 0.28;
177
+ pointer-events: none;
178
+ background:
179
+ linear-gradient(32deg, transparent 0 33%, rgba(255,255,255,0.9) 33.2% 33.5%, transparent 33.7%),
180
+ linear-gradient(90deg, transparent 0 49.8%, rgba(255,255,255,0.8) 50% 50.3%, transparent 50.5%),
181
+ linear-gradient(148deg, transparent 0 38%, rgba(255,255,255,0.9) 38.2% 38.5%, transparent 38.7%);
182
+ }
183
+
184
+ .auth-network span {
185
+ position: absolute;
186
+ width: 13px;
187
+ height: 13px;
188
+ border-radius: 50%;
189
+ background: var(--surface);
190
+ box-shadow: 0 0 20px rgba(255,255,255,0.9);
191
+ }
192
+
193
+ .auth-network span:nth-child(1) { left: 36px; top: 82px; }
194
+ .auth-network span:nth-child(2) { left: 155px; top: 42px; width: 20px; height: 20px; }
195
+ .auth-network span:nth-child(3) { left: 294px; top: 68px; }
196
+ .auth-network span:nth-child(4) { left: 190px; top: 170px; }
197
+ .auth-network span:nth-child(5) { left: 350px; top: 168px; }
198
+ .auth-network span:nth-child(6) { left: 255px; top: 250px; width: 18px; height: 18px; }
199
+
200
+ .lattice-ref-auth .hero-logo {
201
+ display: flex;
202
+ justify-content: center;
203
+ align-items: center;
204
+ gap: clamp(10px, 1.5vw, 16px);
205
+ margin-bottom: clamp(12px, 1.8dvh, 20px);
206
+ }
207
+
208
+ .lattice-ref-auth .hero-logo-mark {
209
+ width: clamp(46px, 5.4dvh, 62px);
210
+ height: clamp(46px, 5.4dvh, 62px);
211
+ display: grid;
212
+ place-items: center;
213
+ color: var(--ref-purple);
214
+ font-size: clamp(40px, 4.8dvh, 56px);
215
+ filter: drop-shadow(0 8px 14px rgba(111,66,232,0.20));
216
+ }
217
+
218
+ .lattice-ref-auth .hero-logo-mark i {
219
+ display: none;
220
+ }
221
+
222
+ .lattice-ref-auth .hero-logo-mark::before {
223
+ content: '';
224
+ width: 86%;
225
+ height: 86%;
226
+ display: block;
227
+ background:
228
+ linear-gradient(30deg, transparent 42%, rgba(255,255,255,0.55) 42% 47%, transparent 47%),
229
+ linear-gradient(90deg, transparent 42%, rgba(255,255,255,0.48) 42% 47%, transparent 47%),
230
+ linear-gradient(150deg, transparent 42%, rgba(255,255,255,0.48) 42% 47%, transparent 47%),
231
+ conic-gradient(from 30deg, #4f7dff, var(--accent), var(--accent-2), #4f7dff);
232
+ clip-path: polygon(50% 0, 88% 20%, 88% 67%, 50% 100%, 12% 67%, 12% 20%);
233
+ border-radius: 18px;
234
+ box-shadow: inset 0 0 0 8px rgba(255,255,255,0.16), 0 14px 28px rgba(111,66,232,0.24);
235
+ }
236
+
237
+ .lattice-ref-auth .title {
238
+ margin: 0;
239
+ font-size: clamp(28px, 3vw, 40px);
240
+ line-height: 1;
241
+ letter-spacing: 0;
242
+ text-align: left;
243
+ -webkit-text-fill-color: transparent;
244
+ background: linear-gradient(90deg, #10142b 0 68%, var(--ref-purple) 69% 100%);
245
+ -webkit-background-clip: text;
246
+ background-clip: text;
247
+ }
248
+
249
+ .lattice-ref-auth .subtitle {
250
+ margin: 0 0 clamp(14px, 1.9dvh, 22px);
251
+ color: var(--text);
252
+ font-size: clamp(17px, 2vw, 24px);
253
+ font-weight: 860;
254
+ line-height: 1.25;
255
+ letter-spacing: 0;
256
+ }
257
+
258
+ .lattice-ref-auth .subtitle::first-line {
259
+ color: var(--text);
260
+ }
261
+
262
+ .lattice-ref-auth .submit,
263
+ .lattice-ref-chat .send-btn,
264
+ .lattice-ref-chat .workspace-icon,
265
+ .lattice-ref-chat .mode-icon {
266
+ background: linear-gradient(135deg, var(--ref-purple), #7b61ff);
267
+ }
268
+
269
+ .lattice-ref-auth .input {
270
+ height: 100%;
271
+ margin: 0;
272
+ border: 0;
273
+ background: transparent;
274
+ box-shadow: none;
275
+ padding: 0 10px;
276
+ color: var(--ref-ink);
277
+ font-size: clamp(13px, 1.3vw, 15px);
278
+ font-weight: 650;
279
+ }
280
+
281
+ .lattice-ref-auth .input:focus {
282
+ box-shadow: none;
283
+ border: 0;
284
+ }
285
+
286
+ .auth-field {
287
+ height: clamp(40px, 4.4dvh, 46px);
288
+ display: flex;
289
+ align-items: center;
290
+ gap: 8px;
291
+ margin-bottom: clamp(8px, 1.1dvh, 12px);
292
+ padding: 0 16px;
293
+ border: 1px solid #d9d6e4;
294
+ border-radius: 8px;
295
+ background: var(--surface);
296
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
297
+ color: var(--faint);
298
+ }
299
+
300
+ .auth-field:focus-within {
301
+ border-color: rgba(111,66,232,0.44);
302
+ box-shadow: 0 0 0 3px rgba(111,66,232,0.09), inset 0 1px 0 rgba(255,255,255,0.8);
303
+ }
304
+
305
+ .auth-field > i {
306
+ font-size: 19px;
307
+ }
308
+
309
+ .field-eye {
310
+ border: 0;
311
+ background: transparent;
312
+ color: var(--faint);
313
+ font-size: 18px;
314
+ cursor: pointer;
315
+ }
316
+
317
+ .lattice-ref-auth .msg {
318
+ min-height: clamp(14px, 1.5dvh, 18px);
319
+ margin: 2px 0 4px;
320
+ color: #d44f5c;
321
+ }
322
+
323
+ .lattice-ref-auth .submit,
324
+ .lattice-ref-auth .register-cta {
325
+ height: clamp(42px, 4.6dvh, 48px);
326
+ border-radius: 8px;
327
+ font-size: clamp(14px, 1.5vw, 17px);
328
+ }
329
+
330
+ .lattice-ref-auth .submit {
331
+ margin-top: 0;
332
+ box-shadow: 0 10px 24px rgba(111,66,232,0.24);
333
+ }
334
+
335
+ .lattice-ref-auth .register-cta {
336
+ width: 100%;
337
+ margin-top: clamp(8px, 1.1dvh, 12px);
338
+ border: 2px solid rgba(111,66,232,0.56);
339
+ color: var(--ref-purple);
340
+ background: rgba(255,255,255,0.28);
341
+ font-family: inherit;
342
+ font-weight: 850;
343
+ cursor: pointer;
344
+ }
345
+
346
+ .lattice-ref-auth .sso-divider {
347
+ margin: clamp(12px, 1.5dvh, 18px) 0 clamp(8px, 1dvh, 10px);
348
+ color: var(--muted);
349
+ font-size: clamp(12px, 1.2vw, 14px);
350
+ font-weight: 700;
351
+ }
352
+
353
+ .lattice-ref-auth .sso-divider::before,
354
+ .lattice-ref-auth .sso-divider::after {
355
+ background: var(--surface-2);
356
+ }
357
+
358
+ .lattice-ref-auth .sso-btn {
359
+ height: clamp(40px, 4.5dvh, 48px);
360
+ margin-bottom: clamp(8px, 1.1dvh, 12px);
361
+ justify-content: flex-start;
362
+ gap: clamp(10px, 1.4vw, 16px);
363
+ padding: 0 clamp(18px, 2.8vw, 28px);
364
+ border-radius: 8px;
365
+ border-color: #d9d6e4;
366
+ background: var(--surface-2);
367
+ color: var(--text);
368
+ font-size: clamp(13px, 1.4vw, 16px);
369
+ font-weight: 850;
370
+ box-shadow: 0 6px 16px rgba(88,72,150,0.08);
371
+ }
372
+
373
+ .ms-logo {
374
+ width: clamp(22px, 2.5dvh, 26px);
375
+ height: clamp(22px, 2.5dvh, 26px);
376
+ display: grid;
377
+ grid-template-columns: 1fr 1fr;
378
+ gap: 3px;
379
+ flex: 0 0 auto;
380
+ }
381
+
382
+ .ms-logo b:nth-child(1) { background: #f35325; }
383
+ .ms-logo b:nth-child(2) { background: #81bc06; }
384
+ .ms-logo b:nth-child(3) { background: #05a6f0; }
385
+ .ms-logo b:nth-child(4) { background: #ffba08; }
386
+
387
+ .okta-logo {
388
+ width: clamp(22px, 2.5dvh, 28px);
389
+ height: clamp(22px, 2.5dvh, 28px);
390
+ border-radius: 50%;
391
+ flex: 0 0 auto;
392
+ background:
393
+ conic-gradient(from 0deg, #111 0 10%, transparent 10% 17%, #111 17% 27%, transparent 27% 34%, #111 34% 44%, transparent 44% 51%, #111 51% 61%, transparent 61% 68%, #111 68% 78%, transparent 78% 85%, #111 85% 95%, transparent 95% 100%);
394
+ }
395
+
396
+ .local-start {
397
+ display: flex;
398
+ align-items: center;
399
+ justify-content: center;
400
+ gap: 12px;
401
+ width: 100%;
402
+ margin-top: clamp(10px, 1.4dvh, 16px);
403
+ border: 0;
404
+ background: transparent;
405
+ color: var(--ref-purple);
406
+ font-family: inherit;
407
+ font-size: clamp(13px, 1.3vw, 16px);
408
+ font-weight: 850;
409
+ cursor: pointer;
410
+ }
411
+
412
+ .local-start i {
413
+ font-size: clamp(17px, 1.9dvh, 22px);
414
+ }
415
+
416
+ .lattice-ref-auth .lang-wrap {
417
+ position: absolute;
418
+ top: 12px;
419
+ right: 12px;
420
+ z-index: 6;
421
+ }
422
+
423
+ .lattice-ref-auth .lang-btn {
424
+ height: auto;
425
+ border: 1px solid rgba(111,66,232,0.38);
426
+ border-radius: 12px;
427
+ padding: 4px 9px;
428
+ color: var(--text);
429
+ background: var(--surface-2);
430
+ font-size: 11px;
431
+ font-weight: 700;
432
+ box-shadow: 0 1px 5px rgba(111,66,232,0.08);
433
+ }
434
+
435
+ .lattice-ref-auth .lang-menu {
436
+ background: var(--surface-elevated);
437
+ min-width: 110px;
438
+ }
439
+
440
+ .lattice-ref-auth .lang-opt {
441
+ font-size: 11px;
442
+ padding: 5px 8px;
443
+ }
444
+
445
+ .auth-footer {
446
+ position: fixed;
447
+ left: 48px;
448
+ bottom: 28px;
449
+ z-index: 5;
450
+ display: flex;
451
+ align-items: center;
452
+ gap: 34px;
453
+ }
454
+
455
+ .auth-footer button {
456
+ display: inline-flex;
457
+ align-items: center;
458
+ gap: 10px;
459
+ height: 42px;
460
+ border-radius: 11px;
461
+ border: 1px solid var(--accent-soft);
462
+ font-size: 16px;
463
+ color: var(--muted);
464
+ box-shadow: 0 8px 22px rgba(88,72,150,0.06);
465
+ cursor: pointer;
466
+ }
467
+
468
+ .auth-footer a {
469
+ color: var(--muted);
470
+ text-decoration: none;
471
+ font-size: 16px;
472
+ font-weight: 720;
473
+ }
474
+
475
+ .lattice-ref-auth #register-section .hero-logo,
476
+ .lattice-ref-auth #register-section .logo {
477
+ display: none;
478
+ }
479
+
480
+ .lattice-ref-auth #register-section .title {
481
+ text-align: center;
482
+ font-size: 38px;
483
+ margin-bottom: 10px;
484
+ display: block;
485
+ }
486
+
487
+ .lattice-ref-auth #register-section .subtitle {
488
+ font-size: 16px;
489
+ text-align: center;
490
+ color: var(--ref-muted);
491
+ letter-spacing: 0;
492
+ }
493
+
494
+ .lattice-ref-auth #register-section .input {
495
+ height: 48px;
496
+ margin-bottom: 10px;
497
+ border: 1px solid #d9d6e4;
498
+ background: var(--input);
499
+ border-radius: 9px;
500
+ padding: 0 14px;
501
+ font-size: 15px;
502
+ }
503
+
504
+ :root[data-lt-theme="dark"] .lattice-ref-auth .card {
505
+ background: rgba(22, 22, 58, 0.94);
506
+ border-color: rgba(167, 139, 250, 0.24);
507
+ box-shadow: 0 28px 80px rgba(0, 0, 0, 0.58);
508
+ backdrop-filter: none;
509
+ }
510
+
511
+ :root[data-lt-theme="dark"] .lattice-ref-auth .title,
512
+ :root[data-lt-theme="dark"] .lattice-ref-auth #register-section .title {
513
+ background: linear-gradient(90deg, #f4f5fb 0 68%, var(--accent-2) 69% 100%);
514
+ -webkit-background-clip: text;
515
+ background-clip: text;
516
+ -webkit-text-fill-color: transparent;
517
+ }
518
+
519
+ :root[data-lt-theme="dark"] .lattice-ref-auth .input,
520
+ :root[data-lt-theme="dark"] .lattice-ref-auth #register-section .input {
521
+ background: rgba(255, 255, 255, 0.06);
522
+ border-color: rgba(160, 170, 230, 0.24);
523
+ color: var(--text);
524
+ }
525
+
526
+ :root[data-lt-theme="dark"] .lattice-ref-auth .input::placeholder {
527
+ color: rgba(226, 232, 255, 0.52);
528
+ }
529
+
530
+ :root[data-lt-theme="dark"] .auth-window-controls span:nth-child(1)::before,
531
+ :root[data-lt-theme="dark"] .auth-window-controls span:nth-child(3)::before,
532
+ :root[data-lt-theme="dark"] .auth-window-controls span:nth-child(3)::after {
533
+ background: var(--text);
534
+ }
535
+
536
+ :root[data-lt-theme="dark"] .auth-window-controls span:nth-child(2)::before {
537
+ border-color: var(--text);
538
+ }
539
+
540
+ .lattice-ref-auth #register-section .submit {
541
+ height: 54px;
542
+ font-size: 17px;
543
+ }
544
+
545
+ @media (max-width: 1100px) {
546
+ .auth-window-controls {
547
+ display: none;
548
+ }
549
+
550
+ .auth-network {
551
+ display: none;
552
+ }
553
+ }
554
+
555
+ @media (max-height: 760px) {
556
+ .lattice-ref-auth {
557
+ padding-top: 58px;
558
+ padding-bottom: 16px;
559
+ }
560
+
561
+ .auth-footer {
562
+ display: none;
563
+ }
564
+
565
+ .lattice-ref-auth .card {
566
+ padding: 38px 30px 16px;
567
+ }
568
+
569
+ .lattice-ref-auth .hero-logo {
570
+ margin-bottom: 8px;
571
+ }
572
+
573
+ .lattice-ref-auth .hero-logo-mark {
574
+ width: 40px;
575
+ height: 40px;
576
+ font-size: 36px;
577
+ }
578
+
579
+ .lattice-ref-auth .title {
580
+ font-size: 26px;
581
+ }
582
+
583
+ .lattice-ref-auth .subtitle {
584
+ margin-bottom: 12px;
585
+ font-size: 16px;
586
+ line-height: 1.2;
587
+ }
588
+
589
+ .auth-field,
590
+ .lattice-ref-auth .submit,
591
+ .lattice-ref-auth .register-cta,
592
+ .lattice-ref-auth .sso-btn {
593
+ height: 38px;
594
+ }
595
+
596
+ .auth-field {
597
+ margin-bottom: 7px;
598
+ }
599
+
600
+ .lattice-ref-auth .submit,
601
+ .lattice-ref-auth .register-cta,
602
+ .lattice-ref-auth .sso-btn,
603
+ .local-start {
604
+ font-size: 13px;
605
+ }
606
+
607
+ .lattice-ref-auth .sso-divider {
608
+ margin: 10px 0 6px;
609
+ font-size: 12px;
610
+ }
611
+
612
+ .lattice-ref-auth .sso-btn {
613
+ margin-bottom: 7px;
614
+ }
615
+
616
+ .local-start {
617
+ margin-top: 8px;
618
+ }
619
+ }
620
+
621
+ @media (max-width: 760px) {
622
+ .auth-titlebar,
623
+ .auth-footer,
624
+ .auth-wave,
625
+ .auth-network {
626
+ display: none;
627
+ }
628
+
629
+ .lattice-ref-auth {
630
+ padding: 18px;
631
+ }
632
+
633
+ .lattice-ref-auth .card {
634
+ min-height: auto;
635
+ max-height: none;
636
+ padding: 28px 22px;
637
+ }
638
+
639
+ .lattice-ref-auth .hero-logo {
640
+ gap: 12px;
641
+ }
642
+
643
+ .lattice-ref-auth .hero-logo-mark {
644
+ width: 58px;
645
+ height: 58px;
646
+ font-size: 52px;
647
+ }
648
+
649
+ .lattice-ref-auth .title {
650
+ font-size: 34px;
651
+ }
652
+
653
+ .lattice-ref-auth .subtitle {
654
+ font-size: 26px;
655
+ }
656
+
657
+ }
658
+
659
+ /* Shared PPT rail */
660
+ .reference-rail {
661
+ background: var(--sidebar);
662
+ border-right: 1px solid var(--ref-line);
663
+ color: var(--ref-ink);
664
+ min-height: 100vh;
665
+ padding: 26px 18px;
666
+ display: flex;
667
+ flex-direction: column;
668
+ gap: 24px;
669
+ box-shadow: 12px 0 48px rgba(88,72,150,0.08);
670
+ }
671
+
672
+ .rail-brand {
673
+ display: flex;
674
+ align-items: center;
675
+ gap: 12px;
676
+ font-size: 23px;
677
+ font-weight: 850;
678
+ letter-spacing: -0.04em;
679
+ }
680
+
681
+ .rail-brand i {
682
+ color: var(--ref-purple);
683
+ font-size: 30px;
684
+ }
685
+
686
+ .rail-brand span {
687
+ display: block;
688
+ font-size: 12px;
689
+ color: var(--ref-purple-2);
690
+ letter-spacing: 0;
691
+ }
692
+
693
+ .reference-rail nav {
694
+ display: flex;
695
+ flex-direction: column;
696
+ gap: 9px;
697
+ }
698
+
699
+ .reference-rail a,
700
+ .reference-nav-item {
701
+ width: 100%;
702
+ border: 0;
703
+ text-decoration: none;
704
+ display: flex;
705
+ align-items: center;
706
+ gap: 12px;
707
+ border-radius: 10px;
708
+ padding: 13px 16px;
709
+ color: var(--text);
710
+ font: inherit;
711
+ font-size: 15px;
712
+ font-weight: 700;
713
+ background: transparent;
714
+ cursor: pointer;
715
+ transition: 160ms ease;
716
+ }
717
+
718
+ .reference-rail a.active,
719
+ .reference-rail a:hover,
720
+ .reference-nav-item.active,
721
+ .reference-nav-item:hover {
722
+ color: var(--ref-purple);
723
+ background: linear-gradient(90deg, var(--border), rgba(111,66,232,0.05));
724
+ }
725
+
726
+ .reference-rail i,
727
+ .reference-nav-item i {
728
+ font-size: 20px;
729
+ }
730
+
731
+ .rail-project {
732
+ margin-top: auto;
733
+ border: 1px solid var(--ref-line);
734
+ border-radius: 12px;
735
+ padding: 15px 16px;
736
+ background: var(--surface);
737
+ color: var(--ref-muted);
738
+ }
739
+
740
+ .rail-project span {
741
+ display: block;
742
+ font-size: 12px;
743
+ margin-bottom: 4px;
744
+ }
745
+
746
+ .rail-project strong {
747
+ display: block;
748
+ color: var(--ref-ink);
749
+ font-size: 14px;
750
+ }
751
+
752
+ /* Chat and home dashboard */
753
+ .lattice-ref-chat {
754
+ background: var(--app-bg);
755
+ }
756
+
757
+ .lattice-ref-chat .sidebar {
758
+ width: 280px;
759
+ min-width: 280px;
760
+ background: var(--sidebar);
761
+ border-right: 1px solid rgba(111,66,232,0.13);
762
+ box-shadow: 12px 0 46px rgba(88,72,150,0.08);
763
+ }
764
+
765
+ .lattice-ref-chat .sidebar-header {
766
+ padding: 30px 24px 18px;
767
+ border-bottom: 0;
768
+ }
769
+
770
+ .lattice-ref-chat .logo-box {
771
+ width: 42px;
772
+ height: 42px;
773
+ border-radius: 13px;
774
+ }
775
+
776
+ .lattice-ref-chat .brand-title {
777
+ color: var(--ref-ink);
778
+ font-size: 23px;
779
+ letter-spacing: -0.04em;
780
+ }
781
+
782
+ .lattice-ref-chat .brand-subtitle {
783
+ display: inline-flex;
784
+ margin-top: 6px;
785
+ padding: 3px 10px;
786
+ border-radius: 999px;
787
+ color: var(--ref-purple);
788
+ background: rgba(111,66,232,0.10);
789
+ font-size: 12px;
790
+ font-weight: 700;
791
+ }
792
+
793
+ .lattice-ref-chat .user-strip {
794
+ margin: 0 18px 16px;
795
+ border: 1px solid var(--ref-line);
796
+ border-radius: 14px;
797
+ background: var(--sidebar);
798
+ order: 20;
799
+ }
800
+
801
+ .lattice-ref-chat .reference-side-nav {
802
+ padding: 12px 18px;
803
+ }
804
+
805
+ .lattice-ref-chat .sidebar-search,
806
+ .lattice-ref-chat .sidebar-primary-actions {
807
+ margin: 0 18px;
808
+ padding-left: 0;
809
+ padding-right: 0;
810
+ }
811
+
812
+ .lattice-ref-chat .history-container {
813
+ padding: 10px 18px;
814
+ }
815
+
816
+ .lattice-ref-chat .sidebar-footer {
817
+ padding: 14px 18px 18px;
818
+ }
819
+
820
+ .lattice-ref-chat .new-chat-btn,
821
+ .lattice-ref-chat .status-btn,
822
+ .lattice-ref-chat .setup-wizard-sidebar-btn,
823
+ .lattice-ref-chat .admin-btn,
824
+ .lattice-ref-chat .file-type-btn,
825
+ .lattice-ref-chat .logout-btn,
826
+ .lattice-ref-chat .status-pill,
827
+ .lattice-ref-chat .model-badge {
828
+ border: 1px solid rgba(111,66,232,0.16);
829
+ border-radius: 10px;
830
+ background: var(--surface-2);
831
+ color: var(--ref-ink);
832
+ }
833
+
834
+ .lattice-ref-chat .new-chat-btn:first-child {
835
+ border-color: rgba(111,66,232,0.28);
836
+ color: var(--ref-purple);
837
+ }
838
+
839
+ .lattice-ref-chat .chat-header {
840
+ min-height: 88px;
841
+ padding: 18px 28px;
842
+ background: var(--sidebar);
843
+ border-bottom: 1px solid rgba(111,66,232,0.11);
844
+ box-shadow: 0 2px 12px rgba(88,72,150,0.06);
845
+ backdrop-filter: blur(14px);
846
+ }
847
+
848
+ .lattice-ref-chat .messages-viewport {
849
+ padding: 30px 38px 20px;
850
+ }
851
+
852
+ .lattice-ref-chat .ops-strip {
853
+ display: flex;
854
+ }
855
+
856
+ .lattice-ref-chat .empty-state {
857
+ width: min(100%, 1320px);
858
+ max-width: none;
859
+ margin: 0 auto;
860
+ text-align: left;
861
+ }
862
+
863
+ .reference-home {
864
+ display: flex;
865
+ flex-direction: column;
866
+ gap: 22px;
867
+ }
868
+
869
+ .reference-home-head h1 {
870
+ margin: 0;
871
+ color: var(--ref-ink);
872
+ font-size: clamp(30px, 3vw, 40px);
873
+ font-weight: 860;
874
+ letter-spacing: -0.04em;
875
+ }
876
+
877
+ .reference-home-head p {
878
+ margin: 8px 0 0;
879
+ color: var(--ref-muted);
880
+ font-size: 15px;
881
+ }
882
+
883
+ .reference-card-grid {
884
+ display: grid;
885
+ grid-template-columns: repeat(3, minmax(0, 1fr));
886
+ gap: 20px;
887
+ }
888
+
889
+ .reference-dash-card,
890
+ .reference-lists article {
891
+ border: 1px solid var(--ref-line);
892
+ border-radius: 18px;
893
+ background: var(--ref-card);
894
+ box-shadow: var(--ref-shadow);
895
+ transition: transform 200ms var(--lt-motion-ease, ease), box-shadow 200ms var(--lt-motion-ease, ease);
896
+ }
897
+
898
+ .reference-dash-card:hover,
899
+ .reference-lists article:hover {
900
+ transform: translateY(-3px);
901
+ box-shadow: 0 24px 64px rgba(88,72,150,0.18);
902
+ }
903
+
904
+ .reference-dash-card {
905
+ min-height: 260px;
906
+ padding: 22px 24px;
907
+ }
908
+
909
+ .reference-card-icon {
910
+ width: 56px;
911
+ height: 56px;
912
+ border-radius: 15px;
913
+ display: grid;
914
+ place-items: center;
915
+ margin-bottom: 18px;
916
+ color: var(--ref-purple);
917
+ background: linear-gradient(135deg, rgba(111,66,232,0.13), rgba(111,66,232,0.06));
918
+ font-size: 28px;
919
+ }
920
+
921
+ .reference-dash-card h3 {
922
+ margin: 0 0 20px;
923
+ color: var(--ref-ink);
924
+ font-size: 22px;
925
+ }
926
+
927
+ .reference-dash-card p {
928
+ color: var(--ref-muted);
929
+ margin: 0 0 14px;
930
+ }
931
+
932
+ .green-dot {
933
+ display: inline-block;
934
+ width: 11px;
935
+ height: 11px;
936
+ border-radius: 50%;
937
+ background: #28c66f;
938
+ box-shadow: 0 0 0 8px rgba(40,198,111,0.12);
939
+ margin-right: 10px;
940
+ }
941
+
942
+ .reference-stat-row {
943
+ display: flex;
944
+ justify-content: space-between;
945
+ align-items: center;
946
+ color: var(--ref-muted);
947
+ margin: 12px 0;
948
+ }
949
+
950
+ .reference-stat-row strong,
951
+ .reference-big-number {
952
+ color: var(--ref-purple);
953
+ font-size: 22px;
954
+ }
955
+
956
+ .reference-big-number {
957
+ font-size: 34px;
958
+ font-weight: 850;
959
+ }
960
+
961
+ .reference-progress {
962
+ height: 10px;
963
+ border-radius: 999px;
964
+ background: var(--surface);
965
+ overflow: hidden;
966
+ margin: 16px 0 26px;
967
+ }
968
+
969
+ .reference-progress span {
970
+ display: block;
971
+ height: 100%;
972
+ border-radius: inherit;
973
+ background: linear-gradient(90deg, var(--ref-purple), var(--ref-purple-2));
974
+ }
975
+
976
+ .reference-dash-card button,
977
+ .reference-lists button {
978
+ width: 100%;
979
+ border: 1px solid rgba(111,66,232,0.35);
980
+ border-radius: 10px;
981
+ padding: 12px 14px;
982
+ color: var(--ref-purple);
983
+ background: var(--card);
984
+ font: inherit;
985
+ font-weight: 800;
986
+ cursor: pointer;
987
+ }
988
+
989
+ .reference-lists {
990
+ display: grid;
991
+ grid-template-columns: 1fr 1.1fr;
992
+ gap: 20px;
993
+ }
994
+
995
+ .reference-lists article {
996
+ padding: 0 22px 12px;
997
+ }
998
+
999
+ .reference-lists header {
1000
+ height: 58px;
1001
+ display: flex;
1002
+ align-items: center;
1003
+ gap: 10px;
1004
+ border-bottom: 1px solid var(--ref-line);
1005
+ color: var(--ref-ink);
1006
+ font-weight: 850;
1007
+ }
1008
+
1009
+ .reference-lists header button {
1010
+ margin-left: auto;
1011
+ width: auto;
1012
+ border: 0;
1013
+ padding: 0;
1014
+ color: var(--ref-purple);
1015
+ background: transparent;
1016
+ }
1017
+
1018
+ .reference-lists p {
1019
+ display: flex;
1020
+ justify-content: space-between;
1021
+ gap: 18px;
1022
+ margin: 0;
1023
+ padding: 15px 0;
1024
+ border-bottom: 1px solid #f0ecf7;
1025
+ color: var(--ref-ink);
1026
+ }
1027
+
1028
+ .reference-lists p span {
1029
+ color: var(--ref-faint);
1030
+ white-space: nowrap;
1031
+ }
1032
+
1033
+ .lattice-ref-chat .empty-grid {
1034
+ display: flex;
1035
+ justify-content: flex-start;
1036
+ gap: 10px;
1037
+ }
1038
+
1039
+ .lattice-ref-chat .empty-chip {
1040
+ border-radius: 999px;
1041
+ padding: 12px 16px;
1042
+ box-shadow: none;
1043
+ }
1044
+
1045
+ .lattice-ref-chat .input-area {
1046
+ background: linear-gradient(0deg, var(--input), var(--input), transparent);
1047
+ }
1048
+
1049
+ .lattice-ref-chat .input-box {
1050
+ max-width: 1120px;
1051
+ border-radius: 18px;
1052
+ background: var(--input);
1053
+ border-color: rgba(111,66,232,0.17);
1054
+ box-shadow: 0 8px 32px rgba(88,72,150,0.10);
1055
+ }
1056
+
1057
+ .lattice-ref-chat .user .bubble {
1058
+ background: linear-gradient(135deg, var(--ref-purple), #6536d9);
1059
+ border-radius: 16px 16px 4px 16px;
1060
+ }
1061
+
1062
+ .lattice-ref-chat .ai .bubble {
1063
+ background: var(--surface);
1064
+ color: var(--ref-ink);
1065
+ border-color: var(--accent-soft);
1066
+ border-radius: 16px 16px 16px 4px;
1067
+ box-shadow: 0 4px 18px rgba(88,72,150,0.08);
1068
+ }
1069
+
1070
+ .lattice-ref-chat .workspace-modal,
1071
+ .lattice-ref-chat .mode-modal {
1072
+ border-radius: 22px;
1073
+ }
1074
+
1075
+ /* Graph page: slide 6 light graph workspace */
1076
+ .lattice-ref-graph {
1077
+ margin: 0;
1078
+ display: grid;
1079
+ grid-template-columns: 264px minmax(0, 1fr);
1080
+ min-height: 100vh;
1081
+ overflow: hidden;
1082
+ background: var(--surface);
1083
+ color: var(--ref-ink);
1084
+ font-family: "Inter", "Pretendard", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, sans-serif;
1085
+ }
1086
+
1087
+ .lattice-ref-graph .app {
1088
+ height: 100vh;
1089
+ grid-template-columns: minmax(0, 1fr) 320px;
1090
+ background: var(--surface);
1091
+ }
1092
+
1093
+ .lattice-ref-graph .stage {
1094
+ border-right: 0;
1095
+ background:
1096
+ radial-gradient(circle, var(--border) 1px, transparent 1.8px),
1097
+ linear-gradient(180deg, #fff 0%, var(--surface) 100%);
1098
+ background-size: 28px 28px, 100% 100%;
1099
+ margin: 98px 14px 40px 24px;
1100
+ border: 1px solid var(--ref-line);
1101
+ border-radius: 14px;
1102
+ overflow: hidden;
1103
+ }
1104
+
1105
+ .lattice-ref-graph .stage::before {
1106
+ content: "지식 그래프";
1107
+ position: fixed;
1108
+ top: 34px;
1109
+ left: 324px;
1110
+ color: var(--ref-ink);
1111
+ font-size: 31px;
1112
+ font-weight: 860;
1113
+ letter-spacing: -0.04em;
1114
+ }
1115
+
1116
+ .lattice-ref-graph .stage::after {
1117
+ content: "\ea2e";
1118
+ font-family: "tabler-icons";
1119
+ position: fixed;
1120
+ top: 30px;
1121
+ left: 288px;
1122
+ width: 40px;
1123
+ height: 40px;
1124
+ display: grid;
1125
+ place-items: center;
1126
+ border-radius: 10px;
1127
+ color: var(--ref-purple);
1128
+ background: rgba(111,66,232,0.10);
1129
+ font-size: 22px;
1130
+ }
1131
+
1132
+ .lattice-ref-graph .search-shell {
1133
+ top: -72px;
1134
+ left: auto;
1135
+ right: 250px;
1136
+ width: min(520px, 42vw);
1137
+ border-radius: 10px;
1138
+ background: var(--input);
1139
+ box-shadow: none;
1140
+ }
1141
+
1142
+ .lattice-ref-graph .search-head {
1143
+ display: none;
1144
+ }
1145
+
1146
+ .lattice-ref-graph .search-input-wrap {
1147
+ padding: 0;
1148
+ }
1149
+
1150
+ .lattice-ref-graph .search-input {
1151
+ height: 48px;
1152
+ background: var(--input);
1153
+ color: var(--ref-ink);
1154
+ border-color: var(--ref-line);
1155
+ }
1156
+
1157
+ .lattice-ref-graph #clear-search-btn {
1158
+ display: none;
1159
+ }
1160
+
1161
+ .lattice-ref-graph .search-results {
1162
+ display: none;
1163
+ }
1164
+
1165
+ .lattice-ref-graph .toolbar {
1166
+ top: auto;
1167
+ bottom: 12px;
1168
+ left: 50%;
1169
+ right: auto;
1170
+ transform: translateX(-50%);
1171
+ background: var(--surface-2);
1172
+ border-color: var(--ref-line);
1173
+ box-shadow: var(--ref-shadow);
1174
+ border-radius: 12px;
1175
+ }
1176
+
1177
+ .lattice-ref-graph .tb-btn {
1178
+ background: var(--surface-2);
1179
+ color: var(--ref-ink);
1180
+ border-color: var(--ref-line);
1181
+ }
1182
+
1183
+ .lattice-ref-graph aside:not(.reference-rail) {
1184
+ margin: 98px 20px 40px 0;
1185
+ border: 1px solid var(--ref-line);
1186
+ border-radius: 14px;
1187
+ background: var(--sidebar);
1188
+ color: var(--ref-ink);
1189
+ box-shadow: var(--ref-shadow);
1190
+ display: flex;
1191
+ flex-direction: column;
1192
+ overflow-x: hidden;
1193
+ overflow-y: auto;
1194
+ min-height: 0;
1195
+ }
1196
+
1197
+ .lattice-ref-graph .sidebar-head,
1198
+ .lattice-ref-graph .section {
1199
+ border-color: var(--ref-line);
1200
+ }
1201
+
1202
+ .lattice-ref-graph .eyebrow {
1203
+ color: var(--ref-purple);
1204
+ }
1205
+
1206
+ .lattice-ref-graph .sidebar-sub,
1207
+ .lattice-ref-graph .filter-count,
1208
+ .lattice-ref-graph .legend-meta,
1209
+ .lattice-ref-graph .detail-summary,
1210
+ .lattice-ref-graph .empty-hint {
1211
+ color: var(--ref-muted);
1212
+ }
1213
+
1214
+ .lattice-ref-graph .stat,
1215
+ .lattice-ref-graph .metric-card,
1216
+ .lattice-ref-graph .meta-block,
1217
+ .lattice-ref-graph .search-item {
1218
+ background: var(--surface);
1219
+ border-color: var(--ref-line);
1220
+ }
1221
+
1222
+ .lattice-ref-graph #tooltip {
1223
+ background: var(--surface-elevated);
1224
+ color: var(--ref-ink);
1225
+ border-color: var(--ref-line);
1226
+ }
1227
+
1228
+ /* Admin page — light lavender theme (matches graph/chat) */
1229
+ .lattice-ref-admin {
1230
+ margin: 0;
1231
+ display: grid;
1232
+ grid-template-columns: 264px minmax(0, 1fr);
1233
+ min-height: 100vh;
1234
+ overflow: hidden;
1235
+ background:
1236
+ radial-gradient(circle at 82% 12%, var(--border), transparent 30%),
1237
+ radial-gradient(circle at 10% 80%, rgba(180,160,255,0.16), transparent 35%),
1238
+ linear-gradient(180deg, var(--bg) 0%, var(--surface-2) 52%, var(--surface) 100%);
1239
+ color: var(--text);
1240
+ }
1241
+
1242
+ .lattice-ref-admin::before {
1243
+ display: none;
1244
+ }
1245
+
1246
+ .lattice-ref-admin .admin-rail {
1247
+ background: var(--sidebar);
1248
+ border-right: 1px solid rgba(111,66,232,0.13);
1249
+ color: var(--text);
1250
+ box-shadow: 12px 0 46px rgba(88,72,150,0.08);
1251
+ }
1252
+
1253
+ .lattice-ref-admin .admin-rail .rail-brand {
1254
+ align-items: flex-start;
1255
+ flex-direction: column;
1256
+ gap: 4px;
1257
+ font-size: 25px;
1258
+ color: var(--text);
1259
+ }
1260
+
1261
+ .lattice-ref-admin .admin-rail .rail-brand i {
1262
+ font-size: 34px;
1263
+ color: var(--ref-purple);
1264
+ }
1265
+
1266
+ .lattice-ref-admin .admin-rail a {
1267
+ color: var(--text);
1268
+ }
1269
+
1270
+ .lattice-ref-admin .admin-rail a.active,
1271
+ .lattice-ref-admin .admin-rail a:hover {
1272
+ background: linear-gradient(90deg, var(--border), rgba(111,66,232,0.05));
1273
+ color: var(--text);
1274
+ }
1275
+
1276
+ .lattice-ref-admin .admin-rail .rail-project {
1277
+ background: var(--sidebar);
1278
+ border-color: rgba(111,66,232,0.13);
1279
+ }
1280
+
1281
+ .lattice-ref-admin .admin-rail .rail-project strong {
1282
+ color: var(--text);
1283
+ }
1284
+
1285
+ .lattice-ref-admin .admin-rail .rail-project span {
1286
+ color: var(--muted);
1287
+ }
1288
+
1289
+ .lattice-ref-admin .page {
1290
+ min-height: 100vh;
1291
+ overflow-y: auto;
1292
+ }
1293
+
1294
+ .lattice-ref-admin .topbar {
1295
+ height: 96px;
1296
+ background: var(--sidebar);
1297
+ border-bottom: 1px solid rgba(111,66,232,0.10);
1298
+ backdrop-filter: blur(14px);
1299
+ padding: 22px 34px 8px;
1300
+ position: sticky;
1301
+ }
1302
+
1303
+ .lattice-ref-admin .brand-mark {
1304
+ display: none;
1305
+ }
1306
+
1307
+ .lattice-ref-admin .brand h1 {
1308
+ font-size: 36px;
1309
+ letter-spacing: -0.05em;
1310
+ color: var(--text);
1311
+ }
1312
+
1313
+ .lattice-ref-admin .brand p {
1314
+ color: var(--muted);
1315
+ font-size: 15px;
1316
+ }
1317
+
1318
+ .lattice-ref-admin .top-actions .btn {
1319
+ background: var(--surface-2);
1320
+ border-color: rgba(111,66,232,0.18);
1321
+ color: var(--text);
1322
+ }
1323
+
1324
+ .lattice-ref-admin .top-actions .btn:hover {
1325
+ background: rgba(111,66,232,0.10);
1326
+ border-color: rgba(111,66,232,0.32);
1327
+ color: var(--accent);
1328
+ }
1329
+
1330
+ .lattice-ref-admin #admin-lang-btn {
1331
+ min-width: 180px;
1332
+ justify-content: center;
1333
+ border-color: var(--border-strong);
1334
+ }
1335
+
1336
+ .lattice-ref-admin .content {
1337
+ width: min(1500px, calc(100vw - 316px));
1338
+ padding: 8px 34px 28px;
1339
+ gap: 18px;
1340
+ }
1341
+
1342
+ .lattice-ref-admin .admin-view {
1343
+ display: none;
1344
+ flex-direction: column;
1345
+ gap: 18px;
1346
+ }
1347
+
1348
+ .lattice-ref-admin .admin-view.active {
1349
+ display: flex;
1350
+ }
1351
+
1352
+ .lattice-ref-admin .hero {
1353
+ display: none;
1354
+ }
1355
+
1356
+ .lattice-ref-admin .summary-grid {
1357
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1358
+ gap: 14px;
1359
+ }
1360
+
1361
+ .lattice-ref-admin .summary-card,
1362
+ .lattice-ref-admin .panel,
1363
+ .lattice-ref-admin .subpanel,
1364
+ .lattice-ref-admin .session-card,
1365
+ .lattice-ref-admin .table-wrap,
1366
+ .lattice-ref-admin .audit-metric {
1367
+ background: var(--card);
1368
+ border-color: var(--accent-soft);
1369
+ box-shadow: 0 8px 28px rgba(88,72,150,0.08);
1370
+ color: var(--text);
1371
+ border-radius: 12px;
1372
+ }
1373
+
1374
+ .lattice-ref-admin .summary-card {
1375
+ min-height: 118px;
1376
+ padding: 18px 18px 16px 88px;
1377
+ position: relative;
1378
+ display: flex;
1379
+ flex-direction: column;
1380
+ justify-content: center;
1381
+ overflow: hidden;
1382
+ transition: transform 200ms ease, box-shadow 200ms ease;
1383
+ }
1384
+
1385
+ .lattice-ref-admin .summary-card:hover {
1386
+ transform: translateY(-2px);
1387
+ box-shadow: 0 14px 40px rgba(88,72,150,0.14);
1388
+ }
1389
+
1390
+ .lattice-ref-admin .summary-card::before {
1391
+ content: "\ea02";
1392
+ font-family: "tabler-icons";
1393
+ position: absolute;
1394
+ left: 20px;
1395
+ top: 50%;
1396
+ width: 48px;
1397
+ height: 48px;
1398
+ display: grid;
1399
+ place-items: center;
1400
+ border-radius: 8px;
1401
+ color: #fff;
1402
+ background: linear-gradient(135deg, var(--accent), #5332b8);
1403
+ font-size: 24px;
1404
+ transform: translateY(-50%);
1405
+ box-shadow: 0 12px 24px rgba(111,66,232,0.16);
1406
+ }
1407
+
1408
+ .lattice-ref-admin .summary-card:nth-child(2)::before { content: "\ea9a"; }
1409
+ .lattice-ref-admin .summary-card:nth-child(3)::before { content: "\eaa4"; }
1410
+ .lattice-ref-admin .summary-card:nth-child(4)::before {
1411
+ content: "\eadd";
1412
+ background: linear-gradient(135deg, #0d8f72, #116b6d);
1413
+ }
1414
+
1415
+ .lattice-ref-admin .summary-card .label,
1416
+ .lattice-ref-admin .panel-header p,
1417
+ .lattice-ref-admin .summary-card .meta {
1418
+ color: var(--muted);
1419
+ }
1420
+
1421
+ .lattice-ref-admin .summary-card .label {
1422
+ font-size: 12px;
1423
+ font-weight: 800;
1424
+ letter-spacing: 0;
1425
+ text-transform: none;
1426
+ margin-bottom: 8px;
1427
+ }
1428
+
1429
+ .lattice-ref-admin td,
1430
+ .lattice-ref-admin th {
1431
+ color: var(--text);
1432
+ }
1433
+
1434
+ .lattice-ref-admin .summary-card .value {
1435
+ color: var(--accent);
1436
+ font-size: clamp(24px, 2.15vw, 34px);
1437
+ line-height: 1.05;
1438
+ letter-spacing: 0;
1439
+ overflow: hidden;
1440
+ overflow-wrap: anywhere;
1441
+ display: -webkit-box;
1442
+ -webkit-line-clamp: 2;
1443
+ -webkit-box-orient: vertical;
1444
+ }
1445
+
1446
+ .lattice-ref-admin .summary-card .meta {
1447
+ margin-top: 8px;
1448
+ min-height: 0;
1449
+ line-height: 1.4;
1450
+ overflow: hidden;
1451
+ display: -webkit-box;
1452
+ -webkit-line-clamp: 2;
1453
+ -webkit-box-orient: vertical;
1454
+ }
1455
+
1456
+ .lattice-ref-admin .panel-header {
1457
+ border-bottom-color: rgba(111,66,232,0.10);
1458
+ }
1459
+
1460
+ .lattice-ref-admin .panel-header h3,
1461
+ .lattice-ref-admin .subpanel h4 {
1462
+ color: var(--text);
1463
+ }
1464
+
1465
+ .lattice-ref-admin table {
1466
+ color: var(--text);
1467
+ background: transparent;
1468
+ }
1469
+
1470
+ .lattice-ref-admin tr,
1471
+ .lattice-ref-admin th,
1472
+ .lattice-ref-admin td {
1473
+ border-color: rgba(111,66,232,0.10);
1474
+ }
1475
+
1476
+ .lattice-ref-admin th {
1477
+ background: rgba(111,66,232,0.05);
1478
+ color: var(--muted);
1479
+ }
1480
+
1481
+ .lattice-ref-admin input,
1482
+ .lattice-ref-admin textarea,
1483
+ .lattice-ref-admin select {
1484
+ background: var(--input);
1485
+ border-color: rgba(111,66,232,0.16);
1486
+ color: var(--text);
1487
+ }
1488
+
1489
+ .lattice-ref-admin input:focus,
1490
+ .lattice-ref-admin textarea:focus,
1491
+ .lattice-ref-admin select:focus {
1492
+ border-color: rgba(111,66,232,0.44);
1493
+ box-shadow: 0 0 0 3px rgba(111,66,232,0.08);
1494
+ }
1495
+
1496
+ .lattice-ref-admin label {
1497
+ color: var(--muted);
1498
+ }
1499
+
1500
+ .lattice-ref-admin .item {
1501
+ background: var(--surface-2);
1502
+ border-color: rgba(111,66,232,0.10);
1503
+ color: var(--text);
1504
+ }
1505
+
1506
+ .lattice-ref-admin .preview {
1507
+ color: var(--muted);
1508
+ }
1509
+
1510
+ .lattice-ref-admin .tag {
1511
+ color: var(--muted);
1512
+ border-color: rgba(111,66,232,0.15);
1513
+ background: var(--surface-2);
1514
+ }
1515
+
1516
+ .lattice-ref-admin .muted {
1517
+ color: var(--muted);
1518
+ }
1519
+
1520
+ .lattice-ref-admin .notice {
1521
+ background: rgba(111,66,232,0.08);
1522
+ border-color: rgba(111,66,232,0.20);
1523
+ color: var(--muted);
1524
+ }
1525
+
1526
+ .lattice-ref-admin .status-copy {
1527
+ color: var(--muted);
1528
+ }
1529
+
1530
+ .lattice-ref-admin .inline-control {
1531
+ display: flex;
1532
+ gap: 8px;
1533
+ align-items: center;
1534
+ }
1535
+
1536
+ .lattice-ref-admin .inline-control input {
1537
+ flex: 1;
1538
+ }
1539
+
1540
+ .lattice-ref-admin .button-row {
1541
+ display: flex;
1542
+ flex-wrap: wrap;
1543
+ gap: 8px;
1544
+ justify-content: flex-end;
1545
+ }
1546
+
1547
+ .lattice-ref-admin .sso-template-help {
1548
+ margin-top: 12px;
1549
+ padding: 11px 12px;
1550
+ border: 1px solid var(--border);
1551
+ border-radius: 8px;
1552
+ background: rgba(111,66,232,0.06);
1553
+ color: var(--muted);
1554
+ font-size: 12px;
1555
+ line-height: 1.5;
1556
+ }
1557
+
1558
+ .lattice-ref-admin .enterprise-grid {
1559
+ display: grid;
1560
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
1561
+ gap: 10px;
1562
+ }
1563
+
1564
+ .lattice-ref-admin .enterprise-cap-card {
1565
+ display: flex;
1566
+ align-items: center;
1567
+ gap: 10px;
1568
+ min-width: 0;
1569
+ border: 1px solid var(--accent-soft);
1570
+ border-radius: 8px;
1571
+ background: var(--card);
1572
+ padding: 11px 12px;
1573
+ }
1574
+
1575
+ .lattice-ref-admin .enterprise-cap-card i {
1576
+ color: var(--faint);
1577
+ font-size: 18px;
1578
+ }
1579
+
1580
+ .lattice-ref-admin .enterprise-cap-card.on i {
1581
+ color: var(--success);
1582
+ }
1583
+
1584
+ .lattice-ref-admin .enterprise-cap-card span {
1585
+ flex: 1;
1586
+ min-width: 0;
1587
+ color: var(--text);
1588
+ font-size: 13px;
1589
+ font-weight: 800;
1590
+ overflow: hidden;
1591
+ text-overflow: ellipsis;
1592
+ white-space: nowrap;
1593
+ text-transform: capitalize;
1594
+ }
1595
+
1596
+ .lattice-ref-admin .enterprise-cap-card strong {
1597
+ color: var(--muted);
1598
+ font-size: 11px;
1599
+ }
1600
+
1601
+ .lattice-ref-admin .enterprise-kv {
1602
+ display: grid;
1603
+ gap: 8px;
1604
+ }
1605
+
1606
+ .lattice-ref-admin .enterprise-kv div {
1607
+ display: grid;
1608
+ grid-template-columns: 150px minmax(0, 1fr);
1609
+ gap: 10px;
1610
+ align-items: start;
1611
+ border: 1px solid rgba(111,66,232,0.10);
1612
+ border-radius: 8px;
1613
+ background: var(--surface);
1614
+ padding: 9px 10px;
1615
+ }
1616
+
1617
+ .lattice-ref-admin .enterprise-kv span {
1618
+ color: var(--muted);
1619
+ font-size: 12px;
1620
+ font-weight: 800;
1621
+ }
1622
+
1623
+ .lattice-ref-admin .enterprise-kv strong {
1624
+ color: var(--text);
1625
+ font-size: 12px;
1626
+ line-height: 1.45;
1627
+ overflow-wrap: anywhere;
1628
+ }
1629
+
1630
+ .lattice-ref-admin .enterprise-json {
1631
+ max-height: 280px;
1632
+ overflow: auto;
1633
+ margin: 12px 0 0;
1634
+ border: 1px solid rgba(111,66,232,0.10);
1635
+ border-radius: 8px;
1636
+ background: rgba(20,22,44,0.05);
1637
+ color: var(--text);
1638
+ padding: 12px;
1639
+ font-size: 12px;
1640
+ white-space: pre-wrap;
1641
+ }
1642
+
1643
+ @media (max-width: 980px) {
1644
+ .lattice-ref-chat .reference-card-grid,
1645
+ .reference-lists {
1646
+ grid-template-columns: 1fr;
1647
+ }
1648
+
1649
+ .lattice-ref-graph,
1650
+ .lattice-ref-admin {
1651
+ display: block;
1652
+ overflow: auto;
1653
+ }
1654
+
1655
+ .reference-rail {
1656
+ min-height: auto;
1657
+ }
1658
+ }