@flanksource/facet-cli 0.0.0 → 0.0.1

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,1032 @@
1
+ /* Fonts referenced by the Tailwind 'mono' stack — must be loaded explicitly
2
+ * because Puppeteer's headless Chromium has no system fonts installed.
3
+ * Without this, PDF output falls back through Consolas/Monaco/Courier New.
4
+ */
5
+ @import 'https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&display=swap';
6
+
7
+ /* Tailwind directives */
8
+ @tailwind base;
9
+ @tailwind components;
10
+ @tailwind utilities;
11
+
12
+
13
+
14
+
15
+ /* Remove max-width from prose class */
16
+ .prose {
17
+ max-width: none !important;
18
+ }
19
+
20
+ /* Reduce prose font size and line height for PDFs */
21
+ @media print {
22
+ .prose {
23
+ font-size: 9pt !important;
24
+ line-height: 1.3 !important;
25
+ }
26
+
27
+ .prose p {
28
+ font-size: 10pt !important;
29
+ line-height: 1.3 !important;
30
+ margin-bottom: 2mm !important;
31
+ }
32
+
33
+ .prose h1, .prose h2, .prose h3, .prose h4 {
34
+ line-height: 1.2 !important;
35
+ }
36
+
37
+ /* Override typography plugin with higher specificity */
38
+ .prose h1 {
39
+ font-size: 22pt !important;
40
+ line-height: 26pt !important;
41
+ margin-bottom: 4mm !important;
42
+ font-weight: 700 !important;
43
+ }
44
+
45
+ .prose h2 {
46
+ font-size: 15pt !important;
47
+ line-height: 19pt !important;
48
+ margin-top: 4mm !important;
49
+ margin-bottom: 3mm !important;
50
+ font-weight: 600 !important;
51
+ }
52
+
53
+ .prose h3 {
54
+ font-size: 12pt !important;
55
+ line-height: 15pt !important;
56
+ margin-top: 3mm !important;
57
+ margin-bottom: 2mm !important;
58
+ font-weight: 500 !important;
59
+ }
60
+
61
+ .prose h4 {
62
+ font-size: 10pt !important;
63
+ line-height: 12pt !important;
64
+ margin-top: 2mm !important;
65
+ margin-bottom: 2mm !important;
66
+ font-weight: 600 !important;
67
+ }
68
+
69
+ h1, h2, h3, h4, p {
70
+ @apply text-gray-800;
71
+ }
72
+
73
+ h2,h3,h4 {
74
+ @apply inline-flex;
75
+ }
76
+
77
+ .subtitle {
78
+ @apply text-gray-700 font-light;
79
+ }
80
+
81
+ .icon {
82
+ @apply text-gray-400 h-full place-content-center inline-flex align-middle mr-1
83
+ }
84
+
85
+ /* Reduce all typography sizes for PDFs while maintaining hierarchy */
86
+ h1 {
87
+ font-size: 22pt !important;
88
+ line-height: 26pt !important;
89
+ margin-bottom: 4mm !important;
90
+ @apply text-gray-700;
91
+ }
92
+
93
+ h2 {
94
+ font-size: 15pt !important;
95
+ line-height: 19pt !important;
96
+ margin-top: 4mm !important;
97
+ margin-bottom: 3mm !important;
98
+ @apply inline-flex;
99
+ }
100
+
101
+ h3 {
102
+ font-size: 12pt !important;
103
+ line-height: 15pt !important;
104
+ margin-top: 3mm !important;
105
+ margin-bottom: 2mm !important;
106
+ }
107
+
108
+ h4 {
109
+ font-size: 10pt !important;
110
+ line-height: 12pt !important;
111
+ margin-top: 2mm !important;
112
+ margin-bottom: 2mm !important;
113
+ }
114
+
115
+ p {
116
+ font-size: 9pt !important;
117
+ line-height: 12pt !important;
118
+ margin-bottom: 3mm !important;
119
+ }
120
+
121
+ .text-xs {
122
+ font-size: 7pt !important;
123
+ }
124
+
125
+ .text-sm {
126
+ font-size: 9pt !important;
127
+ }
128
+
129
+ .text-md {
130
+ font-size: 10pt !important;
131
+ }
132
+
133
+ .text-lg {
134
+ font-size: 15pt !important;
135
+ }
136
+
137
+ .text-xl {
138
+ font-size: 18pt !important;
139
+ }
140
+
141
+ .text-2xl {
142
+ font-size: 24pt !important;
143
+ }
144
+
145
+ tbody td {
146
+ font-weight: 400 !important;
147
+ }
148
+ }
149
+
150
+ /* ==========================================
151
+ PDF Style Guide Implementation
152
+ Based on: /docs/style-guide/pdf.mdx
153
+ Two-Page Datasheet Format
154
+ ========================================== */
155
+
156
+ /* CSS Reset */
157
+ * {
158
+ margin: 0;
159
+ padding: 0;
160
+ box-sizing: border-box;
161
+ }
162
+
163
+ /* Page Setup */
164
+ @page {
165
+ margin: 0;
166
+ padding: 0;
167
+ }
168
+
169
+ /* Typography System - Open Sans Primary, Fira Code Monospace */
170
+ body {
171
+ @apply text-gray-700 bg-white;
172
+
173
+ font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, Helvetica, sans-serif;
174
+ font-size: 10pt;
175
+ line-height: 14pt;
176
+ max-width: 210mm;
177
+ margin: 0 auto;
178
+ padding: 0;
179
+ min-height: 100vh;
180
+ display: flex;
181
+ flex-direction: column;
182
+ }
183
+
184
+ /* Print-specific styles */
185
+ @media print {
186
+
187
+ @page :first {
188
+ margin: 0;
189
+ padding: 0;
190
+ }
191
+
192
+ @page {
193
+ margin: 0;
194
+ padding: 0;
195
+ }
196
+
197
+ body {
198
+ margin-bottom: 10mm;
199
+ margin-top: 0;
200
+ padding: 0;
201
+ }
202
+
203
+ .page-break {
204
+ page-break-after: always;
205
+ break-after: page;
206
+ }
207
+
208
+ .no-print {
209
+ display: none;
210
+ }
211
+
212
+ /* Ensure colors render correctly for electronic PDF distribution (RGB) */
213
+ * {
214
+ -webkit-print-color-adjust: exact;
215
+ print-color-adjust: exact;
216
+ color-adjust: exact;
217
+ }
218
+
219
+ /* Table page break handling */
220
+ table {
221
+ /* margin-top: 8mm !important; */
222
+ page-break-inside: auto;
223
+ }
224
+
225
+ /* Ensure table wrappers also respect page margins */
226
+ .overflow-x-auto {
227
+ margin-top: 8mm !important;
228
+ }
229
+
230
+ thead {
231
+ display: table-header-group; /* Repeat header on each page */
232
+ }
233
+
234
+ tbody {
235
+ display: table-row-group;
236
+ }
237
+
238
+ /* Prevent breaking inside rows but allow table continuation */
239
+ tr {
240
+ page-break-inside: avoid;
241
+ page-break-after: auto;
242
+ }
243
+
244
+ td {
245
+ page-break-inside: avoid;
246
+ }
247
+
248
+ /* Add top margin to any element that starts a new page */
249
+ * {
250
+ orphans: 2;
251
+ widows: 2;
252
+ }
253
+
254
+ /* Target the last page content to create space for footer */
255
+ main:last-of-type {
256
+ min-height: 240mm; /* Fill most of A4 page (297mm - margins - footer space) */
257
+ display: flex;
258
+ flex-direction: column;
259
+ }
260
+
261
+ main:last-of-type article {
262
+ flex: 1 0 auto;
263
+ }
264
+
265
+ /* Print header and footer adjustments */
266
+ .datasheet-header {
267
+ margin: 0;
268
+ }
269
+
270
+
271
+ .datasheet-footer {
272
+ display: flex;
273
+ justify-content: space-between;
274
+ align-items: flex-start;
275
+ margin: 0 0 10mm;
276
+ padding: 3mm 10mm;
277
+ page-break-inside: avoid;
278
+ page-break-before: avoid;
279
+ }
280
+
281
+ .datasheet-footer .footer-left {
282
+ padding-left: 3mm;
283
+ }
284
+
285
+ .datasheet-footer .footer-right {
286
+ padding-right: 3mm;
287
+ }
288
+
289
+ .datasheet-footer p {
290
+ margin: 0 0 2mm;
291
+ font-size: 8pt;
292
+ line-height: 10pt;
293
+ }
294
+
295
+ .datasheet-footer--compact {
296
+ margin: 8mm 0 0;
297
+ padding: 2mm 10mm;
298
+ }
299
+ }
300
+
301
+ /* Typography Scale from Style Guide (DS-10) */
302
+ h1 {
303
+ @apply text-slate-900 font-bold;
304
+
305
+ font-size: 26pt; /* DS-10: 24-28pt for product name */
306
+ line-height: 32pt;
307
+ margin-bottom: 8mm;
308
+ }
309
+
310
+ h2 {
311
+ @apply text-slate-900 font-semibold;
312
+
313
+ font-size: 18pt;
314
+ line-height: 24pt;
315
+ margin-top: 6mm;
316
+ margin-bottom: 4mm;
317
+ }
318
+
319
+ h3 {
320
+ @apply text-blue-500 font-medium;
321
+
322
+ font-size: 13pt;
323
+ line-height: 16pt;
324
+ margin-top: 5mm;
325
+ margin-bottom: 4mm;
326
+ }
327
+
328
+ h4 {
329
+ @apply text-gray-600 font-semibold;
330
+
331
+ font-size: 11pt;
332
+ line-height: 14pt;
333
+ margin-top: 3mm;
334
+ margin-bottom: 2mm;
335
+ }
336
+
337
+ p {
338
+ @apply text-gray-700;
339
+
340
+ margin-bottom: 4mm;
341
+ }
342
+
343
+ strong {
344
+ @apply font-semibold text-slate-900;
345
+ }
346
+
347
+ code:not(.shiki *) {
348
+ @apply bg-gray-100 border border-gray-200 rounded;
349
+
350
+ font-family: 'Fira Code', Monaco, 'Courier New', monospace;
351
+ font-size: 9pt;
352
+ line-height: 12pt;
353
+ padding: 1pt 2pt;
354
+ border-radius: 1pt;
355
+ }
356
+
357
+ /* Blockquote - Light Zinc Aside */
358
+ blockquote {
359
+ @apply bg-zinc-50/75 border-l-[3pt] border-zinc-300 rounded-r;
360
+
361
+ margin: 4mm 0;
362
+ padding: 3mm 4mm;
363
+ font-size: 10pt;
364
+ line-height: 12pt;
365
+ color: #52525b; /* zinc-600 */
366
+ }
367
+
368
+ blockquote p {
369
+ margin-bottom: 0;
370
+ color: #52525b; /* zinc-600 */
371
+ }
372
+
373
+ blockquote.info {
374
+ @apply border-l-blue-500 bg-blue-50/50;
375
+ }
376
+ blockquote.info p {
377
+ @apply text-blue-700;
378
+ }
379
+
380
+ /* Lists */
381
+ ul {
382
+ margin: 3mm 0 4mm 8mm;
383
+ padding: 0;
384
+ list-style-type: disc;
385
+ }
386
+
387
+ li {
388
+ @apply text-gray-700;
389
+
390
+ margin-bottom: 2mm;
391
+ }
392
+
393
+ /* Tables - Technical Specifications */
394
+ table {
395
+ width: 100%;
396
+ border-collapse: collapse;
397
+ margin: 5mm 0;
398
+ font-size: 9pt;
399
+ }
400
+
401
+ thead {
402
+ @apply bg-blue-600 text-white;
403
+ }
404
+
405
+ thead th {
406
+ @apply bg-blue-600 text-white border border-blue-500 font-semibold;
407
+
408
+ font-size: calc(1em + 1pt);
409
+ padding: 2mm;
410
+ text-align: left;
411
+ }
412
+
413
+ tbody tr:nth-child(odd) {
414
+ @apply bg-gray-50;
415
+ }
416
+
417
+ tbody tr:nth-child(even) {
418
+ @apply bg-white;
419
+ }
420
+
421
+ tbody td {
422
+ @apply border border-gray-300 text-gray-700;
423
+
424
+ padding: 2mm 1.5mm;
425
+ vertical-align: top;
426
+ }
427
+
428
+ tbody td:first-child {
429
+ font-weight: 600;
430
+ }
431
+
432
+ /* Table size variants — apply text-{size} class on <table> */
433
+ /* th gets +1pt automatically via calc(1em + 1pt) above */
434
+ table.text-xs { font-size: 7pt; }
435
+ table.text-xs th { padding: 1mm; }
436
+ table.text-xs td { padding: 0.5mm 1mm; }
437
+
438
+ table.text-sm { font-size: 9pt; }
439
+ table.text-sm th { padding: 1.5mm; }
440
+ table.text-sm td { padding: 1mm 1.5mm; }
441
+
442
+ table.text-md { font-size: 10pt; }
443
+ table.text-md th { padding: 2.5mm; }
444
+ table.text-md td { padding: 2mm 2.5mm; }
445
+
446
+ /* Section Spacing */
447
+ section {
448
+ margin-bottom: 8mm;
449
+ }
450
+
451
+ article {
452
+ margin-bottom: 0;
453
+ }
454
+
455
+ /* Page Break - Utility Class */
456
+ .page-break {
457
+ page-break-after: always;
458
+ break-after: page;
459
+ height: 0;
460
+ margin: 0;
461
+ padding: 0;
462
+ }
463
+
464
+ /* Page 1 Header - Hero Section */
465
+ .datasheet-header {
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: space-between;
469
+ border-bottom: 2pt solid #e5e7eb;
470
+ /* margin: 0 0 10mm; */
471
+ /* padding: 5mm 10mm; */
472
+ }
473
+
474
+ .logo {
475
+ display: flex;
476
+ align-items: center;
477
+ justify-content: center;
478
+ }
479
+
480
+ .logo img {
481
+ object-fit: contain;
482
+ }
483
+
484
+
485
+
486
+ .header-meta {
487
+ @apply text-gray-500;
488
+
489
+ text-align: right;
490
+ font-size: 10pt;
491
+ line-height: 1.2;
492
+ }
493
+
494
+ .header-meta p {
495
+ margin: 0 !important;
496
+ }
497
+
498
+ /* CTA Footer */
499
+ .cta-footer {
500
+ background: linear-gradient(to right, #f3f4f6, #f9fafb);
501
+ border-top: 1pt solid #e5e7eb;
502
+ margin: 0;
503
+ padding: 5mm 10mm;
504
+ display: flex;
505
+ justify-content: space-between;
506
+ align-items: center;
507
+ flex-wrap: wrap;
508
+ gap: 3mm;
509
+ }
510
+
511
+ .cta-footer p {
512
+ margin: 0;
513
+ }
514
+
515
+ /* Section Header Bar */
516
+ .section-header-bar {
517
+ background: #3578e5;
518
+ color: #fff;
519
+ display: flex;
520
+ justify-content: space-between;
521
+ align-items: center;
522
+ height: 15mm;
523
+ margin: 0;
524
+ padding: 0 10mm;
525
+ }
526
+
527
+ .section-header-bar h2 {
528
+ font-size: 18pt;
529
+ font-weight: 600;
530
+ color: #fff;
531
+ margin: 0 !important;
532
+ }
533
+
534
+ .section-header-bar .product-name {
535
+ font-size: 10pt;
536
+ color: #fff;
537
+ font-weight: 400;
538
+ }
539
+
540
+ /* Page 2 Footer - Legal Footer */
541
+ .datasheet-footer {
542
+ @apply text-gray-500;
543
+
544
+ border-top: 0.2pt solid #d1d5db;
545
+ display: flex;
546
+ justify-content: space-between;
547
+ align-items: flex-start;
548
+ font-size: 10pt;
549
+ line-height: 11pt;
550
+ margin: auto 0 0;
551
+ padding: 3mm 10mm;
552
+ }
553
+
554
+ .datasheet-footer p {
555
+ margin: 0 0 1mm !important;
556
+ font-size: 8pt;
557
+ line-height: 10pt;
558
+ }
559
+
560
+ .datasheet-footer .footer-left p:first-child {
561
+ @apply font-semibold text-slate-900;
562
+ }
563
+
564
+ .footer-right {
565
+ text-align: right;
566
+ }
567
+
568
+ .footer-icons {
569
+ display: flex;
570
+ flex-direction: row;
571
+ gap: 3mm;
572
+ justify-content: flex-end;
573
+ align-items: center;
574
+ margin-top: 2mm;
575
+ }
576
+
577
+ .footer-icon-link {
578
+ @apply text-gray-600;
579
+
580
+ display: inline-flex;
581
+ align-items: center;
582
+ justify-content: center;
583
+ text-decoration: none;
584
+ }
585
+
586
+ .footer-icon-link svg {
587
+ width: 4mm;
588
+ height: 4mm;
589
+ }
590
+
591
+ /* Header Solid Variant */
592
+ .datasheet-header--solid {
593
+ background: #3578e5;
594
+ border: none;
595
+ color: #fff;
596
+ margin: 0;
597
+ }
598
+
599
+ .datasheet-header--solid .logo {
600
+ width: 40mm;
601
+ height: auto;
602
+ }
603
+
604
+ .datasheet-header--solid .logo h1 {
605
+ color: #fff;
606
+ }
607
+
608
+ .datasheet-header--solid .header-meta {
609
+ color: #fff;
610
+ text-align: right;
611
+ }
612
+
613
+ .datasheet-header--solid .header-meta p {
614
+ color: #fff;
615
+ }
616
+
617
+ /* Header Minimal Variant */
618
+ .datasheet-header--minimal {
619
+ border: none;
620
+ margin: 0;
621
+ background: transparent;
622
+ }
623
+
624
+ .datasheet-header--minimal .logo {
625
+ width: 35mm;
626
+ height: auto;
627
+ }
628
+
629
+ /* Footer Compact Variant */
630
+ .datasheet-footer--compact {
631
+ border-top: 0.5pt solid #d1d5db;
632
+ display: flex;
633
+ align-items: center;
634
+ font-size: 8pt;
635
+ line-height: 10pt;
636
+ color: #6b7280;
637
+ margin: 8mm 0 0;
638
+ padding: 2mm 10mm;
639
+ gap: 8mm;
640
+ }
641
+
642
+ .datasheet-footer--compact .footer-content {
643
+ display: flex;
644
+ align-items: center;
645
+ gap: 4mm;
646
+ flex-wrap: wrap;
647
+ width: 100%;
648
+ }
649
+
650
+ .datasheet-footer--compact .footer-brand {
651
+ font-weight: 600;
652
+ color: #131f3b;
653
+ }
654
+
655
+ .datasheet-footer--compact .footer-copyright {
656
+ color: #6b7280;
657
+ }
658
+
659
+ .datasheet-footer--compact .footer-link {
660
+ color: #3578e5;
661
+ text-decoration: none;
662
+ font-weight: 500;
663
+ transition: color 0.2s ease;
664
+ }
665
+
666
+ .datasheet-footer--compact .footer-link:hover {
667
+ color: #2563eb;
668
+ text-decoration: underline;
669
+ }
670
+
671
+ /* Footer Minimal Variant */
672
+ .datasheet-footer--minimal {
673
+ border: none;
674
+ margin: 8mm 0 0;
675
+ padding: 1mm 10mm;
676
+ text-align: center;
677
+ font-size: 7pt;
678
+ line-height: 9pt;
679
+ color: #9ca3af;
680
+ }
681
+
682
+ .datasheet-footer--minimal p {
683
+ margin: 0 !important;
684
+ }
685
+
686
+ /* Project links - Utility Class */
687
+ .project-link {
688
+ @apply text-blue-600;
689
+
690
+ text-decoration: underline;
691
+ font-weight: 500;
692
+ }
693
+
694
+ .project-link:hover {
695
+ @apply text-blue-700;
696
+
697
+ text-decoration: underline;
698
+ }
699
+
700
+ /* ==========================================
701
+ ELECTRONIC DISPLAY OPTIMIZATION
702
+ Responsive design for screens
703
+ ========================================== */
704
+
705
+ /* Screen-optimized defaults */
706
+ @media screen {
707
+ /* Remove page constraints on screens */
708
+ body {
709
+ max-width: 100%;
710
+ background: #f5f5f5;
711
+ padding: 2rem 0;
712
+ }
713
+
714
+ /* Create card-like effect for content */
715
+ .page {
716
+ background: #fff;
717
+ border-radius: 0.5rem;
718
+ box-shadow: 0 1px 3px rgb(0 0 0 / 10%), 0 1px 2px rgb(0 0 0 / 6%);
719
+ margin-bottom: 2rem;
720
+ padding: 2rem;
721
+ }
722
+
723
+ /* Hide print-only elements on screen */
724
+ .page-break {
725
+ display: none;
726
+ }
727
+
728
+ /* Screen-optimized header variations */
729
+ .datasheet-header--solid {
730
+ margin: 0 0 2rem;
731
+ padding: 1rem 2rem;
732
+ border-radius: 0 0 0.5rem 0.5rem;
733
+ }
734
+
735
+ .datasheet-header--solid .logo {
736
+ width: auto;
737
+ height: auto;
738
+ }
739
+
740
+ .datasheet-header--minimal {
741
+ margin: 0;
742
+ padding: 1rem 2rem;
743
+ }
744
+
745
+ /* Screen-optimized footer variations */
746
+ .datasheet-footer--compact {
747
+ margin: 1.5rem 0 -2rem;
748
+ padding: 0.75rem 2rem;
749
+ background: #f9fafb;
750
+ border-top: 1px solid #e5e7eb;
751
+ border-radius: 0 0 0.5rem 0.5rem;
752
+ }
753
+
754
+ .datasheet-footer--compact .footer-content {
755
+ justify-content: space-between;
756
+ }
757
+
758
+ .datasheet-footer--minimal {
759
+ margin: 1.5rem 0 -2rem;
760
+ padding: 0.5rem 2rem;
761
+ background: #fafafa;
762
+ }
763
+
764
+ .datasheet-footer--minimal p {
765
+ color: #d1d5db;
766
+ font-size: 12px;
767
+ }
768
+
769
+ /* Enhance interactive elements */
770
+ a {
771
+ transition: color 0.2s ease, text-decoration 0.2s ease;
772
+ }
773
+
774
+ a:hover {
775
+ color: #2563eb;
776
+ text-decoration: underline;
777
+ }
778
+
779
+ a:focus {
780
+ outline: 2px solid #3578e5;
781
+ outline-offset: 2px;
782
+ border-radius: 2px;
783
+ }
784
+
785
+ button {
786
+ cursor: pointer;
787
+ transition: all 0.2s ease;
788
+ }
789
+
790
+ .query-response-chat {
791
+ box-shadow: 0 1px 3px rgb(0 0 0 / 10%);
792
+ }
793
+
794
+ /* Better spacing for screens */
795
+ section {
796
+ margin-bottom: 3rem;
797
+ }
798
+
799
+ h2 {
800
+ margin-top: 2rem;
801
+ }
802
+
803
+ }
804
+
805
+ /* Responsive adjustments for screen viewing - Mobile (max 480px) */
806
+ @media screen and (width <= 480px) {
807
+ body {
808
+ padding: 0;
809
+ font-size: 14px;
810
+ line-height: 20px;
811
+ }
812
+
813
+ .page {
814
+ padding: 1.5rem;
815
+ border-radius: 0.375rem;
816
+ }
817
+
818
+ h1 {
819
+ font-size: clamp(20px, 5vw, 26pt);
820
+ margin-bottom: 1rem;
821
+ }
822
+
823
+ h2 {
824
+ font-size: clamp(14px, 4vw, 18pt);
825
+ margin-bottom: 0.75rem;
826
+ }
827
+
828
+ h3 {
829
+ font-size: clamp(12px, 3.5vw, 14pt);
830
+ margin-bottom: 0.5rem;
831
+ }
832
+
833
+ p {
834
+ margin-bottom: 1rem;
835
+ line-height: 1.6;
836
+ }
837
+
838
+
839
+
840
+ .logo {
841
+ width: 100%;
842
+ }
843
+
844
+ .header-meta {
845
+ text-align: left;
846
+ font-size: 12px;
847
+ }
848
+
849
+ .datasheet-header--solid {
850
+ margin: 0 0 1rem;
851
+ padding: 0.75rem;
852
+ flex-direction: column;
853
+ gap: 0.5rem;
854
+ }
855
+
856
+ .datasheet-header--solid .header-meta {
857
+ text-align: left;
858
+ }
859
+
860
+ .datasheet-header--minimal {
861
+ margin: 0;
862
+ padding: 0.75rem;
863
+ }
864
+
865
+ /* Mobile footer variations */
866
+ .datasheet-footer {
867
+ margin: 1rem 0 0;
868
+ padding: 1rem;
869
+ flex-direction: column;
870
+ gap: 1rem;
871
+ font-size: 11px;
872
+ }
873
+
874
+ .footer-right {
875
+ text-align: left;
876
+ }
877
+
878
+ .datasheet-footer--compact {
879
+ flex-direction: column;
880
+ align-items: flex-start;
881
+ margin: 1rem 0 -1rem;
882
+ padding: 0.75rem;
883
+ gap: 0.5rem;
884
+ }
885
+
886
+ .datasheet-footer--compact .footer-content {
887
+ flex-direction: column;
888
+ gap: 0.5rem;
889
+ width: 100%;
890
+ }
891
+
892
+ .datasheet-footer--minimal {
893
+ margin: 1rem 0 -1rem;
894
+ padding: 0.5rem;
895
+ }
896
+
897
+ .cta-footer {
898
+ flex-direction: column;
899
+ gap: 1rem;
900
+ margin: 0;
901
+ padding: 1rem;
902
+ }
903
+
904
+ .section-header-bar {
905
+ margin: 0;
906
+ padding: 0 1rem;
907
+ height: auto;
908
+ min-height: 60px;
909
+ flex-wrap: wrap;
910
+ }
911
+
912
+ /* Larger tap targets */
913
+ button, a[role="button"] {
914
+ min-height: 44px;
915
+ min-width: 44px;
916
+ }
917
+
918
+ /* Table scrolling on mobile */
919
+ table {
920
+ font-size: 12px;
921
+ display: block;
922
+ overflow-x: auto;
923
+ border-collapse: collapse;
924
+ }
925
+
926
+ thead, tbody, th, td, tr {
927
+ display: block;
928
+ }
929
+
930
+ thead tr {
931
+ position: absolute;
932
+ top: -9999px;
933
+ left: -9999px;
934
+ }
935
+
936
+ tr {
937
+ margin-bottom: 1rem;
938
+ border: 1px solid #d1d5db;
939
+ border-radius: 4px;
940
+ overflow: hidden;
941
+ }
942
+
943
+ td {
944
+ padding: 0.5rem;
945
+ position: relative;
946
+ padding-left: 50%;
947
+ text-align: right;
948
+ }
949
+
950
+ td::before {
951
+ content: attr(data-label);
952
+ position: absolute;
953
+ left: 0.5rem;
954
+ font-weight: 600;
955
+ text-align: left;
956
+ width: 45%;
957
+ }
958
+ }
959
+
960
+ /* Tablet and Medium screens (481px - 800px) */
961
+ @media screen and (width >= 481px) and (width <= 800px) {
962
+ body {
963
+ padding: 0;
964
+ font-size: 15px;
965
+ line-height: 22px;
966
+ }
967
+
968
+ .page {
969
+ padding: 1.75rem;
970
+ }
971
+
972
+ h1 {
973
+ font-size: clamp(22px, 4.5vw, 26pt);
974
+ }
975
+
976
+ h2 {
977
+ font-size: clamp(16px, 3.5vw, 18pt);
978
+ }
979
+
980
+
981
+
982
+ .cta-footer {
983
+ margin: 0;
984
+ padding: 1.5rem;
985
+ }
986
+
987
+ .section-header-bar {
988
+ margin: 0;
989
+ padding: 0 1.5rem;
990
+ }
991
+
992
+ .datasheet-footer {
993
+ margin: 1.5rem 0 0;
994
+ padding: 1.5rem;
995
+ }
996
+ }
997
+
998
+ /* Desktop screens (801px and above) */
999
+ @media screen and (width >= 801px) {
1000
+ body {
1001
+ padding: 0;
1002
+ font-size: 10pt;
1003
+ line-height: 14pt;
1004
+ max-width: 1200px;
1005
+ }
1006
+
1007
+ .page {
1008
+ padding: 2rem;
1009
+ }
1010
+
1011
+
1012
+ .cta-footer {
1013
+ margin: 0;
1014
+ padding: 2rem;
1015
+ }
1016
+
1017
+ .section-header-bar {
1018
+ margin: 0;
1019
+ padding: 0 2rem;
1020
+ }
1021
+
1022
+ .datasheet-footer {
1023
+ margin: 2rem 0 0;
1024
+ padding: 2rem;
1025
+ }
1026
+
1027
+ section {
1028
+ margin-bottom: 8mm;
1029
+ }
1030
+ }
1031
+
1032
+