@eternalheart/angular-file-preview 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +879 -0
  3. package/README.zh-CN.md +876 -0
  4. package/lib/LICENSE +22 -0
  5. package/lib/README.md +879 -0
  6. package/lib/components/preview/file-preview-toolbar.d.ts +19 -0
  7. package/lib/components/preview/nav-arrows.d.ts +25 -0
  8. package/lib/components/preview/renderer-outlet.d.ts +23 -0
  9. package/lib/components/preview/toolbar-button.d.ts +12 -0
  10. package/lib/components/resizable-split.d.ts +32 -0
  11. package/lib/di/locale.service.d.ts +12 -0
  12. package/lib/di/request.service.d.ts +20 -0
  13. package/lib/di/theme-mode.d.ts +6 -0
  14. package/lib/di/theme.service.d.ts +9 -0
  15. package/lib/fesm2022/eternalheart-angular-file-preview-avifLoader-BP3fgcMm-CZsJ9svm.mjs +55 -0
  16. package/lib/fesm2022/eternalheart-angular-file-preview-avifLoader-BP3fgcMm-CZsJ9svm.mjs.map +1 -0
  17. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs +58 -0
  18. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs.map +1 -0
  19. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs +5835 -0
  20. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs.map +1 -0
  21. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-base.types-D5x7QPey-D5x7QPey.mjs +17 -0
  22. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-base.types-D5x7QPey-D5x7QPey.mjs.map +1 -0
  23. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs +284 -0
  24. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs.map +1 -0
  25. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs +703 -0
  26. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs.map +1 -0
  27. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs +231 -0
  28. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs.map +1 -0
  29. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs +552 -0
  30. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs.map +1 -0
  31. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs +688 -0
  32. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs.map +1 -0
  33. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs +273 -0
  34. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs.map +1 -0
  35. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs +288 -0
  36. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs.map +1 -0
  37. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs +550 -0
  38. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs.map +1 -0
  39. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs +102 -0
  40. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs.map +1 -0
  41. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs +516 -0
  42. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs.map +1 -0
  43. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs +823 -0
  44. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs.map +1 -0
  45. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs +164 -0
  46. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs.map +1 -0
  47. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs +655 -0
  48. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs.map +1 -0
  49. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs +207 -0
  50. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs.map +1 -0
  51. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs +199 -0
  52. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs.map +1 -0
  53. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs +194 -0
  54. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs.map +1 -0
  55. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs +94 -0
  56. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs.map +1 -0
  57. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs +468 -0
  58. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs.map +1 -0
  59. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs +193 -0
  60. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs.map +1 -0
  61. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs +184 -0
  62. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs.map +1 -0
  63. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs +492 -0
  64. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs.map +1 -0
  65. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs +68 -0
  66. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs.map +1 -0
  67. package/lib/fesm2022/eternalheart-angular-file-preview-heicLoader-CH_raQNn-BSXHd_oi.mjs +36 -0
  68. package/lib/fesm2022/eternalheart-angular-file-preview-heicLoader-CH_raQNn-BSXHd_oi.mjs.map +1 -0
  69. package/lib/fesm2022/eternalheart-angular-file-preview-jp2Loader-ldvCSsvm-DJEhfimG.mjs +121 -0
  70. package/lib/fesm2022/eternalheart-angular-file-preview-jp2Loader-ldvCSsvm-DJEhfimG.mjs.map +1 -0
  71. package/lib/fesm2022/eternalheart-angular-file-preview-psdLoader-D5CkupyY-D5Gegcdg.mjs +78 -0
  72. package/lib/fesm2022/eternalheart-angular-file-preview-psdLoader-D5CkupyY-D5Gegcdg.mjs.map +1 -0
  73. package/lib/fesm2022/eternalheart-angular-file-preview-rawLoader-0mLvxCNp-CCXn9Rdp.mjs +81 -0
  74. package/lib/fesm2022/eternalheart-angular-file-preview-rawLoader-0mLvxCNp-CCXn9Rdp.mjs.map +1 -0
  75. package/lib/fesm2022/eternalheart-angular-file-preview-tiffLoader-CmUAD1vO-0JqIws9t.mjs +59 -0
  76. package/lib/fesm2022/eternalheart-angular-file-preview-tiffLoader-CmUAD1vO-0JqIws9t.mjs.map +1 -0
  77. package/lib/fesm2022/eternalheart-angular-file-preview.mjs +2 -0
  78. package/lib/fesm2022/eternalheart-angular-file-preview.mjs.map +1 -0
  79. package/lib/file-preview-content.d.ts +65 -0
  80. package/lib/file-preview-embed.d.ts +30 -0
  81. package/lib/file-preview-modal.d.ts +34 -0
  82. package/lib/fp-core.d.ts +1 -0
  83. package/lib/index.css +2119 -0
  84. package/lib/index.d.ts +11 -0
  85. package/lib/renderers/Audio/index.d.ts +74 -0
  86. package/lib/renderers/Cad/index.d.ts +45 -0
  87. package/lib/renderers/Cad/toolbar.d.ts +15 -0
  88. package/lib/renderers/Csv/index.d.ts +26 -0
  89. package/lib/renderers/Doc/index.d.ts +19 -0
  90. package/lib/renderers/Docx/index.d.ts +42 -0
  91. package/lib/renderers/Epub/index.d.ts +57 -0
  92. package/lib/renderers/Font/font-preview-line.d.ts +26 -0
  93. package/lib/renderers/Font/index.d.ts +52 -0
  94. package/lib/renderers/Image/index.d.ts +79 -0
  95. package/lib/renderers/Json/index.d.ts +61 -0
  96. package/lib/renderers/Markdown/index.d.ts +35 -0
  97. package/lib/renderers/Mobi/index.d.ts +51 -0
  98. package/lib/renderers/Msg/index.d.ts +47 -0
  99. package/lib/renderers/Pdf/index.d.ts +55 -0
  100. package/lib/renderers/Ppt/index.d.ts +19 -0
  101. package/lib/renderers/Pptx/index.d.ts +29 -0
  102. package/lib/renderers/RendererError.d.ts +9 -0
  103. package/lib/renderers/RendererLoading.d.ts +7 -0
  104. package/lib/renderers/Subtitle/index.d.ts +25 -0
  105. package/lib/renderers/Text/index.d.ts +29 -0
  106. package/lib/renderers/Unsupported/index.d.ts +15 -0
  107. package/lib/renderers/Video/index.d.ts +28 -0
  108. package/lib/renderers/Xlsx/index.d.ts +25 -0
  109. package/lib/renderers/Xml/index.d.ts +26 -0
  110. package/lib/renderers/Zip/index.d.ts +58 -0
  111. package/lib/renderers/Zip/tree-item.d.ts +29 -0
  112. package/lib/renderers/base.types.d.ts +10 -0
  113. package/lib/renderers/lazy.d.ts +23 -0
  114. package/lib/renderers/registry.d.ts +13 -0
  115. package/lib/renderers/toolbar.types.d.ts +19 -0
  116. package/lib/types.d.ts +26 -0
  117. package/lib/utils/audio-player.d.ts +20 -0
  118. package/lib/utils/shiki-highlight.d.ts +7 -0
  119. package/package.json +119 -0
package/lib/index.css ADDED
@@ -0,0 +1,2119 @@
1
+ .afp-root .afp-pointer-events-none {
2
+ pointer-events: none;
3
+ }
4
+ .afp-root .afp-pointer-events-auto {
5
+ pointer-events: auto;
6
+ }
7
+ .afp-root .afp-fixed {
8
+ position: fixed;
9
+ }
10
+ .afp-root .afp-absolute {
11
+ position: absolute;
12
+ }
13
+ .afp-root .afp-relative {
14
+ position: relative;
15
+ }
16
+ .afp-root .afp-inset-0 {
17
+ inset: 0px;
18
+ }
19
+ .afp-root .afp-inset-y-0 {
20
+ top: 0px;
21
+ bottom: 0px;
22
+ }
23
+ .afp-root .afp-bottom-0 {
24
+ bottom: 0px;
25
+ }
26
+ .afp-root .afp-bottom-2 {
27
+ bottom: 0.5rem;
28
+ }
29
+ .afp-root .afp-bottom-full {
30
+ bottom: 100%;
31
+ }
32
+ .afp-root .afp-left-1\/2 {
33
+ left: 50%;
34
+ }
35
+ .afp-root .afp-left-2 {
36
+ left: 0.5rem;
37
+ }
38
+ .afp-root .afp-right-2 {
39
+ right: 0.5rem;
40
+ }
41
+ .afp-root .afp-right-3 {
42
+ right: 0.75rem;
43
+ }
44
+ .afp-root .afp-top-1\/2 {
45
+ top: 50%;
46
+ }
47
+ .afp-root .afp-z-0 {
48
+ z-index: 0;
49
+ }
50
+ .afp-root .afp-z-10 {
51
+ z-index: 10;
52
+ }
53
+ .afp-root .afp-z-20 {
54
+ z-index: 20;
55
+ }
56
+ .afp-root .afp-z-\[9999\] {
57
+ z-index: 9999;
58
+ }
59
+ .afp-root .afp-mx-0\.5 {
60
+ margin-left: 0.125rem;
61
+ margin-right: 0.125rem;
62
+ }
63
+ .afp-root .afp-mx-1 {
64
+ margin-left: 0.25rem;
65
+ margin-right: 0.25rem;
66
+ }
67
+ .afp-root .afp-mx-auto {
68
+ margin-left: auto;
69
+ margin-right: auto;
70
+ }
71
+ .afp-root .-afp-mb-px {
72
+ margin-bottom: -1px;
73
+ }
74
+ .afp-root .afp-mb-1 {
75
+ margin-bottom: 0.25rem;
76
+ }
77
+ .afp-root .afp-mb-2 {
78
+ margin-bottom: 0.5rem;
79
+ }
80
+ .afp-root .afp-mb-3 {
81
+ margin-bottom: 0.75rem;
82
+ }
83
+ .afp-root .afp-mb-5 {
84
+ margin-bottom: 1.25rem;
85
+ }
86
+ .afp-root .afp-ml-0\.5 {
87
+ margin-left: 0.125rem;
88
+ }
89
+ .afp-root .afp-ml-2 {
90
+ margin-left: 0.5rem;
91
+ }
92
+ .afp-root .afp-mr-2 {
93
+ margin-right: 0.5rem;
94
+ }
95
+ .afp-root .afp-mt-1\.5 {
96
+ margin-top: 0.375rem;
97
+ }
98
+ .afp-root .afp-mt-2\.5 {
99
+ margin-top: 0.625rem;
100
+ }
101
+ .afp-root .afp-mt-4 {
102
+ margin-top: 1rem;
103
+ }
104
+ .afp-root .afp-box-border {
105
+ box-sizing: border-box;
106
+ }
107
+ .afp-root .afp-block {
108
+ display: block;
109
+ }
110
+ .afp-root .afp-inline-block {
111
+ display: inline-block;
112
+ }
113
+ .afp-root .afp-flex {
114
+ display: flex;
115
+ }
116
+ .afp-root .afp-grid {
117
+ display: grid;
118
+ }
119
+ .afp-root .afp-hidden {
120
+ display: none;
121
+ }
122
+ .afp-root .afp-h-10 {
123
+ height: 2.5rem;
124
+ }
125
+ .afp-root .afp-h-12 {
126
+ height: 3rem;
127
+ }
128
+ .afp-root .afp-h-14 {
129
+ height: 3.5rem;
130
+ }
131
+ .afp-root .afp-h-20 {
132
+ height: 5rem;
133
+ }
134
+ .afp-root .afp-h-3\.5 {
135
+ height: 0.875rem;
136
+ }
137
+ .afp-root .afp-h-4 {
138
+ height: 1rem;
139
+ }
140
+ .afp-root .afp-h-5 {
141
+ height: 1.25rem;
142
+ }
143
+ .afp-root .afp-h-6 {
144
+ height: 1.5rem;
145
+ }
146
+ .afp-root .afp-h-8 {
147
+ height: 2rem;
148
+ }
149
+ .afp-root .afp-h-9 {
150
+ height: 2.25rem;
151
+ }
152
+ .afp-root .afp-h-\[18px\] {
153
+ height: 18px;
154
+ }
155
+ .afp-root .afp-h-\[5px\] {
156
+ height: 5px;
157
+ }
158
+ .afp-root .afp-h-full {
159
+ height: 100%;
160
+ }
161
+ .afp-root .afp-max-h-60 {
162
+ max-height: 15rem;
163
+ }
164
+ .afp-root .afp-min-h-0 {
165
+ min-height: 0px;
166
+ }
167
+ .afp-root .afp-min-h-screen {
168
+ min-height: 100vh;
169
+ }
170
+ .afp-root .afp-w-1\.5 {
171
+ width: 0.375rem;
172
+ }
173
+ .afp-root .afp-w-10 {
174
+ width: 2.5rem;
175
+ }
176
+ .afp-root .afp-w-12 {
177
+ width: 3rem;
178
+ }
179
+ .afp-root .afp-w-14 {
180
+ width: 3.5rem;
181
+ }
182
+ .afp-root .afp-w-20 {
183
+ width: 5rem;
184
+ }
185
+ .afp-root .afp-w-3\.5 {
186
+ width: 0.875rem;
187
+ }
188
+ .afp-root .afp-w-4 {
189
+ width: 1rem;
190
+ }
191
+ .afp-root .afp-w-5 {
192
+ width: 1.25rem;
193
+ }
194
+ .afp-root .afp-w-6 {
195
+ width: 1.5rem;
196
+ }
197
+ .afp-root .afp-w-72 {
198
+ width: 18rem;
199
+ }
200
+ .afp-root .afp-w-8 {
201
+ width: 2rem;
202
+ }
203
+ .afp-root .afp-w-9 {
204
+ width: 2.25rem;
205
+ }
206
+ .afp-root .afp-w-\[18px\] {
207
+ width: 18px;
208
+ }
209
+ .afp-root .afp-w-full {
210
+ width: 100%;
211
+ }
212
+ .afp-root .afp-w-px {
213
+ width: 1px;
214
+ }
215
+ .afp-root .afp-min-w-0 {
216
+ min-width: 0px;
217
+ }
218
+ .afp-root .afp-max-w-\[80\%\] {
219
+ max-width: 80%;
220
+ }
221
+ .afp-root .afp-max-w-full {
222
+ max-width: 100%;
223
+ }
224
+ .afp-root .afp-max-w-md {
225
+ max-width: 28rem;
226
+ }
227
+ .afp-root .afp-max-w-none {
228
+ max-width: none;
229
+ }
230
+ .afp-root .afp-flex-1 {
231
+ flex: 1 1 0%;
232
+ }
233
+ .afp-root .afp-flex-shrink-0 {
234
+ flex-shrink: 0;
235
+ }
236
+ .afp-root .-afp-translate-x-1\/2 {
237
+ --tw-translate-x: -50%;
238
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
239
+ }
240
+ .afp-root .afp-rotate-90 {
241
+ --tw-rotate: 90deg;
242
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
243
+ }
244
+ @keyframes afp-spin {
245
+ to {
246
+ transform: rotate(360deg);
247
+ }
248
+ }
249
+ .afp-root .afp-animate-spin {
250
+ animation: afp-spin 1s linear infinite;
251
+ }
252
+ .afp-root .afp-cursor-col-resize {
253
+ cursor: col-resize;
254
+ }
255
+ .afp-root .afp-cursor-default {
256
+ cursor: default;
257
+ }
258
+ .afp-root .afp-select-none {
259
+ -webkit-user-select: none;
260
+ -moz-user-select: none;
261
+ user-select: none;
262
+ }
263
+ .afp-root .afp-resize-y {
264
+ resize: vertical;
265
+ }
266
+ .afp-root .afp-grid-cols-2 {
267
+ grid-template-columns: repeat(2, minmax(0, 1fr));
268
+ }
269
+ .afp-root .afp-flex-col {
270
+ flex-direction: column;
271
+ }
272
+ .afp-root .afp-items-center {
273
+ align-items: center;
274
+ }
275
+ .afp-root .afp-justify-center {
276
+ justify-content: center;
277
+ }
278
+ .afp-root .afp-justify-between {
279
+ justify-content: space-between;
280
+ }
281
+ .afp-root .afp-gap-1 {
282
+ gap: 0.25rem;
283
+ }
284
+ .afp-root .afp-gap-2 {
285
+ gap: 0.5rem;
286
+ }
287
+ .afp-root .afp-gap-3 {
288
+ gap: 0.75rem;
289
+ }
290
+ .afp-root .afp-gap-4 {
291
+ gap: 1rem;
292
+ }
293
+ .afp-root .afp-gap-6 {
294
+ gap: 1.5rem;
295
+ }
296
+ .afp-root .afp-gap-x-6 {
297
+ -moz-column-gap: 1.5rem;
298
+ column-gap: 1.5rem;
299
+ }
300
+ .afp-root .afp-gap-y-2 {
301
+ row-gap: 0.5rem;
302
+ }
303
+ .afp-root :is(.afp-space-y-2 > :not([hidden]) ~ :not([hidden])) {
304
+ --tw-space-y-reverse: 0;
305
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
306
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
307
+ }
308
+ .afp-root :is(.afp-space-y-6 > :not([hidden]) ~ :not([hidden])) {
309
+ --tw-space-y-reverse: 0;
310
+ margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
311
+ margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
312
+ }
313
+ .afp-root :is(.afp-space-y-8 > :not([hidden]) ~ :not([hidden])) {
314
+ --tw-space-y-reverse: 0;
315
+ margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
316
+ margin-bottom: calc(2rem * var(--tw-space-y-reverse));
317
+ }
318
+ .afp-root .afp-overflow-auto {
319
+ overflow: auto;
320
+ }
321
+ .afp-root .afp-overflow-hidden {
322
+ overflow: hidden;
323
+ }
324
+ .afp-root .afp-overflow-x-auto {
325
+ overflow-x: auto;
326
+ }
327
+ .afp-root .afp-overflow-y-auto {
328
+ overflow-y: auto;
329
+ }
330
+ .afp-root .afp-truncate {
331
+ overflow: hidden;
332
+ text-overflow: ellipsis;
333
+ white-space: nowrap;
334
+ }
335
+ .afp-root .afp-whitespace-pre {
336
+ white-space: pre;
337
+ }
338
+ .afp-root .afp-whitespace-pre-wrap {
339
+ white-space: pre-wrap;
340
+ }
341
+ .afp-root .afp-break-words {
342
+ overflow-wrap: break-word;
343
+ }
344
+ .afp-root .afp-rounded {
345
+ border-radius: 0.25rem;
346
+ }
347
+ .afp-root .afp-rounded-2xl {
348
+ border-radius: 1rem;
349
+ }
350
+ .afp-root .afp-rounded-full {
351
+ border-radius: 9999px;
352
+ }
353
+ .afp-root .afp-rounded-lg {
354
+ border-radius: 0.5rem;
355
+ }
356
+ .afp-root .afp-rounded-md {
357
+ border-radius: 0.375rem;
358
+ }
359
+ .afp-root .afp-rounded-xl {
360
+ border-radius: 0.75rem;
361
+ }
362
+ .afp-root .afp-border {
363
+ border-width: 1px;
364
+ }
365
+ .afp-root .afp-border-0 {
366
+ border-width: 0px;
367
+ }
368
+ .afp-root .afp-border-2 {
369
+ border-width: 2px;
370
+ }
371
+ .afp-root .afp-border-4 {
372
+ border-width: 4px;
373
+ }
374
+ .afp-root .afp-border-b {
375
+ border-bottom-width: 1px;
376
+ }
377
+ .afp-root .afp-border-b-2 {
378
+ border-bottom-width: 2px;
379
+ }
380
+ .afp-root .afp-border-r {
381
+ border-right-width: 1px;
382
+ }
383
+ .afp-root .afp-border-t {
384
+ border-top-width: 1px;
385
+ }
386
+ .afp-root .afp-border-fg-muted {
387
+ border-color: var(--fp-fg-muted);
388
+ }
389
+ .afp-root .afp-border-fg-primary {
390
+ border-color: var(--fp-fg-primary);
391
+ }
392
+ .afp-root .afp-border-line {
393
+ border-color: var(--fp-line);
394
+ }
395
+ .afp-root .afp-border-line-strong {
396
+ border-color: var(--fp-line-strong);
397
+ }
398
+ .afp-root .afp-border-line-weak {
399
+ border-color: var(--fp-line-weak);
400
+ }
401
+ .afp-root .afp-border-spinner-track {
402
+ border-color: var(--fp-spinner-track);
403
+ }
404
+ .afp-root .afp-border-t-spinner-head {
405
+ border-top-color: var(--fp-spinner-head);
406
+ }
407
+ .afp-root .afp-border-t-transparent {
408
+ border-top-color: transparent;
409
+ }
410
+ .afp-root .afp-bg-\[\#0f0f12\] {
411
+ --tw-bg-opacity: 1;
412
+ background-color: rgb(15 15 18 / var(--tw-bg-opacity, 1));
413
+ }
414
+ .afp-root .afp-bg-accent-soft {
415
+ background-color: var(--fp-accent-soft);
416
+ }
417
+ .afp-root .afp-bg-code-bg {
418
+ background-color: var(--fp-code-bg);
419
+ }
420
+ .afp-root .afp-bg-divide {
421
+ background-color: var(--fp-divide);
422
+ }
423
+ .afp-root .afp-bg-media-bg {
424
+ background-color: var(--fp-media-bg);
425
+ }
426
+ .afp-root .afp-bg-surface-1 {
427
+ background-color: var(--fp-surface-1);
428
+ }
429
+ .afp-root .afp-bg-surface-2 {
430
+ background-color: var(--fp-surface-2);
431
+ }
432
+ .afp-root .afp-bg-surface-3 {
433
+ background-color: var(--fp-surface-3);
434
+ }
435
+ .afp-root .afp-bg-surface-nav {
436
+ background-color: var(--fp-surface-nav);
437
+ }
438
+ .afp-root .afp-bg-surface-overlay {
439
+ background-color: var(--fp-surface-overlay);
440
+ }
441
+ .afp-root .afp-bg-surface-toolbar {
442
+ background-color: var(--fp-surface-toolbar);
443
+ }
444
+ .afp-root .afp-p-3 {
445
+ padding: 0.75rem;
446
+ }
447
+ .afp-root .afp-p-5 {
448
+ padding: 1.25rem;
449
+ }
450
+ .afp-root .afp-p-6 {
451
+ padding: 1.5rem;
452
+ }
453
+ .afp-root .afp-px-1 {
454
+ padding-left: 0.25rem;
455
+ padding-right: 0.25rem;
456
+ }
457
+ .afp-root .afp-px-2 {
458
+ padding-left: 0.5rem;
459
+ padding-right: 0.5rem;
460
+ }
461
+ .afp-root .afp-px-3 {
462
+ padding-left: 0.75rem;
463
+ padding-right: 0.75rem;
464
+ }
465
+ .afp-root .afp-px-4 {
466
+ padding-left: 1rem;
467
+ padding-right: 1rem;
468
+ }
469
+ .afp-root .afp-px-6 {
470
+ padding-left: 1.5rem;
471
+ padding-right: 1.5rem;
472
+ }
473
+ .afp-root .afp-py-0\.5 {
474
+ padding-top: 0.125rem;
475
+ padding-bottom: 0.125rem;
476
+ }
477
+ .afp-root .afp-py-1\.5 {
478
+ padding-top: 0.375rem;
479
+ padding-bottom: 0.375rem;
480
+ }
481
+ .afp-root .afp-py-2 {
482
+ padding-top: 0.5rem;
483
+ padding-bottom: 0.5rem;
484
+ }
485
+ .afp-root .afp-py-2\.5 {
486
+ padding-top: 0.625rem;
487
+ padding-bottom: 0.625rem;
488
+ }
489
+ .afp-root .afp-py-3 {
490
+ padding-top: 0.75rem;
491
+ padding-bottom: 0.75rem;
492
+ }
493
+ .afp-root .afp-py-4 {
494
+ padding-top: 1rem;
495
+ padding-bottom: 1rem;
496
+ }
497
+ .afp-root .afp-py-6 {
498
+ padding-top: 1.5rem;
499
+ padding-bottom: 1.5rem;
500
+ }
501
+ .afp-root .afp-pb-1\.5 {
502
+ padding-bottom: 0.375rem;
503
+ }
504
+ .afp-root .afp-pt-6 {
505
+ padding-top: 1.5rem;
506
+ }
507
+ .afp-root .afp-text-left {
508
+ text-align: left;
509
+ }
510
+ .afp-root .afp-text-center {
511
+ text-align: center;
512
+ }
513
+ .afp-root .afp-font-mono {
514
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
515
+ }
516
+ .afp-root .afp-text-\[10px\] {
517
+ font-size: 10px;
518
+ }
519
+ .afp-root .afp-text-base {
520
+ font-size: 1rem;
521
+ line-height: 1.5rem;
522
+ }
523
+ .afp-root .afp-text-lg {
524
+ font-size: 1.125rem;
525
+ line-height: 1.75rem;
526
+ }
527
+ .afp-root .afp-text-sm {
528
+ font-size: 0.875rem;
529
+ line-height: 1.25rem;
530
+ }
531
+ .afp-root .afp-text-xs {
532
+ font-size: 0.75rem;
533
+ line-height: 1rem;
534
+ }
535
+ .afp-root .afp-font-medium {
536
+ font-weight: 500;
537
+ }
538
+ .afp-root .afp-font-semibold {
539
+ font-weight: 600;
540
+ }
541
+ .afp-root .afp-tabular-nums {
542
+ --tw-numeric-spacing: tabular-nums;
543
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
544
+ }
545
+ .afp-root .afp-leading-relaxed {
546
+ line-height: 1.625;
547
+ }
548
+ .afp-root .afp-text-accent {
549
+ color: var(--fp-accent);
550
+ }
551
+ .afp-root .afp-text-amber-300\/80 {
552
+ color: rgb(252 211 77 / 0.8);
553
+ }
554
+ .afp-root .afp-text-fg-disabled {
555
+ color: var(--fp-fg-disabled);
556
+ }
557
+ .afp-root .afp-text-fg-muted {
558
+ color: var(--fp-fg-muted);
559
+ }
560
+ .afp-root .afp-text-fg-primary {
561
+ color: var(--fp-fg-primary);
562
+ }
563
+ .afp-root .afp-text-fg-secondary {
564
+ color: var(--fp-fg-secondary);
565
+ }
566
+ .afp-root .afp-text-fg-tertiary {
567
+ color: var(--fp-fg-tertiary);
568
+ }
569
+ .afp-root .afp-shadow-2xl {
570
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
571
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
572
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
573
+ }
574
+ .afp-root .afp-shadow-lg {
575
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
576
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
577
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
578
+ }
579
+ .afp-root .afp-shadow-md {
580
+ --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
581
+ --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
582
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
583
+ }
584
+ .afp-root .afp-outline-none {
585
+ outline: 2px solid transparent;
586
+ outline-offset: 2px;
587
+ }
588
+ .afp-root .afp-backdrop-blur-md {
589
+ --tw-backdrop-blur: blur(12px);
590
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
591
+ }
592
+ .afp-root .afp-backdrop-blur-sm {
593
+ --tw-backdrop-blur: blur(4px);
594
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
595
+ }
596
+ .afp-root .afp-backdrop-blur-xl {
597
+ --tw-backdrop-blur: blur(24px);
598
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
599
+ }
600
+ .afp-root .afp-transition-all {
601
+ transition-property: all;
602
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
603
+ transition-duration: 150ms;
604
+ }
605
+ .afp-root .afp-transition-colors {
606
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
607
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
608
+ transition-duration: 150ms;
609
+ }
610
+ .afp-root .afp-transition-opacity {
611
+ transition-property: opacity;
612
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
613
+ transition-duration: 150ms;
614
+ }
615
+ .afp-root .afp-transition-transform {
616
+ transition-property: transform;
617
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
618
+ transition-duration: 150ms;
619
+ }
620
+ .afp-root .afp-duration-300 {
621
+ transition-duration: 300ms;
622
+ }
623
+
624
+ /* 作用域内的 Tailwind CSS 变量声明 */
625
+ .afp-root,
626
+ .afp-root *,
627
+ .afp-root ::before,
628
+ .afp-root ::after {
629
+ --tw-border-spacing-x: 0;
630
+ --tw-border-spacing-y: 0;
631
+ --tw-translate-x: 0;
632
+ --tw-translate-y: 0;
633
+ --tw-rotate: 0;
634
+ --tw-skew-x: 0;
635
+ --tw-skew-y: 0;
636
+ --tw-scale-x: 1;
637
+ --tw-scale-y: 1;
638
+ --tw-pan-x: ;
639
+ --tw-pan-y: ;
640
+ --tw-pinch-zoom: ;
641
+ --tw-scroll-snap-strictness: proximity;
642
+ --tw-gradient-from-position: ;
643
+ --tw-gradient-via-position: ;
644
+ --tw-gradient-to-position: ;
645
+ --tw-ordinal: ;
646
+ --tw-slashed-zero: ;
647
+ --tw-numeric-figure: ;
648
+ --tw-numeric-spacing: ;
649
+ --tw-numeric-fraction: ;
650
+ --tw-ring-inset: ;
651
+ --tw-ring-offset-width: 0px;
652
+ --tw-ring-offset-color: #fff;
653
+ --tw-ring-color: rgb(59 130 246 / 0.5);
654
+ --tw-ring-offset-shadow: 0 0 #0000;
655
+ --tw-ring-shadow: 0 0 #0000;
656
+ --tw-shadow: 0 0 #0000;
657
+ --tw-shadow-colored: 0 0 #0000;
658
+ --tw-blur: ;
659
+ --tw-brightness: ;
660
+ --tw-contrast: ;
661
+ --tw-grayscale: ;
662
+ --tw-hue-rotate: ;
663
+ --tw-invert: ;
664
+ --tw-saturate: ;
665
+ --tw-sepia: ;
666
+ --tw-drop-shadow: ;
667
+ --tw-backdrop-blur: ;
668
+ --tw-backdrop-brightness: ;
669
+ --tw-backdrop-contrast: ;
670
+ --tw-backdrop-grayscale: ;
671
+ --tw-backdrop-hue-rotate: ;
672
+ --tw-backdrop-invert: ;
673
+ --tw-backdrop-opacity: ;
674
+ --tw-backdrop-saturate: ;
675
+ --tw-backdrop-sepia: ;
676
+ --tw-contain-size: ;
677
+ --tw-contain-layout: ;
678
+ --tw-contain-paint: ;
679
+ --tw-contain-style: ;
680
+ box-sizing: border-box;
681
+ }
682
+
683
+ /* 组件根元素基础样式 */
684
+ .afp-root {
685
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
686
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
687
+ sans-serif;
688
+ -webkit-font-smoothing: antialiased;
689
+ -moz-osx-font-smoothing: grayscale;
690
+ font-size: 14px;
691
+ line-height: 1.5;
692
+ -webkit-text-size-adjust: 100%;
693
+ -moz-tab-size: 4;
694
+ -o-tab-size: 4;
695
+ tab-size: 4;
696
+ text-align: left;
697
+ }
698
+
699
+ /* 作用域化 Preflight Reset —— 防止父页面 CSS 污染 */
700
+ .afp-root *,
701
+ .afp-root ::before,
702
+ .afp-root ::after {
703
+ border-width: 0;
704
+ border-style: solid;
705
+ }
706
+
707
+ .afp-root p,
708
+ .afp-root h1,
709
+ .afp-root h2,
710
+ .afp-root h3,
711
+ .afp-root h4,
712
+ .afp-root h5,
713
+ .afp-root h6,
714
+ .afp-root ul,
715
+ .afp-root ol,
716
+ .afp-root li,
717
+ .afp-root dl,
718
+ .afp-root dt,
719
+ .afp-root dd,
720
+ .afp-root blockquote,
721
+ .afp-root figure,
722
+ .afp-root fieldset,
723
+ .afp-root legend {
724
+ margin: 0;
725
+ padding: 0;
726
+ }
727
+
728
+ .afp-root h1,
729
+ .afp-root h2,
730
+ .afp-root h3,
731
+ .afp-root h4,
732
+ .afp-root h5,
733
+ .afp-root h6 {
734
+ font-size: inherit;
735
+ font-weight: inherit;
736
+ }
737
+
738
+ .afp-root a {
739
+ color: inherit;
740
+ text-decoration: inherit;
741
+ }
742
+
743
+ .afp-root ul,
744
+ .afp-root ol {
745
+ list-style: none;
746
+ }
747
+
748
+ .afp-root img,
749
+ .afp-root video {
750
+ max-width: 100%;
751
+ height: auto;
752
+ }
753
+
754
+ .afp-root button,
755
+ .afp-root [type='button'],
756
+ .afp-root [type='reset'],
757
+ .afp-root [type='submit'] {
758
+ -webkit-appearance: button;
759
+ background-color: transparent;
760
+ background-image: none;
761
+ cursor: pointer;
762
+ }
763
+
764
+ .afp-root input,
765
+ .afp-root textarea,
766
+ .afp-root select {
767
+ font-family: inherit;
768
+ font-size: 100%;
769
+ font-weight: inherit;
770
+ line-height: inherit;
771
+ color: inherit;
772
+ margin: 0;
773
+ padding: 0;
774
+ }
775
+
776
+ .afp-root table {
777
+ border-collapse: collapse;
778
+ border-spacing: 0;
779
+ }
780
+
781
+ .afp-root pre,
782
+ .afp-root code,
783
+ .afp-root kbd,
784
+ .afp-root samp {
785
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
786
+ font-size: 1em;
787
+ }
788
+
789
+ /* 作用域内滚动条样式 */
790
+ .afp-root ::-webkit-scrollbar {
791
+ width: 8px;
792
+ height: 8px;
793
+ }
794
+
795
+ .afp-root ::-webkit-scrollbar-track {
796
+ background: rgba(0, 0, 0, 0.1);
797
+ border-radius: 4px;
798
+ }
799
+
800
+ .afp-root ::-webkit-scrollbar-thumb {
801
+ background: rgba(255, 255, 255, 0.3);
802
+ border-radius: 4px;
803
+ }
804
+
805
+ .afp-root ::-webkit-scrollbar-thumb:hover {
806
+ background: rgba(255, 255, 255, 0.5);
807
+ }
808
+
809
+ /* Light 主题滚动条 */
810
+ .afp-root[data-theme="light"] ::-webkit-scrollbar-track {
811
+ background: rgba(0, 0, 0, 0.05);
812
+ }
813
+
814
+ .afp-root[data-theme="light"] ::-webkit-scrollbar-thumb {
815
+ background: rgba(0, 0, 0, 0.2);
816
+ }
817
+
818
+ .afp-root[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
819
+ background: rgba(0, 0, 0, 0.35);
820
+ }
821
+
822
+ /* 唱片旋转动画 */
823
+ @keyframes afp-vinyl-spin {
824
+ from { transform: rotate(0deg); }
825
+ to { transform: rotate(360deg); }
826
+ }
827
+
828
+ /* 进出场过渡 (Vue Transition) */
829
+ .afp-root .afp-fade-enter-active,
830
+ .afp-root .afp-fade-leave-active {
831
+ transition: opacity 0.2s ease;
832
+ }
833
+
834
+ .afp-root .afp-fade-enter-from,
835
+ .afp-root .afp-fade-leave-to {
836
+ opacity: 0;
837
+ }
838
+
839
+ /* 音频播放器进度条样式 */
840
+ .afp-root .audio-slider {
841
+ -webkit-appearance: none;
842
+ -moz-appearance: none;
843
+ appearance: none;
844
+ width: 100%;
845
+ height: 16px;
846
+ border-radius: 3px;
847
+ background: transparent;
848
+ outline: none;
849
+ cursor: pointer;
850
+ position: relative;
851
+ }
852
+
853
+ .afp-root .audio-slider:disabled {
854
+ cursor: default;
855
+ opacity: 0.5;
856
+ }
857
+
858
+ .afp-root .audio-slider::-webkit-slider-runnable-track {
859
+ width: 100%;
860
+ height: 5px;
861
+ border-radius: 3px;
862
+ background: transparent;
863
+ }
864
+
865
+ .afp-root .audio-slider::-moz-range-track {
866
+ width: 100%;
867
+ height: 5px;
868
+ border-radius: 3px;
869
+ background: transparent;
870
+ }
871
+
872
+ .afp-root .audio-slider::-webkit-slider-thumb {
873
+ -webkit-appearance: none;
874
+ appearance: none;
875
+ width: 14px;
876
+ height: 14px;
877
+ border-radius: 50%;
878
+ background: var(--fp-accent-gradient);
879
+ cursor: pointer;
880
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--fp-accent) 50%, transparent);
881
+ -webkit-transition: transform 0.2s ease, box-shadow 0.2s ease;
882
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
883
+ margin-top: -5px;
884
+ }
885
+
886
+ .afp-root .audio-slider::-moz-range-thumb {
887
+ width: 14px;
888
+ height: 14px;
889
+ border-radius: 50%;
890
+ background: var(--fp-accent-gradient);
891
+ cursor: pointer;
892
+ border: none;
893
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--fp-accent) 50%, transparent);
894
+ -moz-transition: transform 0.2s ease, box-shadow 0.2s ease;
895
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
896
+ }
897
+
898
+ .afp-root .audio-slider::-webkit-slider-thumb:hover {
899
+ transform: scale(1.25);
900
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--fp-accent) 70%, transparent);
901
+ }
902
+
903
+ .afp-root .audio-slider::-moz-range-thumb:hover {
904
+ transform: scale(1.25);
905
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--fp-accent) 70%, transparent);
906
+ }
907
+
908
+ /* 垂直音量滑块样式 */
909
+ .afp-root .volume-slider-vertical {
910
+ -webkit-appearance: none;
911
+ -moz-appearance: none;
912
+ appearance: none;
913
+ background: transparent;
914
+ outline: none;
915
+ cursor: pointer;
916
+ }
917
+
918
+ .afp-root .volume-slider-vertical::-webkit-slider-runnable-track {
919
+ width: 100%;
920
+ height: 3px;
921
+ border-radius: 2px;
922
+ background: transparent;
923
+ }
924
+
925
+ .afp-root .volume-slider-vertical::-moz-range-track {
926
+ width: 100%;
927
+ height: 3px;
928
+ border-radius: 2px;
929
+ background: transparent;
930
+ }
931
+
932
+ .afp-root .volume-slider-vertical::-webkit-slider-thumb {
933
+ -webkit-appearance: none;
934
+ appearance: none;
935
+ width: 14px;
936
+ height: 14px;
937
+ border-radius: 50%;
938
+ background: var(--fp-accent-hover);
939
+ cursor: pointer;
940
+ box-shadow: 0 2px 6px color-mix(in srgb, var(--fp-accent) 50%, transparent);
941
+ -webkit-transition: all 0.15s ease;
942
+ transition: all 0.15s ease;
943
+ margin-top: -6px;
944
+ }
945
+
946
+ .afp-root .volume-slider-vertical::-moz-range-thumb {
947
+ width: 14px;
948
+ height: 14px;
949
+ border-radius: 50%;
950
+ background: var(--fp-accent-hover);
951
+ cursor: pointer;
952
+ border: none;
953
+ box-shadow: 0 2px 6px color-mix(in srgb, var(--fp-accent) 50%, transparent);
954
+ -moz-transition: all 0.15s ease;
955
+ transition: all 0.15s ease;
956
+ }
957
+
958
+ .afp-root .pptx-wrapper,
959
+ .afp-root .pptx-preview-wrapper {
960
+ overflow-y: initial !important;
961
+ font-family: initial;
962
+ font-size: initial;
963
+ line-height: initial;
964
+ color: initial;
965
+ }
966
+
967
+ .afp-root .pptx-wrapper a,
968
+ .afp-root .pptx-preview-wrapper a {
969
+ color: initial;
970
+ text-decoration: initial;
971
+ }
972
+
973
+ .afp-root .pptx-wrapper h1,
974
+ .afp-root .pptx-wrapper h2,
975
+ .afp-root .pptx-wrapper h3,
976
+ .afp-root .pptx-wrapper h4,
977
+ .afp-root .pptx-wrapper h5,
978
+ .afp-root .pptx-wrapper h6,
979
+ .afp-root .pptx-preview-wrapper h1,
980
+ .afp-root .pptx-preview-wrapper h2,
981
+ .afp-root .pptx-preview-wrapper h3,
982
+ .afp-root .pptx-preview-wrapper h4,
983
+ .afp-root .pptx-preview-wrapper h5,
984
+ .afp-root .pptx-preview-wrapper h6 {
985
+ font-size: initial;
986
+ font-weight: initial;
987
+ }
988
+
989
+ /* 隐藏滚动条样式 */
990
+ .afp-root .scrollbar-hide {
991
+ -ms-overflow-style: none;
992
+ scrollbar-width: none;
993
+ }
994
+
995
+ .afp-root .scrollbar-hide::-webkit-scrollbar {
996
+ display: none;
997
+ }
998
+
999
+ /* x-data-spreadsheet 样式覆盖 */
1000
+ .afp-root .xlsx-spreadsheet-container {
1001
+ overflow: hidden;
1002
+ }
1003
+
1004
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet {
1005
+ width: 100% !important;
1006
+ height: 100% !important;
1007
+ }
1008
+
1009
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-sheet {
1010
+ overflow: hidden;
1011
+ }
1012
+
1013
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-menu > li:first-child > .x-spreadsheet-icon {
1014
+ display: none;
1015
+ }
1016
+
1017
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-menu > li {
1018
+ pointer-events: auto;
1019
+ }
1020
+
1021
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-menu {
1022
+ display: flex;
1023
+ width: 100%;
1024
+ overflow: visible;
1025
+ flex-wrap: nowrap;
1026
+ }
1027
+
1028
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-menu > li:first-child {
1029
+ order: 999;
1030
+ margin-left: auto;
1031
+ }
1032
+
1033
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar {
1034
+ padding: 0 8px;
1035
+ overflow: visible;
1036
+ }
1037
+
1038
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-dropdown.top-left .x-spreadsheet-dropdown-content {
1039
+ left: auto;
1040
+ right: 0;
1041
+ max-height: 240px;
1042
+ overflow-y: auto;
1043
+ }
1044
+
1045
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-contextmenu {
1046
+ display: none !important;
1047
+ }
1048
+
1049
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-scrollbar {
1050
+ background-color: rgba(0, 0, 0, 0.2);
1051
+ }
1052
+
1053
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-scrollbar.vertical > div,
1054
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-scrollbar.horizontal > div {
1055
+ background: rgba(255, 255, 255, 0.15);
1056
+ }
1057
+
1058
+ /* Light 主题 xlsx 滚动条 */
1059
+ .afp-root[data-theme="light"] .xlsx-spreadsheet-container .x-spreadsheet-scrollbar {
1060
+ background-color: rgba(0, 0, 0, 0.05);
1061
+ }
1062
+
1063
+ .afp-root[data-theme="light"] .xlsx-spreadsheet-container .x-spreadsheet-scrollbar.vertical > div,
1064
+ .afp-root[data-theme="light"] .xlsx-spreadsheet-container .x-spreadsheet-scrollbar.horizontal > div {
1065
+ background: rgba(0, 0, 0, 0.2);
1066
+ }
1067
+
1068
+ @media (max-width: 640px) {
1069
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar {
1070
+ padding: 0 4px;
1071
+ font-size: 12px;
1072
+ }
1073
+
1074
+ .afp-root .xlsx-spreadsheet-container .x-spreadsheet-bottombar .x-spreadsheet-menu > li {
1075
+ padding: 0 6px;
1076
+ font-size: 12px;
1077
+ min-width: 0;
1078
+ white-space: nowrap;
1079
+ }
1080
+ }
1081
+
1082
+ /* ============================================================
1083
+ * 语义化主题 token (CSS 变量) — 与 react-file-preview 同结构
1084
+ * 详见 packages/react-file-preview/src/index.css 顶部注释
1085
+ * ============================================================ */
1086
+
1087
+ .afp-root {
1088
+ /* 文字前景 */
1089
+ --fp-fg-primary: rgb(255 255 255 / 0.9);
1090
+ --fp-fg-secondary: rgb(255 255 255 / 0.75);
1091
+ --fp-fg-tertiary: rgb(255 255 255 / 0.6);
1092
+ --fp-fg-muted: rgb(255 255 255 / 0.4);
1093
+ --fp-fg-disabled: rgb(255 255 255 / 0.3);
1094
+ --fp-fg-inverse: rgb(23 23 23);
1095
+
1096
+ /* 表面背景层级 */
1097
+ --fp-surface-1: rgb(255 255 255 / 0.05);
1098
+ --fp-surface-2: rgb(255 255 255 / 0.1);
1099
+ --fp-surface-3: rgb(255 255 255 / 0.15);
1100
+ --fp-surface-toolbar: rgb(0 0 0 / 0.5);
1101
+ --fp-surface-overlay: rgb(0 0 0 / 0.8);
1102
+ --fp-surface-nav: rgb(0 0 0 / 0.4);
1103
+ --fp-surface-nav-hover: rgb(0 0 0 / 0.6);
1104
+
1105
+ /* 边框 / 分隔 */
1106
+ --fp-line-weak: rgb(255 255 255 / 0.08);
1107
+ --fp-line: rgb(255 255 255 / 0.1);
1108
+ --fp-line-strong: rgb(255 255 255 / 0.2);
1109
+ --fp-divide: rgb(255 255 255 / 0.1);
1110
+
1111
+ /* 品牌强调色 — Angular 官方 banner:红 → 品红 → 紫 */
1112
+ --fp-accent: rgb(241 7 18);
1113
+ --fp-accent-hover: rgb(234 5 96);
1114
+ --fp-accent-end: rgb(136 34 255);
1115
+ --fp-accent-soft: rgb(241 7 18 / 0.18);
1116
+ --fp-accent-gradient: linear-gradient(90deg, var(--fp-accent), var(--fp-accent-hover), var(--fp-accent-end));
1117
+
1118
+ /* 代码块(跟随主题切换) */
1119
+ --fp-code-bg: #1e1e1e;
1120
+ --fp-code-fg: rgb(255 255 255 / 0.85);
1121
+ --fp-code-header: rgb(255 255 255 / 0.08);
1122
+ --fp-media-bg: #000;
1123
+
1124
+ /* loading spinner */
1125
+ --fp-spinner-track: rgb(255 255 255 / 0.2);
1126
+ --fp-spinner-head: rgb(255 255 255 / 0.85);
1127
+ }
1128
+
1129
+ .afp-root[data-theme="light"] {
1130
+ --fp-fg-primary: rgb(23 23 23 / 0.9);
1131
+ --fp-fg-secondary: rgb(23 23 23 / 0.78);
1132
+ --fp-fg-tertiary: rgb(23 23 23 / 0.6);
1133
+ --fp-fg-muted: rgb(23 23 23 / 0.45);
1134
+ --fp-fg-disabled: rgb(23 23 23 / 0.3);
1135
+ --fp-fg-inverse: rgb(255 255 255);
1136
+
1137
+ --fp-surface-1: rgb(0 0 0 / 0.04);
1138
+ --fp-surface-2: rgb(0 0 0 / 0.06);
1139
+ --fp-surface-3: rgb(0 0 0 / 0.1);
1140
+ --fp-surface-toolbar: rgb(255 255 255 / 0.8);
1141
+ --fp-surface-overlay: rgb(255 255 255 / 0.6);
1142
+ --fp-surface-nav: rgb(255 255 255 / 0.7);
1143
+ --fp-surface-nav-hover: rgb(255 255 255 / 0.9);
1144
+
1145
+ --fp-line-weak: rgb(0 0 0 / 0.06);
1146
+ --fp-line: rgb(0 0 0 / 0.1);
1147
+ --fp-line-strong: rgb(0 0 0 / 0.18);
1148
+ --fp-divide: rgb(0 0 0 / 0.08);
1149
+
1150
+ --fp-spinner-track: rgb(0 0 0 / 0.1);
1151
+ --fp-spinner-head: rgb(23 23 23 / 0.85);
1152
+
1153
+ /* 代码块在 light 下取 GitHub Light 风格 */
1154
+ --fp-code-bg: #f6f8fa;
1155
+ --fp-code-fg: rgb(36 41 47 / 0.95);
1156
+ --fp-code-header: rgb(0 0 0 / 0.04);
1157
+ /* media-bg 仍保持 #000(视频/音频画布天然黑底,不切换) */
1158
+ }
1159
+
1160
+ /* Markdown 内容样式 — 全部走语义 token,主题切换由变量驱动 */
1161
+ .afp-root .markdown-body h1 {
1162
+ font-size: 1.875rem;
1163
+ font-weight: 600;
1164
+ margin: 1.5rem 0 1rem 0;
1165
+ color: var(--fp-fg-primary);
1166
+ }
1167
+ .afp-root .markdown-body h1:first-child { margin-top: 0; }
1168
+
1169
+ .afp-root .markdown-body h2 {
1170
+ font-size: 1.5rem;
1171
+ font-weight: 600;
1172
+ margin: 2rem 0 0.75rem 0;
1173
+ color: var(--fp-fg-primary);
1174
+ }
1175
+
1176
+ .afp-root .markdown-body h3 {
1177
+ font-size: 1.25rem;
1178
+ font-weight: 600;
1179
+ margin: 1.5rem 0 0.5rem 0;
1180
+ color: var(--fp-fg-primary);
1181
+ }
1182
+
1183
+ .afp-root .markdown-body h4 {
1184
+ font-size: 1.125rem;
1185
+ font-weight: 600;
1186
+ margin: 1rem 0 0.5rem 0;
1187
+ color: var(--fp-fg-primary);
1188
+ }
1189
+
1190
+ .afp-root .markdown-body p {
1191
+ color: var(--fp-fg-secondary);
1192
+ margin-bottom: 1rem;
1193
+ line-height: 1.75;
1194
+ }
1195
+
1196
+ .afp-root .markdown-body a {
1197
+ color: var(--fp-accent-hover);
1198
+ text-decoration: underline;
1199
+ text-decoration-color: var(--fp-accent);
1200
+ }
1201
+
1202
+ .afp-root .markdown-body a:hover {
1203
+ color: var(--fp-accent);
1204
+ }
1205
+
1206
+ .afp-root .markdown-body ul {
1207
+ list-style: disc;
1208
+ padding-left: 1.5rem;
1209
+ margin-bottom: 1rem;
1210
+ color: var(--fp-fg-secondary);
1211
+ }
1212
+
1213
+ .afp-root .markdown-body ol {
1214
+ list-style: decimal;
1215
+ padding-left: 1.5rem;
1216
+ margin-bottom: 1rem;
1217
+ color: var(--fp-fg-secondary);
1218
+ }
1219
+
1220
+ .afp-root .markdown-body li {
1221
+ line-height: 1.75;
1222
+ margin-bottom: 0.25rem;
1223
+ }
1224
+
1225
+ .afp-root .markdown-body blockquote {
1226
+ border-left: 4px solid var(--fp-line-strong);
1227
+ padding-left: 1rem;
1228
+ color: var(--fp-fg-tertiary);
1229
+ margin: 1rem 0;
1230
+ font-style: italic;
1231
+ }
1232
+
1233
+ .afp-root .markdown-body table {
1234
+ width: 100%;
1235
+ border-collapse: collapse;
1236
+ margin: 1rem 0;
1237
+ border: 1px solid var(--fp-line);
1238
+ border-radius: 0.375rem;
1239
+ overflow: hidden;
1240
+ }
1241
+
1242
+ .afp-root .markdown-body thead {
1243
+ background: var(--fp-surface-1);
1244
+ }
1245
+
1246
+ .afp-root .markdown-body th {
1247
+ padding: 0.75rem 1rem;
1248
+ text-align: left;
1249
+ font-size: 0.75rem;
1250
+ font-weight: 600;
1251
+ color: var(--fp-fg-tertiary);
1252
+ text-transform: uppercase;
1253
+ letter-spacing: 0.05em;
1254
+ border-bottom: 1px solid var(--fp-line);
1255
+ }
1256
+
1257
+ .afp-root .markdown-body td {
1258
+ padding: 0.75rem 1rem;
1259
+ font-size: 0.875rem;
1260
+ color: var(--fp-fg-secondary);
1261
+ border-bottom: 1px solid var(--fp-line-weak);
1262
+ }
1263
+
1264
+ .afp-root .markdown-body tbody tr:hover {
1265
+ background: var(--fp-surface-1);
1266
+ }
1267
+
1268
+ .afp-root .markdown-body hr {
1269
+ border-color: var(--fp-line);
1270
+ margin: 1.5rem 0;
1271
+ }
1272
+
1273
+ .afp-root .markdown-body img {
1274
+ border-radius: 0.375rem;
1275
+ max-width: 100%;
1276
+ height: auto;
1277
+ margin: 1rem auto;
1278
+ display: block;
1279
+ box-shadow: 0 1px 2px rgba(0,0,0,0.3);
1280
+ }
1281
+
1282
+ .afp-root .markdown-body strong {
1283
+ font-weight: 600;
1284
+ color: var(--fp-fg-primary);
1285
+ }
1286
+
1287
+ .afp-root .markdown-body em {
1288
+ font-style: italic;
1289
+ }
1290
+
1291
+ .afp-root .markdown-body del {
1292
+ text-decoration: line-through;
1293
+ color: var(--fp-fg-muted);
1294
+ }
1295
+
1296
+ .afp-root .markdown-body code:not(pre code) {
1297
+ background: var(--fp-surface-2);
1298
+ padding: 0.125rem 0.375rem;
1299
+ border-radius: 0.25rem;
1300
+ font-size: 0.875rem;
1301
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1302
+ color: var(--fp-fg-primary);
1303
+ border: 1px solid var(--fp-line);
1304
+ }
1305
+
1306
+ .afp-root .markdown-body pre {
1307
+ margin: 1rem 0;
1308
+ border-radius: 0.375rem;
1309
+ border: 1px solid var(--fp-line-weak);
1310
+ overflow: auto;
1311
+ position: relative;
1312
+ background-color: var(--fp-code-bg);
1313
+ }
1314
+
1315
+ .afp-root .markdown-body pre code {
1316
+ display: block;
1317
+ padding: 1rem;
1318
+ font-size: 0.8125rem;
1319
+ line-height: 1.5;
1320
+ overflow-x: auto;
1321
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1322
+ color: var(--fp-code-fg);
1323
+ }
1324
+
1325
+ .afp-root .markdown-body .code-block-wrapper {
1326
+ position: relative;
1327
+ margin: 1rem 0;
1328
+ }
1329
+
1330
+ .afp-root .markdown-body .code-block-header {
1331
+ display: flex;
1332
+ align-items: center;
1333
+ justify-content: space-between;
1334
+ padding: 0.375rem 1rem;
1335
+ background: var(--fp-code-header);
1336
+ border: 1px solid var(--fp-line-weak);
1337
+ border-bottom: 0;
1338
+ border-top-left-radius: 0.375rem;
1339
+ border-top-right-radius: 0.375rem;
1340
+ font-size: 0.75rem;
1341
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1342
+ }
1343
+
1344
+ .afp-root .markdown-body .code-block-header > span {
1345
+ /* header 在 light 主题下底色仍是 code-header (浅白半透明在浅底上显示),
1346
+ 为保证对比度,header 字色固定走 code-fg(亮色) */
1347
+ color: var(--fp-code-fg);
1348
+ -webkit-user-select: none;
1349
+ -moz-user-select: none;
1350
+ user-select: none;
1351
+ }
1352
+
1353
+ .afp-root .markdown-body .code-block-wrapper pre {
1354
+ margin: 0;
1355
+ border-top-left-radius: 0;
1356
+ border-top-right-radius: 0;
1357
+ border-top: 0;
1358
+ }
1359
+
1360
+ .afp-root .markdown-body .code-copy-btn {
1361
+ background: transparent;
1362
+ border: 0;
1363
+ padding: 0.25rem;
1364
+ color: var(--fp-code-fg);
1365
+ cursor: pointer;
1366
+ display: inline-flex;
1367
+ align-items: center;
1368
+ border-radius: 0.25rem;
1369
+ transition: all 0.15s ease;
1370
+ opacity: 0.6;
1371
+ }
1372
+
1373
+ .afp-root .markdown-body .code-copy-btn:hover {
1374
+ opacity: 1;
1375
+ background: var(--fp-surface-2);
1376
+ }
1377
+
1378
+ .afp-root .markdown-body .code-copy-float {
1379
+ position: absolute;
1380
+ top: 0.5rem;
1381
+ right: 0.5rem;
1382
+ opacity: 0;
1383
+ transition: opacity 0.15s ease;
1384
+ z-index: 2;
1385
+ background: var(--fp-surface-2);
1386
+ border: 1px solid var(--fp-line);
1387
+ }
1388
+
1389
+ .afp-root .markdown-body .code-block-wrapper:hover .code-copy-float {
1390
+ opacity: 0.85;
1391
+ }
1392
+
1393
+ /* ============================================================
1394
+ * 双列 Grid 行号布局(Text/Xml 渲染器使用)
1395
+ *
1396
+ * DOM 结构:
1397
+ * <div class="afp-code-block with-line-numbers [no-wrap]">
1398
+ * <span class="afp-code-gutter">1</span>
1399
+ * <span class="afp-code-line">...shiki HTML...</span>
1400
+ * <span class="afp-code-gutter">2</span>
1401
+ * <span class="afp-code-line">...</span>
1402
+ * ...
1403
+ * </div>
1404
+ *
1405
+ * 关键:
1406
+ * - Grid 两列:max-content(gutter) + 1fr(code)
1407
+ * - 同一逻辑行的 gutter 和 code 在同一 grid row → 高度自动同步
1408
+ * - border-right 画在每个 gutter cell 上,行间无 gap → 连续贯穿
1409
+ * ============================================================ */
1410
+
1411
+ .afp-root .afp-code-block {
1412
+ background: var(--fp-code-bg);
1413
+ color: var(--fp-code-fg);
1414
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1415
+ font-size: 0.875rem;
1416
+ line-height: 1.5;
1417
+ overflow: auto;
1418
+ }
1419
+
1420
+ .afp-root .afp-code-block.with-line-numbers {
1421
+ display: grid;
1422
+ grid-template-columns: max-content minmax(20ch, 1fr);
1423
+ align-content: start;
1424
+ min-height: 100%;
1425
+ }
1426
+
1427
+ .afp-root .afp-code-block.with-line-numbers.no-wrap {
1428
+ grid-template-columns: max-content max-content;
1429
+ }
1430
+
1431
+ .afp-root .afp-code-block.with-line-numbers > .afp-code-gutter {
1432
+ padding-left: 1em;
1433
+ padding-right: 1em;
1434
+ text-align: right;
1435
+ border-right: 1px solid var(--fp-line);
1436
+ color: var(--fp-fg-disabled);
1437
+ -webkit-user-select: none;
1438
+ -moz-user-select: none;
1439
+ user-select: none;
1440
+ white-space: nowrap;
1441
+ min-width: 3.5em;
1442
+ }
1443
+
1444
+ /* 占位行:撑满剩余高度,让 gutter border 延伸到底部 */
1445
+ .afp-root .afp-code-block.with-line-numbers > .afp-code-gutter-filler {
1446
+ border-right: 1px solid var(--fp-line);
1447
+ min-height: 1.5rem;
1448
+ }
1449
+
1450
+ .afp-root .afp-code-block.with-line-numbers > .afp-code-line-filler {
1451
+ min-height: 1.5rem;
1452
+ }
1453
+
1454
+ .afp-root .afp-code-block.with-line-numbers > .afp-code-line {
1455
+ padding-left: 1em;
1456
+ padding-right: 1em;
1457
+ white-space: pre-wrap;
1458
+ word-break: break-word;
1459
+ overflow-wrap: break-word;
1460
+ min-height: 1.5em;
1461
+ min-width: 0;
1462
+ }
1463
+
1464
+ .afp-root .afp-code-block.with-line-numbers.no-wrap > .afp-code-line {
1465
+ white-space: pre;
1466
+ word-break: normal;
1467
+ overflow-wrap: normal;
1468
+ }
1469
+
1470
+ /* 首行:上 padding;占位 filler 提供底部呼吸 */
1471
+ .afp-root .afp-code-block.with-line-numbers > :nth-child(-n+2) {
1472
+ padding-top: 1.5rem;
1473
+ }
1474
+
1475
+ /* ============================================================
1476
+ * PDF / Docx 容器响应式 padding(容器宽度 < 794px 时逐渐减小)
1477
+ * ============================================================ */
1478
+
1479
+ .afp-root .afp-docx-container,
1480
+ .afp-root .afp-pdf-container {
1481
+ container-type: inline-size;
1482
+ /* 使用 clamp 实现平滑过渡:最小0,最大1.5rem,中间线性变化 */
1483
+ padding-top: clamp(0rem, calc((100cqw - 794px) / 100 * 1.5), 1.5rem);
1484
+ padding-bottom: clamp(0rem, calc((100cqw - 794px) / 100 * 1.5), 1.5rem);
1485
+ padding-left: clamp(0rem, calc((100cqw - 794px) / 100 * 1), 1rem);
1486
+ padding-right: clamp(0rem, calc((100cqw - 794px) / 100 * 1), 1rem);
1487
+ }
1488
+
1489
+ /* PDF 页面占位符:实际比例由 PDF 页面渲染时动态设置,不能写死为 A4 竖版 */
1490
+ .afp-root .afp-pdf-page-placeholder {
1491
+ width: 100%;
1492
+ max-width: 1200px;
1493
+ min-height: 400px;
1494
+ }
1495
+
1496
+ /* 降级方案:如果浏览器不支持 container queries,使用媒体查询分段 */
1497
+ @supports not (container-type: inline-size) {
1498
+ .afp-root .afp-docx-container,
1499
+ .afp-root .afp-pdf-container {
1500
+ padding: 1.5rem 1rem;
1501
+ }
1502
+
1503
+ @media (max-width: 893px) {
1504
+ .afp-root .afp-docx-container,
1505
+ .afp-root .afp-pdf-container {
1506
+ padding: 1rem 0.5rem;
1507
+ }
1508
+ }
1509
+
1510
+ @media (max-width: 794px) {
1511
+ .afp-root .afp-docx-container,
1512
+ .afp-root .afp-pdf-container {
1513
+ padding: 0;
1514
+ }
1515
+ }
1516
+ }
1517
+
1518
+ /* ============================================================
1519
+ * Legacy Office (.doc / .ppt)
1520
+ * ============================================================ */
1521
+
1522
+ .afp-root .afp-legacy-doc-paper {
1523
+ width: 100%;
1524
+ max-width: 794px;
1525
+ background: #fff;
1526
+ box-shadow: 0 4px 6px rgb(0 0 0 / 0.07), 0 10px 20px rgb(0 0 0 / 0.10);
1527
+ padding: 48px 56px 56px;
1528
+ line-height: 1.55;
1529
+ }
1530
+
1531
+ .afp-root .legacy-doc__title {
1532
+ margin: 0 0 1.15rem;
1533
+ font-weight: 700;
1534
+ line-height: 1.25;
1535
+ letter-spacing: -0.015em;
1536
+ }
1537
+
1538
+ .afp-root .legacy-doc__heading {
1539
+ margin: 1.6rem 0 0.65rem;
1540
+ font-weight: 700;
1541
+ line-height: 1.35;
1542
+ }
1543
+
1544
+ .afp-root .legacy-doc__p {
1545
+ margin: 0 0 0.9rem;
1546
+ white-space: pre-wrap;
1547
+ word-break: break-word;
1548
+ }
1549
+
1550
+ .afp-root .legacy-doc__p strong,
1551
+ .afp-root .legacy-doc__list strong {
1552
+ font-weight: 700;
1553
+ }
1554
+
1555
+ .afp-root .legacy-doc__link {
1556
+ color: var(--doc-link);
1557
+ text-decoration: underline;
1558
+ text-underline-offset: 2px;
1559
+ word-break: break-word;
1560
+ }
1561
+
1562
+ .afp-root .legacy-doc__list {
1563
+ margin: 0 0 1.15rem;
1564
+ padding-left: 1.5rem;
1565
+ }
1566
+
1567
+ .afp-root .legacy-doc__list--toc {
1568
+ list-style: decimal;
1569
+ padding-left: 1.75rem;
1570
+ display: flex;
1571
+ flex-direction: column;
1572
+ gap: 0.35rem;
1573
+ }
1574
+
1575
+ .afp-root .legacy-doc__list--disc {
1576
+ list-style: disc;
1577
+ display: flex;
1578
+ flex-direction: column;
1579
+ gap: 0.4rem;
1580
+ }
1581
+
1582
+ .afp-root .legacy-doc__list--emoji {
1583
+ list-style: none;
1584
+ margin: 0.35rem 0 1.15rem;
1585
+ padding: 0;
1586
+ display: flex;
1587
+ flex-direction: column;
1588
+ gap: 0.55rem;
1589
+ }
1590
+
1591
+ .afp-root .legacy-doc__emoji-item {
1592
+ display: grid;
1593
+ grid-template-columns: 1.6rem minmax(0, 1fr);
1594
+ -moz-column-gap: 0.55rem;
1595
+ column-gap: 0.55rem;
1596
+ align-items: start;
1597
+ }
1598
+
1599
+ .afp-root .legacy-doc__table-wrap {
1600
+ margin: 0.65rem 0 1.4rem;
1601
+ overflow-x: auto;
1602
+ border: 1px solid #e5e7eb;
1603
+ border-radius: 8px;
1604
+ }
1605
+
1606
+ .afp-root .legacy-doc__table {
1607
+ width: 100%;
1608
+ border-collapse: collapse;
1609
+ }
1610
+
1611
+ .afp-root .legacy-doc__table th,
1612
+ .afp-root .legacy-doc__table td {
1613
+ padding: 10px 14px;
1614
+ text-align: left;
1615
+ vertical-align: top;
1616
+ border-bottom: 1px solid #eef2f7;
1617
+ }
1618
+
1619
+ .afp-root .legacy-doc__table th {
1620
+ background: #f5f7fa;
1621
+ font-weight: 700;
1622
+ }
1623
+
1624
+ .afp-root .ooxml-doc__title,
1625
+ .afp-root .afp-docx-container h1.ooxml-doc__title {
1626
+ margin: 0 0 1.15rem;
1627
+ line-height: 1.25;
1628
+ font-family: var(--docx-title-font, var(--docx-heading-font, var(--docx-font)));
1629
+ font-size: var(--docx-title-size);
1630
+ color: var(--docx-title-color, var(--docx-color));
1631
+ font-weight: 700;
1632
+ }
1633
+
1634
+ .afp-root .ooxml-doc__heading,
1635
+ .afp-root .afp-docx-container h1,
1636
+ .afp-root .afp-docx-container h2,
1637
+ .afp-root .afp-docx-container h3 {
1638
+ margin: 1.6rem 0 0.65rem;
1639
+ line-height: 1.35;
1640
+ font-family: var(--docx-heading-font, var(--docx-font));
1641
+ font-weight: 700;
1642
+ }
1643
+
1644
+ .afp-root .afp-docx-container h1,
1645
+ .afp-root .ooxml-doc__heading--h1 {
1646
+ font-size: var(--docx-h1-size);
1647
+ color: var(--docx-color);
1648
+ }
1649
+
1650
+ .afp-root .afp-docx-container h2,
1651
+ .afp-root .ooxml-doc__heading--h2 {
1652
+ font-size: var(--docx-h2-size);
1653
+ color: var(--docx-color);
1654
+ }
1655
+
1656
+ .afp-root .afp-docx-container h3,
1657
+ .afp-root .ooxml-doc__heading--h3 {
1658
+ font-size: var(--docx-h3-size);
1659
+ color: var(--docx-h3-color, var(--docx-color));
1660
+ }
1661
+
1662
+ .afp-root .ooxml-doc__p,
1663
+ .afp-root .afp-docx-container p {
1664
+ margin: 0 0 0.9rem;
1665
+ white-space: pre-wrap;
1666
+ word-break: break-word;
1667
+ }
1668
+
1669
+ .afp-root .ooxml-doc__link,
1670
+ .afp-root .afp-docx-container a {
1671
+ color: var(--docx-link);
1672
+ text-decoration: underline;
1673
+ text-underline-offset: 2px;
1674
+ word-break: break-word;
1675
+ }
1676
+
1677
+ .afp-root .ooxml-doc__list,
1678
+ .afp-root .afp-docx-container ul,
1679
+ .afp-root .afp-docx-container ol {
1680
+ margin: 0 0 1.15rem;
1681
+ padding-left: 1.5rem;
1682
+ }
1683
+
1684
+ .afp-root .ooxml-doc__list--disc,
1685
+ .afp-root .afp-docx-container ul {
1686
+ list-style: disc;
1687
+ }
1688
+
1689
+ .afp-root .ooxml-doc__list--ordered,
1690
+ .afp-root .afp-docx-container ol {
1691
+ list-style: decimal;
1692
+ }
1693
+
1694
+ .afp-root .ooxml-doc__table-wrap,
1695
+ .afp-root .afp-docx-container table {
1696
+ margin: 0.65rem 0 1.4rem;
1697
+ }
1698
+
1699
+ .afp-root .ooxml-doc__table,
1700
+ .afp-root .afp-docx-container table {
1701
+ width: 100%;
1702
+ border-collapse: collapse;
1703
+ }
1704
+
1705
+ .afp-root .ooxml-doc__table th,
1706
+ .afp-root .ooxml-doc__table td,
1707
+ .afp-root .afp-docx-container th,
1708
+ .afp-root .afp-docx-container td {
1709
+ padding: 6px 10px;
1710
+ text-align: left;
1711
+ vertical-align: top;
1712
+ border: 1px solid currentColor;
1713
+ }
1714
+
1715
+ .afp-root .ooxml-doc__img,
1716
+ .afp-root .afp-docx-container img {
1717
+ max-width: 100%;
1718
+ height: auto;
1719
+ }
1720
+
1721
+ .afp-root .afp-legacy-ppt-wrap {
1722
+ width: 100%;
1723
+ max-width: 72rem;
1724
+ margin: 0 auto;
1725
+ }
1726
+
1727
+ .afp-root .legacy-ppt {
1728
+ --ppt-ratio: 4 / 3;
1729
+ display: flex;
1730
+ flex-direction: column;
1731
+ gap: 1.25rem;
1732
+ font-family: var(--ppt-font);
1733
+ }
1734
+
1735
+ .afp-root .legacy-ppt__slide {
1736
+ container-type: inline-size;
1737
+ container-name: ppt-slide;
1738
+ position: relative;
1739
+ border-radius: 0.75rem;
1740
+ overflow: hidden;
1741
+ background: var(--ppt-bg, var(--ppt-surface));
1742
+ box-shadow: 0 1px 2px rgb(16 24 40 / 0.06), 0 10px 28px rgb(16 24 40 / 0.1);
1743
+ }
1744
+
1745
+ .afp-root .legacy-ppt__viewport {
1746
+ width: 100%;
1747
+ aspect-ratio: var(--ppt-ratio, 4 / 3);
1748
+ position: relative;
1749
+ overflow: hidden;
1750
+ }
1751
+
1752
+ .afp-root .legacy-ppt__canvas {
1753
+ position: absolute;
1754
+ inset: 0;
1755
+ width: 100%;
1756
+ height: 100%;
1757
+ background: var(--ppt-bg, var(--ppt-surface));
1758
+ display: flex;
1759
+ align-items: stretch;
1760
+ }
1761
+
1762
+ .afp-root .legacy-ppt__slide--positioned .legacy-ppt__canvas {
1763
+ display: block;
1764
+ }
1765
+
1766
+ .afp-root .legacy-ppt__frame { display: none; pointer-events: none; }
1767
+
1768
+ .afp-root .legacy-ppt__content {
1769
+ position: relative;
1770
+ z-index: 1;
1771
+ flex: 1;
1772
+ min-width: 0;
1773
+ min-height: 0;
1774
+ padding: 5.2cqi 6cqi 4.2cqi;
1775
+ display: flex;
1776
+ flex-direction: column;
1777
+ gap: 1.4cqi;
1778
+ overflow: hidden;
1779
+ box-sizing: border-box;
1780
+ }
1781
+
1782
+ .afp-root .legacy-ppt__shape {
1783
+ position: absolute;
1784
+ box-sizing: border-box;
1785
+ overflow: hidden;
1786
+ display: flex;
1787
+ flex-direction: column;
1788
+ z-index: 1;
1789
+ }
1790
+
1791
+ .afp-root .legacy-ppt__shape--image { z-index: 0; }
1792
+
1793
+ .afp-root .legacy-ppt__shape--center {
1794
+ align-items: center;
1795
+ text-align: center;
1796
+ }
1797
+
1798
+ .afp-root .legacy-ppt__shape--title {
1799
+ overflow: visible;
1800
+ font-weight: 700;
1801
+ line-height: 1.12;
1802
+ justify-content: flex-start;
1803
+ z-index: 2;
1804
+ }
1805
+
1806
+ .afp-root .legacy-ppt__shape--subtitle {
1807
+ font-weight: 600;
1808
+ line-height: 1.25;
1809
+ justify-content: center;
1810
+ }
1811
+
1812
+ .afp-root .legacy-ppt__shape--body {
1813
+ line-height: 1.32;
1814
+ }
1815
+
1816
+ .afp-root .legacy-ppt__shape--meta {
1817
+ line-height: 1.2;
1818
+ }
1819
+
1820
+ .afp-root .legacy-ppt__shape .legacy-ppt__title,
1821
+ .afp-root .legacy-ppt__shape .legacy-ppt__subtitle,
1822
+ .afp-root .legacy-ppt__shape .legacy-ppt__meta,
1823
+ .afp-root .legacy-ppt__shape .legacy-ppt__text,
1824
+ .afp-root .legacy-ppt__shape .legacy-ppt__list,
1825
+ .afp-root .legacy-ppt__shape .legacy-ppt__kicker {
1826
+ margin: 0;
1827
+ font-size: inherit;
1828
+ font-weight: inherit;
1829
+ color: inherit;
1830
+ line-height: inherit;
1831
+ }
1832
+
1833
+ .afp-root .legacy-ppt__slide--hero .legacy-ppt__canvas,
1834
+ .afp-root .legacy-ppt__slide--section .legacy-ppt__canvas {
1835
+ background: var(--ppt-brand);
1836
+ }
1837
+
1838
+ .afp-root .legacy-ppt__slide--positioned.legacy-ppt__slide--hero .legacy-ppt__canvas,
1839
+ .afp-root .legacy-ppt__slide--positioned.legacy-ppt__slide--section .legacy-ppt__canvas {
1840
+ background: var(--ppt-bg, var(--ppt-surface));
1841
+ }
1842
+
1843
+ .afp-root .legacy-ppt__slide--hero .legacy-ppt__frame {
1844
+ display: block;
1845
+ position: absolute;
1846
+ inset: 7%;
1847
+ border: 0.25cqi solid var(--ppt-on-brand);
1848
+ z-index: 0;
1849
+ }
1850
+
1851
+ .afp-root .legacy-ppt__slide--hero .legacy-ppt__content,
1852
+ .afp-root .legacy-ppt__slide--section .legacy-ppt__content {
1853
+ justify-content: center;
1854
+ align-items: center;
1855
+ text-align: center;
1856
+ }
1857
+
1858
+ .afp-root .legacy-ppt__slide--hero:not(.legacy-ppt__slide--positioned) .legacy-ppt__title,
1859
+ .afp-root .legacy-ppt__slide--section:not(.legacy-ppt__slide--positioned) .legacy-ppt__title {
1860
+ color: var(--ppt-on-brand);
1861
+ font-family: var(--ppt-title-font, var(--ppt-font));
1862
+ font-size: var(--ppt-title-size);
1863
+ font-weight: 700;
1864
+ line-height: 1.08;
1865
+ margin: 0;
1866
+ }
1867
+
1868
+ .afp-root .legacy-ppt__slide--hero:not(.legacy-ppt__slide--positioned) .legacy-ppt__subtitle {
1869
+ position: absolute;
1870
+ left: 0;
1871
+ right: 0;
1872
+ bottom: 11%;
1873
+ margin: 0;
1874
+ color: var(--ppt-on-brand);
1875
+ font-family: var(--ppt-body-font, var(--ppt-font));
1876
+ font-size: var(--ppt-body-size);
1877
+ font-weight: 600;
1878
+ }
1879
+
1880
+ .afp-root .legacy-ppt__slide--content:not(.legacy-ppt__slide--positioned) .legacy-ppt__title,
1881
+ .afp-root .legacy-ppt__slide--image:not(.legacy-ppt__slide--positioned) .legacy-ppt__title,
1882
+ .afp-root .legacy-ppt__slide--table:not(.legacy-ppt__slide--positioned) .legacy-ppt__title {
1883
+ color: var(--ppt-title);
1884
+ font-family: var(--ppt-title-font, var(--ppt-font));
1885
+ font-size: var(--ppt-title-size);
1886
+ font-weight: 700;
1887
+ line-height: 1.15;
1888
+ margin: 0;
1889
+ flex: 0 0 auto;
1890
+ }
1891
+
1892
+ .afp-root .legacy-ppt__subtitle,
1893
+ .afp-root .legacy-ppt__meta {
1894
+ margin: 0;
1895
+ }
1896
+
1897
+ .afp-root .legacy-ppt__slide:not(.legacy-ppt__slide--positioned) .legacy-ppt__subtitle,
1898
+ .afp-root .legacy-ppt__slide:not(.legacy-ppt__slide--positioned) .legacy-ppt__meta,
1899
+ .afp-root .legacy-ppt__slide:not(.legacy-ppt__slide--positioned) .legacy-ppt__kicker,
1900
+ .afp-root .legacy-ppt__slide:not(.legacy-ppt__slide--positioned) .legacy-ppt__text,
1901
+ .afp-root .legacy-ppt__slide:not(.legacy-ppt__slide--positioned) .legacy-ppt__list {
1902
+ color: var(--ppt-body);
1903
+ }
1904
+
1905
+ .afp-root .legacy-ppt__text {
1906
+ margin: 0;
1907
+ font-size: var(--ppt-body-size);
1908
+ line-height: 1.42;
1909
+ white-space: pre-wrap;
1910
+ word-break: break-word;
1911
+ }
1912
+
1913
+ .afp-root .legacy-ppt__list {
1914
+ margin: 0;
1915
+ padding-left: 1.15em;
1916
+ font-size: inherit;
1917
+ display: flex;
1918
+ flex-direction: column;
1919
+ gap: 0.18em;
1920
+ height: 100%;
1921
+ }
1922
+
1923
+ .afp-root .legacy-ppt__list li::marker { color: inherit; }
1924
+ .afp-root .legacy-ppt__shape--shadow {
1925
+ text-shadow: 0.1em 0.1em 0.16em rgb(0 0 0 / 0.55);
1926
+ }
1927
+ .afp-root .legacy-ppt__list li[data-lvl="1"] { padding-left: 1.2em; list-style-type: circle; }
1928
+ .afp-root .legacy-ppt__list li[data-lvl="2"] { padding-left: 2.4em; list-style-type: square; }
1929
+ .afp-root .legacy-ppt__list li[data-lvl="3"],
1930
+ .afp-root .legacy-ppt__list li[data-lvl="4"] { padding-left: 3.6em; }
1931
+ .afp-root .legacy-ppt__list li.legacy-ppt__li--gap {
1932
+ list-style: none;
1933
+ flex: 1 1 auto;
1934
+ min-height: 0.35em;
1935
+ visibility: hidden;
1936
+ }
1937
+
1938
+ .afp-root .legacy-ppt__shape--wash .legacy-ppt__image {
1939
+ opacity: 0.28;
1940
+ }
1941
+
1942
+ .afp-root .legacy-ppt__media {
1943
+ flex: 1 1 auto;
1944
+ min-height: 0;
1945
+ display: flex;
1946
+ align-items: center;
1947
+ justify-content: center;
1948
+ }
1949
+
1950
+ .afp-root .legacy-ppt__image {
1951
+ max-width: 100%;
1952
+ max-height: 100%;
1953
+ width: auto;
1954
+ height: auto;
1955
+ -o-object-fit: contain;
1956
+ object-fit: contain;
1957
+ }
1958
+
1959
+ .afp-root .legacy-ppt__shape--image .legacy-ppt__image {
1960
+ width: 100%;
1961
+ height: 100%;
1962
+ -o-object-fit: fill;
1963
+ object-fit: fill;
1964
+ }
1965
+
1966
+ .afp-root .legacy-ppt__gallery {
1967
+ display: grid;
1968
+ gap: 1.2cqi;
1969
+ width: 100%;
1970
+ height: 100%;
1971
+ }
1972
+
1973
+ .afp-root .legacy-ppt__gallery--2,
1974
+ .afp-root .legacy-ppt__gallery--3,
1975
+ .afp-root .legacy-ppt__gallery--4 {
1976
+ grid-template-columns: 1fr 1fr;
1977
+ }
1978
+
1979
+ .afp-root .legacy-ppt__shape--table .legacy-ppt__table-wrap,
1980
+ .afp-root .legacy-ppt__table-wrap {
1981
+ flex: 1 1 auto;
1982
+ min-height: 0;
1983
+ width: 100%;
1984
+ height: 100%;
1985
+ display: flex;
1986
+ }
1987
+
1988
+ .afp-root .legacy-ppt__table {
1989
+ width: 100%;
1990
+ height: 100%;
1991
+ border-collapse: collapse;
1992
+ table-layout: fixed;
1993
+ font-size: 1.55cqi;
1994
+ }
1995
+
1996
+ .afp-root .legacy-ppt__shape--table .legacy-ppt__table {
1997
+ font-size: min(6.2cqh, 2.3cqi);
1998
+ }
1999
+
2000
+ .afp-root .legacy-ppt__table th,
2001
+ .afp-root .legacy-ppt__table td {
2002
+ border: 0.12cqi solid color-mix(in srgb, var(--ppt-body) 22%, transparent);
2003
+ padding: 0.7cqi 0.9cqi;
2004
+ text-align: center;
2005
+ vertical-align: middle;
2006
+ overflow: hidden;
2007
+ text-overflow: ellipsis;
2008
+ color: var(--ppt-body);
2009
+ }
2010
+
2011
+ .afp-root .legacy-ppt__table th {
2012
+ background: var(--ppt-brand);
2013
+ color: var(--ppt-on-brand);
2014
+ font-weight: 700;
2015
+ }
2016
+
2017
+ .afp-root .legacy-ppt__table tbody tr:nth-child(even) td {
2018
+ background: color-mix(in srgb, var(--ppt-brand) 9%, var(--ppt-surface));
2019
+ }
2020
+
2021
+ @media (max-width: 768px) {
2022
+ .afp-root .afp-legacy-doc-paper {
2023
+ padding: 28px 20px 36px;
2024
+ }
2025
+ }
2026
+
2027
+ .afp-root .hover\:afp-bg-surface-2:hover {
2028
+ background-color: var(--fp-surface-2);
2029
+ }
2030
+
2031
+ .afp-root .hover\:afp-bg-surface-3:hover {
2032
+ background-color: var(--fp-surface-3);
2033
+ }
2034
+
2035
+ .afp-root .hover\:afp-bg-surface-nav-hover:hover {
2036
+ background-color: var(--fp-surface-nav-hover);
2037
+ }
2038
+
2039
+ .afp-root .hover\:afp-text-fg-primary:hover {
2040
+ color: var(--fp-fg-primary);
2041
+ }
2042
+
2043
+ .afp-root .hover\:afp-text-fg-secondary:hover {
2044
+ color: var(--fp-fg-secondary);
2045
+ }
2046
+
2047
+ .afp-root .focus\:afp-border-line-strong:focus {
2048
+ border-color: var(--fp-line-strong);
2049
+ }
2050
+
2051
+ .afp-root .focus\:afp-outline-none:focus {
2052
+ outline: 2px solid transparent;
2053
+ outline-offset: 2px;
2054
+ }
2055
+
2056
+ .afp-root .disabled\:afp-cursor-not-allowed:disabled {
2057
+ cursor: not-allowed;
2058
+ }
2059
+
2060
+ .afp-root .disabled\:afp-opacity-40:disabled {
2061
+ opacity: 0.4;
2062
+ }
2063
+
2064
+ @media (min-width: 768px) {
2065
+ .afp-root .md\:afp-left-4 {
2066
+ left: 1rem;
2067
+ }
2068
+ .afp-root .md\:afp-right-4 {
2069
+ right: 1rem;
2070
+ }
2071
+ .afp-root .md\:afp-mr-3 {
2072
+ margin-right: 0.75rem;
2073
+ }
2074
+ .afp-root .md\:afp-block {
2075
+ display: block;
2076
+ }
2077
+ .afp-root .md\:afp-flex {
2078
+ display: flex;
2079
+ }
2080
+ .afp-root .md\:afp-hidden {
2081
+ display: none;
2082
+ }
2083
+ .afp-root .md\:afp-h-12 {
2084
+ height: 3rem;
2085
+ }
2086
+ .afp-root .md\:afp-h-6 {
2087
+ height: 1.5rem;
2088
+ }
2089
+ .afp-root .md\:afp-h-full {
2090
+ height: 100%;
2091
+ }
2092
+ .afp-root .md\:afp-max-h-none {
2093
+ max-height: none;
2094
+ }
2095
+ .afp-root .md\:afp-w-12 {
2096
+ width: 3rem;
2097
+ }
2098
+ .afp-root .md\:afp-w-6 {
2099
+ width: 1.5rem;
2100
+ }
2101
+ .afp-root .md\:afp-max-w-6xl {
2102
+ max-width: 72rem;
2103
+ }
2104
+ .afp-root .md\:afp-flex-row {
2105
+ flex-direction: row;
2106
+ }
2107
+ .afp-root .md\:afp-px-5 {
2108
+ padding-left: 1.25rem;
2109
+ padding-right: 1.25rem;
2110
+ }
2111
+ .afp-root .md\:afp-py-2\.5 {
2112
+ padding-top: 0.625rem;
2113
+ padding-bottom: 0.625rem;
2114
+ }
2115
+ .afp-root .md\:afp-text-sm {
2116
+ font-size: 0.875rem;
2117
+ line-height: 1.25rem;
2118
+ }
2119
+ }