@seoengine.ai/next-llm-ready 1.0.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.
@@ -0,0 +1,855 @@
1
+ /**
2
+ * next-llm-ready Styles
3
+ *
4
+ * All styles use CSS custom properties for easy theming.
5
+ * Override these variables in your own stylesheet to customize.
6
+ *
7
+ * @example
8
+ * :root {
9
+ * --llm-ready-primary: #0070f3;
10
+ * --llm-ready-radius: 8px;
11
+ * }
12
+ */
13
+
14
+ /* ==========================================================================
15
+ CSS Custom Properties (Theme Variables)
16
+ ========================================================================== */
17
+
18
+ :root {
19
+ /* Colors */
20
+ --llm-ready-primary: #6366f1;
21
+ --llm-ready-primary-hover: #4f46e5;
22
+ --llm-ready-primary-light: #e0e7ff;
23
+ --llm-ready-success: #10b981;
24
+ --llm-ready-success-light: #d1fae5;
25
+ --llm-ready-error: #ef4444;
26
+ --llm-ready-error-light: #fee2e2;
27
+
28
+ /* Text */
29
+ --llm-ready-text: #1f2937;
30
+ --llm-ready-text-muted: #6b7280;
31
+ --llm-ready-text-light: #9ca3af;
32
+ --llm-ready-text-inverse: #ffffff;
33
+
34
+ /* Backgrounds */
35
+ --llm-ready-bg: #ffffff;
36
+ --llm-ready-bg-secondary: #f9fafb;
37
+ --llm-ready-bg-tertiary: #f3f4f6;
38
+ --llm-ready-bg-overlay: rgba(0, 0, 0, 0.5);
39
+
40
+ /* Borders */
41
+ --llm-ready-border: #e5e7eb;
42
+ --llm-ready-border-focus: #6366f1;
43
+
44
+ /* Shadows */
45
+ --llm-ready-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
46
+ --llm-ready-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
47
+ --llm-ready-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
48
+ --llm-ready-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
49
+
50
+ /* Spacing */
51
+ --llm-ready-spacing-xs: 0.25rem;
52
+ --llm-ready-spacing-sm: 0.5rem;
53
+ --llm-ready-spacing-md: 1rem;
54
+ --llm-ready-spacing-lg: 1.5rem;
55
+ --llm-ready-spacing-xl: 2rem;
56
+
57
+ /* Border Radius */
58
+ --llm-ready-radius-sm: 0.25rem;
59
+ --llm-ready-radius: 0.375rem;
60
+ --llm-ready-radius-md: 0.5rem;
61
+ --llm-ready-radius-lg: 0.75rem;
62
+ --llm-ready-radius-full: 9999px;
63
+
64
+ /* Typography */
65
+ --llm-ready-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
66
+ --llm-ready-font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
67
+ --llm-ready-font-size-xs: 0.75rem;
68
+ --llm-ready-font-size-sm: 0.875rem;
69
+ --llm-ready-font-size-base: 1rem;
70
+ --llm-ready-font-size-lg: 1.125rem;
71
+ --llm-ready-line-height: 1.5;
72
+
73
+ /* Transitions */
74
+ --llm-ready-transition-fast: 150ms ease;
75
+ --llm-ready-transition: 200ms ease;
76
+ --llm-ready-transition-slow: 300ms ease;
77
+
78
+ /* Z-index layers */
79
+ --llm-ready-z-dropdown: 50;
80
+ --llm-ready-z-sticky: 100;
81
+ --llm-ready-z-modal: 1000;
82
+ --llm-ready-z-toast: 1100;
83
+ }
84
+
85
+ /* Dark mode support */
86
+ @media (prefers-color-scheme: dark) {
87
+ :root {
88
+ --llm-ready-text: #f9fafb;
89
+ --llm-ready-text-muted: #9ca3af;
90
+ --llm-ready-text-light: #6b7280;
91
+
92
+ --llm-ready-bg: #1f2937;
93
+ --llm-ready-bg-secondary: #374151;
94
+ --llm-ready-bg-tertiary: #4b5563;
95
+
96
+ --llm-ready-border: #4b5563;
97
+
98
+ --llm-ready-primary-light: rgba(99, 102, 241, 0.2);
99
+ --llm-ready-success-light: rgba(16, 185, 129, 0.2);
100
+ --llm-ready-error-light: rgba(239, 68, 68, 0.2);
101
+ }
102
+ }
103
+
104
+ /* Manual dark mode class */
105
+ .dark {
106
+ --llm-ready-text: #f9fafb;
107
+ --llm-ready-text-muted: #9ca3af;
108
+ --llm-ready-text-light: #6b7280;
109
+
110
+ --llm-ready-bg: #1f2937;
111
+ --llm-ready-bg-secondary: #374151;
112
+ --llm-ready-bg-tertiary: #4b5563;
113
+
114
+ --llm-ready-border: #4b5563;
115
+
116
+ --llm-ready-primary-light: rgba(99, 102, 241, 0.2);
117
+ --llm-ready-success-light: rgba(16, 185, 129, 0.2);
118
+ --llm-ready-error-light: rgba(239, 68, 68, 0.2);
119
+ }
120
+
121
+ /* ==========================================================================
122
+ Container
123
+ ========================================================================== */
124
+
125
+ .llm-ready-container {
126
+ position: relative;
127
+ display: inline-flex;
128
+ font-family: var(--llm-ready-font-family);
129
+ }
130
+
131
+ .llm-ready-position-inline {
132
+ display: inline-flex;
133
+ }
134
+
135
+ .llm-ready-position-fixed {
136
+ position: fixed;
137
+ bottom: var(--llm-ready-spacing-lg);
138
+ right: var(--llm-ready-spacing-lg);
139
+ z-index: var(--llm-ready-z-sticky);
140
+ }
141
+
142
+ .llm-ready-position-sticky {
143
+ position: sticky;
144
+ top: var(--llm-ready-spacing-lg);
145
+ z-index: var(--llm-ready-z-sticky);
146
+ }
147
+
148
+ /* ==========================================================================
149
+ Button Base Styles
150
+ ========================================================================== */
151
+
152
+ .llm-ready-copy-btn {
153
+ display: inline-flex;
154
+ align-items: center;
155
+ gap: var(--llm-ready-spacing-sm);
156
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
157
+ background: var(--llm-ready-primary);
158
+ color: var(--llm-ready-text-inverse);
159
+ border: none;
160
+ border-radius: var(--llm-ready-radius);
161
+ font-family: var(--llm-ready-font-family);
162
+ font-size: var(--llm-ready-font-size-sm);
163
+ font-weight: 500;
164
+ line-height: var(--llm-ready-line-height);
165
+ cursor: pointer;
166
+ transition: background-color var(--llm-ready-transition-fast),
167
+ transform var(--llm-ready-transition-fast),
168
+ box-shadow var(--llm-ready-transition-fast);
169
+ white-space: nowrap;
170
+ }
171
+
172
+ .llm-ready-copy-btn:hover:not(:disabled) {
173
+ background: var(--llm-ready-primary-hover);
174
+ transform: translateY(-1px);
175
+ box-shadow: var(--llm-ready-shadow-md);
176
+ }
177
+
178
+ .llm-ready-copy-btn:active:not(:disabled) {
179
+ transform: translateY(0);
180
+ }
181
+
182
+ .llm-ready-copy-btn:focus-visible {
183
+ outline: 2px solid var(--llm-ready-border-focus);
184
+ outline-offset: 2px;
185
+ }
186
+
187
+ .llm-ready-copy-btn:disabled {
188
+ opacity: 0.6;
189
+ cursor: not-allowed;
190
+ }
191
+
192
+ .llm-ready-copy-btn.llm-ready-copying {
193
+ background: var(--llm-ready-primary-light);
194
+ color: var(--llm-ready-primary);
195
+ }
196
+
197
+ .llm-ready-copy-btn.llm-ready-success {
198
+ background: var(--llm-ready-success);
199
+ }
200
+
201
+ .llm-ready-copy-btn.llm-ready-error {
202
+ background: var(--llm-ready-error);
203
+ }
204
+
205
+ .llm-ready-icon {
206
+ flex-shrink: 0;
207
+ }
208
+
209
+ .llm-ready-btn-text {
210
+ flex-shrink: 0;
211
+ }
212
+
213
+ /* ==========================================================================
214
+ Button Group (Split Button)
215
+ ========================================================================== */
216
+
217
+ .llm-ready-btn-group {
218
+ display: inline-flex;
219
+ border-radius: var(--llm-ready-radius);
220
+ box-shadow: var(--llm-ready-shadow);
221
+ }
222
+
223
+ .llm-ready-btn-group .llm-ready-copy-btn {
224
+ border-top-right-radius: 0;
225
+ border-bottom-right-radius: 0;
226
+ box-shadow: none;
227
+ }
228
+
229
+ .llm-ready-btn-group .llm-ready-copy-btn:hover:not(:disabled) {
230
+ transform: none;
231
+ box-shadow: none;
232
+ }
233
+
234
+ .llm-ready-dropdown-btn {
235
+ display: inline-flex;
236
+ align-items: center;
237
+ justify-content: center;
238
+ padding: var(--llm-ready-spacing-sm);
239
+ background: var(--llm-ready-primary);
240
+ color: var(--llm-ready-text-inverse);
241
+ border: none;
242
+ border-left: 1px solid rgba(255, 255, 255, 0.2);
243
+ border-top-right-radius: var(--llm-ready-radius);
244
+ border-bottom-right-radius: var(--llm-ready-radius);
245
+ cursor: pointer;
246
+ transition: background-color var(--llm-ready-transition-fast);
247
+ }
248
+
249
+ .llm-ready-dropdown-btn:hover:not(:disabled) {
250
+ background: var(--llm-ready-primary-hover);
251
+ }
252
+
253
+ .llm-ready-dropdown-btn:focus-visible {
254
+ outline: 2px solid var(--llm-ready-border-focus);
255
+ outline-offset: 2px;
256
+ }
257
+
258
+ .llm-ready-dropdown-btn:disabled {
259
+ opacity: 0.6;
260
+ cursor: not-allowed;
261
+ }
262
+
263
+ /* ==========================================================================
264
+ Dropdown Menu
265
+ ========================================================================== */
266
+
267
+ .llm-ready-dropdown {
268
+ position: absolute;
269
+ top: calc(100% + var(--llm-ready-spacing-xs));
270
+ right: 0;
271
+ min-width: 200px;
272
+ background: var(--llm-ready-bg);
273
+ border: 1px solid var(--llm-ready-border);
274
+ border-radius: var(--llm-ready-radius-md);
275
+ box-shadow: var(--llm-ready-shadow-lg);
276
+ z-index: var(--llm-ready-z-dropdown);
277
+ opacity: 0;
278
+ visibility: hidden;
279
+ transform: translateY(-4px);
280
+ transition: opacity var(--llm-ready-transition-fast),
281
+ visibility var(--llm-ready-transition-fast),
282
+ transform var(--llm-ready-transition-fast);
283
+ }
284
+
285
+ .llm-ready-dropdown--open {
286
+ opacity: 1;
287
+ visibility: visible;
288
+ transform: translateY(0);
289
+ }
290
+
291
+ .llm-ready-dropdown-item {
292
+ display: flex;
293
+ align-items: center;
294
+ gap: var(--llm-ready-spacing-sm);
295
+ width: 100%;
296
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
297
+ background: transparent;
298
+ color: var(--llm-ready-text);
299
+ border: none;
300
+ font-family: var(--llm-ready-font-family);
301
+ font-size: var(--llm-ready-font-size-sm);
302
+ text-align: left;
303
+ cursor: pointer;
304
+ transition: background-color var(--llm-ready-transition-fast);
305
+ }
306
+
307
+ .llm-ready-dropdown-item:first-child {
308
+ border-top-left-radius: var(--llm-ready-radius-md);
309
+ border-top-right-radius: var(--llm-ready-radius-md);
310
+ }
311
+
312
+ .llm-ready-dropdown-item:last-child {
313
+ border-bottom-left-radius: var(--llm-ready-radius-md);
314
+ border-bottom-right-radius: var(--llm-ready-radius-md);
315
+ }
316
+
317
+ .llm-ready-dropdown-item:hover,
318
+ .llm-ready-dropdown-item:focus {
319
+ background: var(--llm-ready-bg-tertiary);
320
+ outline: none;
321
+ }
322
+
323
+ .llm-ready-dropdown-icon {
324
+ flex-shrink: 0;
325
+ color: var(--llm-ready-text-muted);
326
+ }
327
+
328
+ .llm-ready-dropdown-label {
329
+ flex: 1;
330
+ }
331
+
332
+ .llm-ready-dropdown-shortcut {
333
+ color: var(--llm-ready-text-light);
334
+ font-size: var(--llm-ready-font-size-xs);
335
+ }
336
+
337
+ /* ==========================================================================
338
+ Toast Notification
339
+ ========================================================================== */
340
+
341
+ .llm-ready-toast {
342
+ position: absolute;
343
+ top: calc(100% + var(--llm-ready-spacing-sm));
344
+ left: 50%;
345
+ transform: translateX(-50%) translateY(-4px);
346
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
347
+ background: var(--llm-ready-bg);
348
+ color: var(--llm-ready-success);
349
+ border: 1px solid var(--llm-ready-success);
350
+ border-radius: var(--llm-ready-radius);
351
+ font-size: var(--llm-ready-font-size-sm);
352
+ font-weight: 500;
353
+ white-space: nowrap;
354
+ box-shadow: var(--llm-ready-shadow-md);
355
+ z-index: var(--llm-ready-z-toast);
356
+ opacity: 0;
357
+ visibility: hidden;
358
+ transition: opacity var(--llm-ready-transition-fast),
359
+ visibility var(--llm-ready-transition-fast),
360
+ transform var(--llm-ready-transition-fast);
361
+ }
362
+
363
+ .llm-ready-toast--visible {
364
+ opacity: 1;
365
+ visibility: visible;
366
+ transform: translateX(-50%) translateY(0);
367
+ }
368
+
369
+ /* ==========================================================================
370
+ Modal
371
+ ========================================================================== */
372
+
373
+ .llm-ready-modal {
374
+ position: fixed;
375
+ inset: 0;
376
+ display: flex;
377
+ align-items: center;
378
+ justify-content: center;
379
+ padding: var(--llm-ready-spacing-lg);
380
+ z-index: var(--llm-ready-z-modal);
381
+ }
382
+
383
+ .llm-ready-modal-backdrop {
384
+ position: absolute;
385
+ inset: 0;
386
+ background: var(--llm-ready-bg-overlay);
387
+ animation: llm-ready-fade-in var(--llm-ready-transition);
388
+ }
389
+
390
+ .llm-ready-modal-content {
391
+ position: relative;
392
+ width: 100%;
393
+ max-width: 600px;
394
+ max-height: 80vh;
395
+ display: flex;
396
+ flex-direction: column;
397
+ background: var(--llm-ready-bg);
398
+ border-radius: var(--llm-ready-radius-lg);
399
+ box-shadow: var(--llm-ready-shadow-lg);
400
+ animation: llm-ready-slide-up var(--llm-ready-transition);
401
+ }
402
+
403
+ .llm-ready-modal-header {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: space-between;
407
+ padding: var(--llm-ready-spacing-md) var(--llm-ready-spacing-lg);
408
+ border-bottom: 1px solid var(--llm-ready-border);
409
+ }
410
+
411
+ .llm-ready-modal-title {
412
+ margin: 0;
413
+ font-size: var(--llm-ready-font-size-lg);
414
+ font-weight: 600;
415
+ color: var(--llm-ready-text);
416
+ }
417
+
418
+ .llm-ready-modal-close {
419
+ display: flex;
420
+ align-items: center;
421
+ justify-content: center;
422
+ padding: var(--llm-ready-spacing-xs);
423
+ background: transparent;
424
+ color: var(--llm-ready-text-muted);
425
+ border: none;
426
+ border-radius: var(--llm-ready-radius);
427
+ cursor: pointer;
428
+ transition: background-color var(--llm-ready-transition-fast),
429
+ color var(--llm-ready-transition-fast);
430
+ }
431
+
432
+ .llm-ready-modal-close:hover {
433
+ background: var(--llm-ready-bg-tertiary);
434
+ color: var(--llm-ready-text);
435
+ }
436
+
437
+ .llm-ready-modal-body {
438
+ flex: 1;
439
+ overflow: auto;
440
+ padding: var(--llm-ready-spacing-lg);
441
+ }
442
+
443
+ .llm-ready-markdown-content {
444
+ margin: 0;
445
+ padding: var(--llm-ready-spacing-md);
446
+ background: var(--llm-ready-bg-secondary);
447
+ border-radius: var(--llm-ready-radius);
448
+ font-family: var(--llm-ready-font-mono);
449
+ font-size: var(--llm-ready-font-size-sm);
450
+ line-height: 1.6;
451
+ white-space: pre-wrap;
452
+ word-wrap: break-word;
453
+ color: var(--llm-ready-text);
454
+ }
455
+
456
+ .llm-ready-modal-footer {
457
+ display: flex;
458
+ align-items: center;
459
+ justify-content: flex-end;
460
+ gap: var(--llm-ready-spacing-sm);
461
+ padding: var(--llm-ready-spacing-md) var(--llm-ready-spacing-lg);
462
+ border-top: 1px solid var(--llm-ready-border);
463
+ }
464
+
465
+ .llm-ready-btn-primary {
466
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
467
+ background: var(--llm-ready-primary);
468
+ color: var(--llm-ready-text-inverse);
469
+ border: none;
470
+ border-radius: var(--llm-ready-radius);
471
+ font-family: var(--llm-ready-font-family);
472
+ font-size: var(--llm-ready-font-size-sm);
473
+ font-weight: 500;
474
+ cursor: pointer;
475
+ transition: background-color var(--llm-ready-transition-fast);
476
+ }
477
+
478
+ .llm-ready-btn-primary:hover {
479
+ background: var(--llm-ready-primary-hover);
480
+ }
481
+
482
+ .llm-ready-btn-secondary {
483
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
484
+ background: var(--llm-ready-bg-tertiary);
485
+ color: var(--llm-ready-text);
486
+ border: none;
487
+ border-radius: var(--llm-ready-radius);
488
+ font-family: var(--llm-ready-font-family);
489
+ font-size: var(--llm-ready-font-size-sm);
490
+ font-weight: 500;
491
+ cursor: pointer;
492
+ transition: background-color var(--llm-ready-transition-fast);
493
+ }
494
+
495
+ .llm-ready-btn-secondary:hover {
496
+ background: var(--llm-ready-border);
497
+ }
498
+
499
+ /* ==========================================================================
500
+ Table of Contents
501
+ ========================================================================== */
502
+
503
+ .llm-ready-toc {
504
+ font-family: var(--llm-ready-font-family);
505
+ padding: var(--llm-ready-spacing-md);
506
+ background: var(--llm-ready-bg);
507
+ border: 1px solid var(--llm-ready-border);
508
+ border-radius: var(--llm-ready-radius-md);
509
+ max-width: 280px;
510
+ }
511
+
512
+ .llm-ready-toc-left {
513
+ /* Position left variant */
514
+ }
515
+
516
+ .llm-ready-toc-right {
517
+ /* Position right variant */
518
+ }
519
+
520
+ .llm-ready-toc-sticky {
521
+ position: sticky;
522
+ align-self: flex-start;
523
+ z-index: var(--llm-ready-z-sticky);
524
+ }
525
+
526
+ .llm-ready-toc-collapsed .llm-ready-toc-list {
527
+ display: none;
528
+ }
529
+
530
+ .llm-ready-toc-header {
531
+ display: flex;
532
+ align-items: center;
533
+ justify-content: space-between;
534
+ margin-bottom: var(--llm-ready-spacing-md);
535
+ }
536
+
537
+ .llm-ready-toc-title {
538
+ margin: 0;
539
+ font-size: var(--llm-ready-font-size-sm);
540
+ font-weight: 600;
541
+ color: var(--llm-ready-text);
542
+ text-transform: uppercase;
543
+ letter-spacing: 0.05em;
544
+ }
545
+
546
+ .llm-ready-toc-toggle {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: center;
550
+ padding: var(--llm-ready-spacing-xs);
551
+ background: transparent;
552
+ color: var(--llm-ready-text-muted);
553
+ border: none;
554
+ border-radius: var(--llm-ready-radius);
555
+ cursor: pointer;
556
+ transition: background-color var(--llm-ready-transition-fast),
557
+ color var(--llm-ready-transition-fast);
558
+ }
559
+
560
+ .llm-ready-toc-toggle:hover {
561
+ background: var(--llm-ready-bg-tertiary);
562
+ color: var(--llm-ready-text);
563
+ }
564
+
565
+ .llm-ready-toc-toggle svg {
566
+ transition: transform var(--llm-ready-transition);
567
+ }
568
+
569
+ .llm-ready-toc-list {
570
+ list-style: none;
571
+ margin: 0;
572
+ padding: 0;
573
+ }
574
+
575
+ .llm-ready-toc-item {
576
+ margin: 0;
577
+ }
578
+
579
+ .llm-ready-toc-level-2 {
580
+ /* H2 level - no indent */
581
+ }
582
+
583
+ .llm-ready-toc-level-3 {
584
+ padding-left: var(--llm-ready-spacing-md);
585
+ }
586
+
587
+ .llm-ready-toc-level-4 {
588
+ padding-left: var(--llm-ready-spacing-lg);
589
+ }
590
+
591
+ .llm-ready-toc-level-5 {
592
+ padding-left: var(--llm-ready-spacing-xl);
593
+ }
594
+
595
+ .llm-ready-toc-link {
596
+ display: block;
597
+ padding: var(--llm-ready-spacing-xs) 0;
598
+ color: var(--llm-ready-text-muted);
599
+ font-size: var(--llm-ready-font-size-sm);
600
+ text-decoration: none;
601
+ border-left: 2px solid transparent;
602
+ padding-left: var(--llm-ready-spacing-sm);
603
+ margin-left: calc(-1 * var(--llm-ready-spacing-sm));
604
+ transition: color var(--llm-ready-transition-fast),
605
+ border-color var(--llm-ready-transition-fast);
606
+ }
607
+
608
+ .llm-ready-toc-link:hover {
609
+ color: var(--llm-ready-text);
610
+ }
611
+
612
+ .llm-ready-toc-active .llm-ready-toc-link {
613
+ color: var(--llm-ready-primary);
614
+ border-left-color: var(--llm-ready-primary);
615
+ font-weight: 500;
616
+ }
617
+
618
+ .llm-ready-toc-nested {
619
+ list-style: none;
620
+ margin: 0;
621
+ padding: 0;
622
+ }
623
+
624
+ /* ==========================================================================
625
+ Mobile TOC
626
+ ========================================================================== */
627
+
628
+ .llm-ready-toc-mobile-toggle {
629
+ position: fixed;
630
+ bottom: var(--llm-ready-spacing-lg);
631
+ right: var(--llm-ready-spacing-lg);
632
+ display: flex;
633
+ align-items: center;
634
+ gap: var(--llm-ready-spacing-sm);
635
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
636
+ background: var(--llm-ready-bg);
637
+ color: var(--llm-ready-text);
638
+ border: 1px solid var(--llm-ready-border);
639
+ border-radius: var(--llm-ready-radius-full);
640
+ box-shadow: var(--llm-ready-shadow-lg);
641
+ font-family: var(--llm-ready-font-family);
642
+ font-size: var(--llm-ready-font-size-sm);
643
+ font-weight: 500;
644
+ cursor: pointer;
645
+ z-index: var(--llm-ready-z-sticky);
646
+ transition: transform var(--llm-ready-transition-fast),
647
+ box-shadow var(--llm-ready-transition-fast);
648
+ }
649
+
650
+ .llm-ready-toc-mobile-toggle:hover {
651
+ transform: translateY(-2px);
652
+ box-shadow: var(--llm-ready-shadow-lg);
653
+ }
654
+
655
+ .llm-ready-toc-mobile-panel {
656
+ position: fixed;
657
+ inset: 0;
658
+ z-index: var(--llm-ready-z-modal);
659
+ }
660
+
661
+ .llm-ready-toc-mobile-backdrop {
662
+ position: absolute;
663
+ inset: 0;
664
+ background: var(--llm-ready-bg-overlay);
665
+ animation: llm-ready-fade-in var(--llm-ready-transition);
666
+ }
667
+
668
+ .llm-ready-toc-mobile-content {
669
+ position: absolute;
670
+ bottom: 0;
671
+ left: 0;
672
+ right: 0;
673
+ max-height: 70vh;
674
+ background: var(--llm-ready-bg);
675
+ border-top-left-radius: var(--llm-ready-radius-lg);
676
+ border-top-right-radius: var(--llm-ready-radius-lg);
677
+ animation: llm-ready-slide-up var(--llm-ready-transition);
678
+ overflow: hidden;
679
+ display: flex;
680
+ flex-direction: column;
681
+ }
682
+
683
+ .llm-ready-toc-mobile-header {
684
+ display: flex;
685
+ align-items: center;
686
+ justify-content: space-between;
687
+ padding: var(--llm-ready-spacing-md) var(--llm-ready-spacing-lg);
688
+ border-bottom: 1px solid var(--llm-ready-border);
689
+ }
690
+
691
+ .llm-ready-toc-mobile-header h3 {
692
+ margin: 0;
693
+ font-size: var(--llm-ready-font-size-lg);
694
+ font-weight: 600;
695
+ color: var(--llm-ready-text);
696
+ }
697
+
698
+ .llm-ready-toc-mobile-close {
699
+ display: flex;
700
+ align-items: center;
701
+ justify-content: center;
702
+ padding: var(--llm-ready-spacing-sm);
703
+ background: var(--llm-ready-bg-tertiary);
704
+ color: var(--llm-ready-text-muted);
705
+ border: none;
706
+ border-radius: var(--llm-ready-radius-full);
707
+ cursor: pointer;
708
+ transition: background-color var(--llm-ready-transition-fast);
709
+ }
710
+
711
+ .llm-ready-toc-mobile-close:hover {
712
+ background: var(--llm-ready-border);
713
+ }
714
+
715
+ .llm-ready-toc-mobile-content .llm-ready-toc {
716
+ border: none;
717
+ border-radius: 0;
718
+ max-width: none;
719
+ max-height: calc(70vh - 60px);
720
+ overflow-y: auto;
721
+ }
722
+
723
+ /* ==========================================================================
724
+ LLM Badge
725
+ ========================================================================== */
726
+
727
+ .llm-ready-badge {
728
+ position: relative;
729
+ display: inline-flex;
730
+ align-items: center;
731
+ gap: var(--llm-ready-spacing-xs);
732
+ padding: var(--llm-ready-spacing-xs) var(--llm-ready-spacing-sm);
733
+ background: var(--llm-ready-primary-light);
734
+ color: var(--llm-ready-primary);
735
+ border-radius: var(--llm-ready-radius-full);
736
+ font-family: var(--llm-ready-font-family);
737
+ font-size: var(--llm-ready-font-size-xs);
738
+ font-weight: 500;
739
+ cursor: default;
740
+ }
741
+
742
+ .llm-ready-badge-sm {
743
+ padding: 2px var(--llm-ready-spacing-xs);
744
+ font-size: 0.625rem;
745
+ }
746
+
747
+ .llm-ready-badge-lg {
748
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
749
+ font-size: var(--llm-ready-font-size-sm);
750
+ }
751
+
752
+ .llm-ready-badge-icon {
753
+ flex-shrink: 0;
754
+ }
755
+
756
+ .llm-ready-badge-text {
757
+ white-space: nowrap;
758
+ }
759
+
760
+ .llm-ready-badge-tooltip {
761
+ position: absolute;
762
+ bottom: calc(100% + var(--llm-ready-spacing-sm));
763
+ left: 50%;
764
+ transform: translateX(-50%);
765
+ padding: var(--llm-ready-spacing-sm) var(--llm-ready-spacing-md);
766
+ background: var(--llm-ready-text);
767
+ color: var(--llm-ready-bg);
768
+ border-radius: var(--llm-ready-radius);
769
+ font-size: var(--llm-ready-font-size-xs);
770
+ font-weight: 400;
771
+ white-space: nowrap;
772
+ box-shadow: var(--llm-ready-shadow-md);
773
+ z-index: var(--llm-ready-z-dropdown);
774
+ animation: llm-ready-fade-in var(--llm-ready-transition-fast);
775
+ }
776
+
777
+ .llm-ready-badge-tooltip::after {
778
+ content: '';
779
+ position: absolute;
780
+ top: 100%;
781
+ left: 50%;
782
+ transform: translateX(-50%);
783
+ border: 4px solid transparent;
784
+ border-top-color: var(--llm-ready-text);
785
+ }
786
+
787
+ /* ==========================================================================
788
+ Animations
789
+ ========================================================================== */
790
+
791
+ @keyframes llm-ready-fade-in {
792
+ from {
793
+ opacity: 0;
794
+ }
795
+ to {
796
+ opacity: 1;
797
+ }
798
+ }
799
+
800
+ @keyframes llm-ready-slide-up {
801
+ from {
802
+ opacity: 0;
803
+ transform: translateY(16px);
804
+ }
805
+ to {
806
+ opacity: 1;
807
+ transform: translateY(0);
808
+ }
809
+ }
810
+
811
+ @keyframes llm-ready-spin {
812
+ from {
813
+ transform: rotate(0deg);
814
+ }
815
+ to {
816
+ transform: rotate(360deg);
817
+ }
818
+ }
819
+
820
+ /* Loading spinner */
821
+ .llm-ready-spinner {
822
+ animation: llm-ready-spin 1s linear infinite;
823
+ }
824
+
825
+ /* ==========================================================================
826
+ Utility Classes
827
+ ========================================================================== */
828
+
829
+ .llm-ready-sr-only {
830
+ position: absolute;
831
+ width: 1px;
832
+ height: 1px;
833
+ padding: 0;
834
+ margin: -1px;
835
+ overflow: hidden;
836
+ clip: rect(0, 0, 0, 0);
837
+ white-space: nowrap;
838
+ border: 0;
839
+ }
840
+
841
+ /* ==========================================================================
842
+ Print Styles
843
+ ========================================================================== */
844
+
845
+ @media print {
846
+ .llm-ready-copy-btn,
847
+ .llm-ready-dropdown,
848
+ .llm-ready-toast,
849
+ .llm-ready-modal,
850
+ .llm-ready-toc-mobile-toggle,
851
+ .llm-ready-toc-mobile-panel,
852
+ .llm-ready-badge {
853
+ display: none !important;
854
+ }
855
+ }