@jc-times/business-ui 0.2.43

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 (154) hide show
  1. package/AGENTS.md +6 -0
  2. package/CHANGELOG.md +267 -0
  3. package/README.md +55 -0
  4. package/THIRD_PARTY_NOTICES.md +29 -0
  5. package/bin/business-ui-gate.mjs +171 -0
  6. package/dist/Alert.js +47 -0
  7. package/dist/AsyncDirectoryPicker.js +134 -0
  8. package/dist/AsyncSearchPicker.js +155 -0
  9. package/dist/AutoComplete.js +34 -0
  10. package/dist/Badge.js +14 -0
  11. package/dist/Button.js +54 -0
  12. package/dist/Cascader.js +141 -0
  13. package/dist/Combobox.js +106 -0
  14. package/dist/ConfirmDialog.js +48 -0
  15. package/dist/DataTableHorizontalScrollbar.js +38 -0
  16. package/dist/DataTableIcons.js +37 -0
  17. package/dist/DataTableMergedRows.js +45 -0
  18. package/dist/DataTableTheme.js +135 -0
  19. package/dist/DateInput.js +223 -0
  20. package/dist/DropdownMenu.js +130 -0
  21. package/dist/EmptyState.js +27 -0
  22. package/dist/ExplainableButton.js +68 -0
  23. package/dist/FileDropzone.js +70 -0
  24. package/dist/FilePreparationDialog.js +33 -0
  25. package/dist/FloatingControls.js +120 -0
  26. package/dist/FormField.js +143 -0
  27. package/dist/MetricCard.js +38 -0
  28. package/dist/ModalShell.js +139 -0
  29. package/dist/MultiSelect.js +137 -0
  30. package/dist/NumericInput.js +97 -0
  31. package/dist/OverlayContainer.js +9 -0
  32. package/dist/PageHeader.js +36 -0
  33. package/dist/Pagination.js +115 -0
  34. package/dist/PreparedFileDropzone.js +30 -0
  35. package/dist/RecoverableAsyncState.js +35 -0
  36. package/dist/RovingTabs.js +54 -0
  37. package/dist/SectionCard.js +35 -0
  38. package/dist/SegmentedControl.js +46 -0
  39. package/dist/Select.js +73 -0
  40. package/dist/Skeleton.js +25 -0
  41. package/dist/SortableList.js +55 -0
  42. package/dist/StructuredAddressInput.js +157 -0
  43. package/dist/Toast.js +100 -0
  44. package/dist/ToggleSwitch.js +34 -0
  45. package/dist/TreeSelect.js +444 -0
  46. package/dist/amount-format.js +20 -0
  47. package/dist/business-ui.js +44 -0
  48. package/dist/chinese-address-regions.js +15 -0
  49. package/dist/classNames.js +6 -0
  50. package/dist/data-table.js +257 -0
  51. package/dist/document-render-budget.js +22 -0
  52. package/dist/document-viewer/ContinuousPdfViewer.js +145 -0
  53. package/dist/document-viewer/DocumentViewer.js +123 -0
  54. package/dist/document-viewer/DocumentViewerViewport.js +36 -0
  55. package/dist/document-viewer/ImagePage.js +39 -0
  56. package/dist/document-viewer/PdfCanvasPage.js +26 -0
  57. package/dist/document-viewer/PdfThumbnailRail.js +116 -0
  58. package/dist/document-viewer/PdfToolbar.js +61 -0
  59. package/dist/document-viewer/PdfWorkspace.js +42 -0
  60. package/dist/document-viewer/pdf-render-budget.js +7 -0
  61. package/dist/document-viewer/usePdfCanvas.js +69 -0
  62. package/dist/document-viewer/usePdfViewport.js +48 -0
  63. package/dist/document-viewer-v2/DocumentViewerV2.js +171 -0
  64. package/dist/document-viewer-v2/HeadlessPdfViewer.js +420 -0
  65. package/dist/document-viewer-v2/HeadlessSearch.js +66 -0
  66. package/dist/document-viewer-v2.js +13 -0
  67. package/dist/document-viewer.js +12 -0
  68. package/dist/pdfium-viewer.js +18 -0
  69. package/dist/styles.css +2 -0
  70. package/dist/types/Alert.d.ts +11 -0
  71. package/dist/types/AmountFormat.d.ts +15 -0
  72. package/dist/types/AsyncDirectoryPicker.d.ts +32 -0
  73. package/dist/types/AsyncSearchPicker.d.ts +26 -0
  74. package/dist/types/AutoComplete.d.ts +9 -0
  75. package/dist/types/Badge.d.ts +13 -0
  76. package/dist/types/Button.d.ts +36 -0
  77. package/dist/types/Cascader.d.ts +57 -0
  78. package/dist/types/ChineseAddressRegions.d.ts +4 -0
  79. package/dist/types/Combobox.d.ts +37 -0
  80. package/dist/types/ConfirmDialog.d.ts +20 -0
  81. package/dist/types/DataTable.d.ts +68 -0
  82. package/dist/types/DataTableHorizontalScrollbar.d.ts +8 -0
  83. package/dist/types/DataTableIcons.d.ts +19 -0
  84. package/dist/types/DataTableMergedRows.d.ts +11 -0
  85. package/dist/types/DataTableTheme.d.ts +4 -0
  86. package/dist/types/DateInput.d.ts +25 -0
  87. package/dist/types/DocumentRenderBudget.d.ts +9 -0
  88. package/dist/types/DocumentViewer.d.ts +11 -0
  89. package/dist/types/DocumentViewerV2.d.ts +10 -0
  90. package/dist/types/DropdownMenu.d.ts +73 -0
  91. package/dist/types/EmptyState.d.ts +9 -0
  92. package/dist/types/ExplainableButton.d.ts +7 -0
  93. package/dist/types/FileDropzone.d.ts +20 -0
  94. package/dist/types/FilePreparationDialog.d.ts +12 -0
  95. package/dist/types/FloatingControls.d.ts +39 -0
  96. package/dist/types/FormField.d.ts +35 -0
  97. package/dist/types/MetricCard.d.ts +17 -0
  98. package/dist/types/ModalShell.d.ts +33 -0
  99. package/dist/types/MultiSelect.d.ts +12 -0
  100. package/dist/types/NumericInput.d.ts +54 -0
  101. package/dist/types/OverlayContainer.d.ts +2 -0
  102. package/dist/types/PageHeader.d.ts +23 -0
  103. package/dist/types/Pagination.d.ts +14 -0
  104. package/dist/types/PdfiumViewer.d.ts +5 -0
  105. package/dist/types/PreparedFileDropzone.d.ts +7 -0
  106. package/dist/types/RecoverableAsyncState.d.ts +11 -0
  107. package/dist/types/RovingTabs.d.ts +21 -0
  108. package/dist/types/SectionCard.d.ts +18 -0
  109. package/dist/types/SegmentedControl.d.ts +26 -0
  110. package/dist/types/Select.d.ts +31 -0
  111. package/dist/types/Skeleton.d.ts +11 -0
  112. package/dist/types/SortableList.d.ts +17 -0
  113. package/dist/types/StructuredAddressInput.d.ts +57 -0
  114. package/dist/types/Toast.d.ts +22 -0
  115. package/dist/types/ToggleSwitch.d.ts +15 -0
  116. package/dist/types/TreeSelect.d.ts +58 -0
  117. package/dist/types/classNames.d.ts +1 -0
  118. package/dist/types/document-viewer/ContinuousPdfViewer.d.ts +16 -0
  119. package/dist/types/document-viewer/DocumentViewer.d.ts +31 -0
  120. package/dist/types/document-viewer/DocumentViewerViewport.d.ts +23 -0
  121. package/dist/types/document-viewer/ImagePage.d.ts +9 -0
  122. package/dist/types/document-viewer/PdfCanvasPage.d.ts +7 -0
  123. package/dist/types/document-viewer/PdfThumbnailRail.d.ts +12 -0
  124. package/dist/types/document-viewer/PdfToolbar.d.ts +13 -0
  125. package/dist/types/document-viewer/PdfWorkspace.d.ts +5 -0
  126. package/dist/types/document-viewer/pdf-render-budget.d.ts +2 -0
  127. package/dist/types/document-viewer/usePdfCanvas.d.ts +22 -0
  128. package/dist/types/document-viewer/usePdfViewport.d.ts +14 -0
  129. package/dist/types/document-viewer-v2/DocumentViewerV2.d.ts +50 -0
  130. package/dist/types/document-viewer-v2/HeadlessPdfViewer.d.ts +39 -0
  131. package/dist/types/document-viewer-v2/HeadlessSearch.d.ts +9 -0
  132. package/dist/types/index.d.ts +41 -0
  133. package/dist/types/useDebouncedValue.d.ts +2 -0
  134. package/dist/types/useFilePreparation.d.ts +28 -0
  135. package/dist/types/useModalFocusTrap.d.ts +3 -0
  136. package/dist/useDebouncedValue.js +16 -0
  137. package/dist/useFilePreparation.js +51 -0
  138. package/dist/useModalFocusTrap.js +71 -0
  139. package/docs/agent-guide.md +145 -0
  140. package/docs/api.md +220 -0
  141. package/docs/cascader.md +56 -0
  142. package/docs/component-strategy.md +94 -0
  143. package/docs/data-table.md +123 -0
  144. package/docs/dependencies.md +57 -0
  145. package/docs/document-viewer-v2.md +259 -0
  146. package/docs/document-viewer.md +28 -0
  147. package/docs/file-preparation.md +11 -0
  148. package/docs/maturity-migration.md +62 -0
  149. package/docs/modal-shell-migration.md +43 -0
  150. package/docs/mrt-poc.md +205 -0
  151. package/docs/release.md +32 -0
  152. package/docs/viewport-qa.md +99 -0
  153. package/licenses/rc-cascader-MIT.txt +21 -0
  154. package/package.json +163 -0
@@ -0,0 +1,420 @@
1
+ import { Button as e } from "../Button.js";
2
+ import { PdfWorkspace as t } from "../document-viewer/PdfWorkspace.js";
3
+ import { PdfToolbar as n } from "../document-viewer/PdfToolbar.js";
4
+ import { usePdfViewport as r } from "../document-viewer/usePdfViewport.js";
5
+ import { HeadlessSearch as i } from "./HeadlessSearch.js";
6
+ import { useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
7
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { createPluginRegistration as d } from "@embedpdf/core";
9
+ import { EmbedPDF as f, useDocumentState as p } from "@embedpdf/core/react";
10
+ import { usePdfiumEngine as m } from "@embedpdf/engines/react";
11
+ import { DocumentManagerPluginPackage as h } from "@embedpdf/plugin-document-manager/react";
12
+ import { Viewport as ee, ViewportPluginPackage as g, useViewportCapability as te } from "@embedpdf/plugin-viewport/react";
13
+ import { ScrollPluginPackage as _, Scroller as ne, useScrollCapability as re } from "@embedpdf/plugin-scroll/react";
14
+ import { RenderLayer as v, RenderPluginPackage as y } from "@embedpdf/plugin-render/react";
15
+ import { Rotate as ie, RotatePluginPackage as b, useRotate as x } from "@embedpdf/plugin-rotate/react";
16
+ import { ZoomGestureWrapper as S, ZoomMode as C, ZoomPluginPackage as w, useZoom as ae } from "@embedpdf/plugin-zoom/react";
17
+ import { ThumbImg as T, ThumbnailPluginPackage as E, ThumbnailsPane as oe } from "@embedpdf/plugin-thumbnail/react";
18
+ import { SearchLayer as se, SearchPluginPackage as D } from "@embedpdf/plugin-search/react";
19
+ import { SelectionLayer as O, SelectionPluginPackage as k, useSelectionCapability as ce } from "@embedpdf/plugin-selection/react";
20
+ import { InteractionManagerPluginPackage as A, PagePointerProvider as le } from "@embedpdf/plugin-interaction-manager/react";
21
+ //#region src/document-viewer-v2/HeadlessPdfViewer.tsx
22
+ function j(e) {
23
+ let { engine: t, isLoading: n, error: r } = m({
24
+ worker: !0,
25
+ fontFallback: null,
26
+ ...e.engineOptions
27
+ }), [i] = c(() => {
28
+ let { id: t, kind: n, ...r } = e.source;
29
+ return [
30
+ d(h, { initialDocuments: [{
31
+ ...r,
32
+ documentId: t,
33
+ autoActivate: !0
34
+ }] }),
35
+ d(g),
36
+ d(_, { defaultPageGap: 20 }),
37
+ d(y),
38
+ d(w, {
39
+ defaultZoomLevel: 1,
40
+ minZoom: e.initialZoom === "fit-width" ? .1 : .5,
41
+ maxZoom: 3
42
+ }),
43
+ d(b),
44
+ d(A, { exclusionRules: { dataAttributes: ["data-pdf-business-control"] } }),
45
+ d(D),
46
+ d(k, { marquee: { enabled: !1 } }),
47
+ d(E, { width: 100 })
48
+ ];
49
+ });
50
+ return r ? /* @__PURE__ */ u("div", {
51
+ role: "alert",
52
+ children: ["PDF 引擎加载失败:", r.message]
53
+ }) : n || !t ? /* @__PURE__ */ l("div", {
54
+ role: "status",
55
+ children: "正在加载 PDF 引擎…"
56
+ }) : /* @__PURE__ */ l(f, {
57
+ engine: t,
58
+ plugins: i,
59
+ onInitialized: async (t) => {
60
+ e.onReady?.(t);
61
+ },
62
+ children: /* @__PURE__ */ l(M, { ...e })
63
+ });
64
+ }
65
+ function M(d) {
66
+ let f = d.source.id, m = p(f), h = m?.document, { provides: g } = re(), _ = o(() => g?.forDocument(f), [g, f]), { provides: y, state: b } = ae(f), { provides: w } = te(), { provides: E } = ce(), { provides: D, rotation: k } = x(f), A = r(f), [j, M] = c(1), [N, P] = c(null), F = h?.pages.length ?? 0, I = Math.max(1, Math.min(F || 1, d.currentPage ?? j)), L = d.pageMode === "single", R = s(d);
67
+ R.current = d;
68
+ let z = m?.scale ?? 1, B = s(!1), V = s(d.currentPage ?? 1), H = s(!0), U = s(I), W = s(L), G = s(null);
69
+ (U.current !== I || W.current !== L) && ((W.current !== L || I !== G.current) && (V.current = I), W.current !== L && (H.current = !0), U.current = I, W.current = L, G.current = null);
70
+ let K = s(y);
71
+ K.current = y, a(() => {
72
+ if (!w || !F) return;
73
+ let e = () => {
74
+ let e = w.forDocument(f).getMetrics();
75
+ !B.current && e.clientWidth && e.clientHeight && K.current && (B.current = !0, K.current.requestZoom(R.current.zoom ?? (R.current.initialZoom === "fit-width" ? C.FitWidth : R.current.initialZoom ?? 1)));
76
+ }, t = w.onViewportResize((t) => {
77
+ t.documentId === f && e();
78
+ });
79
+ return e(), t;
80
+ }, [
81
+ w,
82
+ f,
83
+ F
84
+ ]), a(() => {
85
+ if (_ && !L) return _.onPageChange((e) => {
86
+ B.current && !H.current && (G.current = e.pageNumber, M(e.pageNumber), e.pageNumber !== R.current.currentPage && R.current.onCurrentPageChange?.(e.pageNumber));
87
+ });
88
+ }, [_, L]), a(() => {
89
+ if (!_ || L || !F) return;
90
+ let e = () => {
91
+ V.current !== null && (H.current = !0, _.scrollToPage({
92
+ pageNumber: V.current,
93
+ behavior: "instant",
94
+ ...N?.page === V.current ? {
95
+ pageCoordinates: N,
96
+ alignX: 50,
97
+ alignY: 40
98
+ } : {}
99
+ }));
100
+ }, t = g?.onLayoutReady((t) => {
101
+ t.documentId === f && e();
102
+ }), n = w?.onViewportResize((t) => {
103
+ t.documentId === f && e();
104
+ }), r = requestAnimationFrame(e);
105
+ return () => {
106
+ cancelAnimationFrame(r), t?.(), n?.();
107
+ };
108
+ }, [
109
+ _,
110
+ g,
111
+ w,
112
+ f,
113
+ L,
114
+ F,
115
+ I,
116
+ z,
117
+ k,
118
+ N
119
+ ]), a(() => {
120
+ if (!L || !N || !w) return;
121
+ let e = () => ue(A.containerRef.current, N, w.forDocument(f)), t = w.onViewportResize((t) => {
122
+ t.documentId === f && e();
123
+ }), n = requestAnimationFrame(e);
124
+ return () => {
125
+ cancelAnimationFrame(n), t();
126
+ };
127
+ }, [
128
+ L,
129
+ N,
130
+ w,
131
+ f,
132
+ I,
133
+ z,
134
+ k
135
+ ]);
136
+ let q = s(d.zoom ?? null), J = s(d.rotation ?? null), Y = s(z), X = s(k);
137
+ a(() => {
138
+ d.zoom !== void 0 && y && F && Math.abs(d.zoom - z) > .001 && (q.current = d.zoom, y.requestZoom(d.zoom));
139
+ }, [
140
+ d.zoom,
141
+ !!y,
142
+ F
143
+ ]), a(() => {
144
+ d.rotation !== void 0 && D && F && d.rotation !== k * 90 && (J.current = d.rotation, D.setRotation((d.rotation / 90 % 4 + 4) % 4));
145
+ }, [
146
+ d.rotation,
147
+ !!D,
148
+ F
149
+ ]), a(() => {
150
+ if (q.current !== null) {
151
+ if (Math.abs(q.current - z) > .001) return;
152
+ q.current = null;
153
+ }
154
+ Y.current !== z && R.current.onZoomChange?.(z), Y.current = z;
155
+ }, [z]), a(() => {
156
+ if (J.current !== null) {
157
+ if (J.current !== k * 90) return;
158
+ J.current = null;
159
+ }
160
+ X.current !== k && R.current.onRotationChange?.(k * 90), X.current = k;
161
+ }, [k]), a(() => {
162
+ let e = d.focusTarget, t = e && h?.pages[e.page - 1];
163
+ e && t && _ && !L && (H.current = !0, _.scrollToPage({
164
+ pageNumber: e.page,
165
+ pageCoordinates: {
166
+ x: t.size.width / 2,
167
+ y: t.size.height * e.y
168
+ },
169
+ alignY: 40,
170
+ behavior: "instant"
171
+ }));
172
+ }, [
173
+ d.focusTarget?.token,
174
+ _,
175
+ F,
176
+ L
177
+ ]);
178
+ let Z = () => {
179
+ H.current = !1, V.current = null;
180
+ }, Q = (e) => {
181
+ G.current = null;
182
+ let t = Math.max(1, Math.min(F, e));
183
+ d.currentPage === void 0 && M(t), d.onCurrentPageChange?.(t);
184
+ }, $ = (e) => {
185
+ let t = h?.pages[e];
186
+ if (!t) return null;
187
+ let n = (t.rotation + k) % 4, { width: r, height: i } = t.size, a = {
188
+ documentId: f,
189
+ page: e + 1,
190
+ pageIndex: e,
191
+ width: r,
192
+ height: i,
193
+ zoom: z,
194
+ rotation: n * 90
195
+ }, o = n % 2 == 1;
196
+ return /* @__PURE__ */ l("div", {
197
+ className: "ui-v2-native-page",
198
+ "data-page": e + 1,
199
+ style: {
200
+ position: "relative",
201
+ width: (o ? i : r) * z,
202
+ height: (o ? r : i) * z
203
+ },
204
+ children: /* @__PURE__ */ l(le, {
205
+ documentId: f,
206
+ pageIndex: e,
207
+ rotation: n,
208
+ scale: z,
209
+ children: /* @__PURE__ */ u(ie, {
210
+ documentId: f,
211
+ pageIndex: e,
212
+ rotation: n,
213
+ style: {
214
+ width: r * z,
215
+ height: i * z
216
+ },
217
+ children: [
218
+ d.renderPage ? d.renderPage({
219
+ page: e + 1,
220
+ zoom: z,
221
+ rotation: n * 90
222
+ }) : /* @__PURE__ */ l(v, {
223
+ draggable: !1,
224
+ documentId: f,
225
+ pageIndex: e,
226
+ "aria-label": `第 ${e + 1} 页`
227
+ }),
228
+ d.features?.search !== !1 && /* @__PURE__ */ l(se, {
229
+ "data-ui-search-layer": !0,
230
+ documentId: f,
231
+ pageIndex: e,
232
+ scale: z
233
+ }),
234
+ N?.page === e + 1 && /* @__PURE__ */ l("span", {
235
+ "data-ui-search-target": !0,
236
+ style: {
237
+ position: "absolute",
238
+ left: N.x * z,
239
+ top: N.y * z,
240
+ width: 0,
241
+ height: 0,
242
+ pointerEvents: "none"
243
+ }
244
+ }),
245
+ d.features?.textSelection !== !1 && /* @__PURE__ */ l(O, {
246
+ documentId: f,
247
+ pageIndex: e,
248
+ scale: z,
249
+ rotation: 0
250
+ }),
251
+ d.renderPageOverlay && /* @__PURE__ */ l("div", {
252
+ className: "ui-v2-page-overlay",
253
+ style: {
254
+ position: "absolute",
255
+ inset: 0,
256
+ width: r,
257
+ height: i,
258
+ transform: `scale(${z})`,
259
+ transformOrigin: "0 0",
260
+ pointerEvents: "none"
261
+ },
262
+ children: d.renderPageOverlay(a)
263
+ })
264
+ ]
265
+ })
266
+ })
267
+ });
268
+ };
269
+ return /* @__PURE__ */ u("section", {
270
+ ref: A.containerRef,
271
+ style: d.style,
272
+ onKeyDown: (e) => {
273
+ if (d.features?.textSelection === !1 || !(e.ctrlKey || e.metaKey) || e.key.toLowerCase() !== "c" || e.target.closest("input, textarea, [contenteditable=\"true\"]")) return;
274
+ let t = E?.forDocument(f);
275
+ t?.getState().selection && (e.preventDefault(), t.copyToClipboard());
276
+ },
277
+ "aria-label": d.ariaLabel ?? "PDF 文档查看器",
278
+ className: [
279
+ "ui-document-viewer",
280
+ "ui-document-viewer-v2-headless",
281
+ A.fullscreen && "ui-viewer-fullscreen",
282
+ d.className
283
+ ].filter(Boolean).join(" "),
284
+ children: [
285
+ d.showToolbar !== !1 && /* @__PURE__ */ u("div", {
286
+ className: "ui-viewer-toolbar",
287
+ children: [
288
+ d.title !== void 0 && /* @__PURE__ */ l("div", {
289
+ className: "ui-viewer-title",
290
+ children: d.title
291
+ }),
292
+ d.toolbar,
293
+ /* @__PURE__ */ l(n, {
294
+ zoom: b.currentZoomLevel,
295
+ disabled: !F,
296
+ fullscreen: A.fullscreen,
297
+ canZoomIn: z < 3,
298
+ canZoomOut: z > (d.initialZoom === "fit-width" ? .1 : .5),
299
+ onZoomIn: () => y?.zoomIn(),
300
+ onZoomOut: () => y?.zoomOut(),
301
+ onRotate: () => D?.rotateForward(),
302
+ onToggleFullscreen: A.toggleFullscreen
303
+ })
304
+ ]
305
+ }),
306
+ d.features?.search !== !1 && /* @__PURE__ */ l(i, {
307
+ onClear: () => P(null),
308
+ enabled: !!F,
309
+ documentId: f,
310
+ onPageChange: (e, t) => {
311
+ V.current = e, P(t ? {
312
+ page: e,
313
+ ...t
314
+ } : null), Q(e);
315
+ }
316
+ }),
317
+ m?.status === "error" ? /* @__PURE__ */ u("div", {
318
+ role: "alert",
319
+ children: ["PDF 加载失败:", m.error]
320
+ }) : h ? /* @__PURE__ */ l(t, {
321
+ rail: /* @__PURE__ */ l(oe, {
322
+ documentId: f,
323
+ children: (t) => /* @__PURE__ */ u(e, {
324
+ variant: "ghost",
325
+ className: "ui-v2-thumbnail",
326
+ "aria-label": `第 ${t.pageIndex + 1} 页`,
327
+ "aria-current": I === t.pageIndex + 1 ? "page" : void 0,
328
+ onClick: () => Q(t.pageIndex + 1),
329
+ style: {
330
+ position: "absolute",
331
+ top: t.top,
332
+ width: "100%",
333
+ height: t.wrapperHeight,
334
+ display: "grid"
335
+ },
336
+ children: [/* @__PURE__ */ l(T, {
337
+ documentId: f,
338
+ meta: t,
339
+ className: "ui-v2-thumbnail-image",
340
+ style: {
341
+ width: t.width,
342
+ height: t.height
343
+ }
344
+ }), /* @__PURE__ */ l("span", { children: t.pageIndex + 1 })]
345
+ }, t.pageIndex)
346
+ }),
347
+ children: /* @__PURE__ */ l(ee, {
348
+ documentId: f,
349
+ className: "ui-v2-native-viewport",
350
+ tabIndex: 0,
351
+ "aria-label": "PDF 页面滚动区域",
352
+ style: {
353
+ height: "100%",
354
+ minHeight: 0,
355
+ overflow: "auto"
356
+ },
357
+ onWheelCapture: Z,
358
+ onTouchMoveCapture: Z,
359
+ onPointerDownCapture: Z,
360
+ onKeyDownCapture: Z,
361
+ children: /* @__PURE__ */ l(S, {
362
+ documentId: f,
363
+ enablePinch: d.features?.pinchZoom !== !1,
364
+ children: L ? /* @__PURE__ */ l("div", {
365
+ className: "ui-v2-native-single",
366
+ children: $(I - 1)
367
+ }) : /* @__PURE__ */ l(ne, {
368
+ documentId: f,
369
+ renderPage: ({ pageIndex: e }) => $(e)
370
+ })
371
+ })
372
+ })
373
+ }) : /* @__PURE__ */ l("div", {
374
+ role: "status",
375
+ children: "正在加载 PDF 文档…"
376
+ }),
377
+ /* @__PURE__ */ u("div", {
378
+ className: "ui-viewer-footer",
379
+ children: [
380
+ /* @__PURE__ */ l(e, {
381
+ variant: "ghost",
382
+ size: "compact",
383
+ disabled: !F || I <= 1,
384
+ onClick: () => Q(I - 1),
385
+ children: "上一页"
386
+ }),
387
+ /* @__PURE__ */ u("span", {
388
+ "aria-live": "polite",
389
+ children: [
390
+ F ? I : 0,
391
+ " / ",
392
+ F
393
+ ]
394
+ }),
395
+ /* @__PURE__ */ l(e, {
396
+ variant: "ghost",
397
+ size: "compact",
398
+ disabled: !F || I >= F,
399
+ onClick: () => Q(I + 1),
400
+ children: "下一页"
401
+ }),
402
+ d.footer
403
+ ]
404
+ })
405
+ ]
406
+ });
407
+ }
408
+ function ue(e, t, n) {
409
+ let r = e?.querySelector(`[data-page="${t.page}"] [data-ui-search-target]`), i = e?.querySelector(".ui-v2-native-viewport");
410
+ if (!r || !i) return;
411
+ let a = r.getBoundingClientRect(), o = i.getBoundingClientRect(), s = n.getMetrics();
412
+ n.scrollTo({
413
+ x: s.scrollLeft + a.left + a.width / 2 - o.left,
414
+ y: s.scrollTop + a.top + a.height / 2 - o.top,
415
+ alignX: 50,
416
+ alignY: 40
417
+ });
418
+ }
419
+ //#endregion
420
+ export { j as default };
@@ -0,0 +1,66 @@
1
+ import { Button as e } from "../Button.js";
2
+ import { TextInput as t } from "../FormField.js";
3
+ import { useEffect as n, useState as r } from "react";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ import { useSearch as o } from "@embedpdf/plugin-search/react";
6
+ //#region src/document-viewer-v2/HeadlessSearch.tsx
7
+ function s({ documentId: s, onPageChange: c, enabled: l, onClear: u }) {
8
+ let { provides: d, state: f } = o(s), [p, m] = r("");
9
+ return n(() => {
10
+ let e = f.results[f.activeResultIndex], t = e?.rects[0];
11
+ e && c(e.pageIndex + 1, t ? {
12
+ x: t.origin.x + t.size.width / 2,
13
+ y: t.origin.y + t.size.height / 2
14
+ } : void 0);
15
+ }, [f.activeResultIndex, f.results]), /* @__PURE__ */ a("form", {
16
+ className: "ui-v2-search",
17
+ role: "search",
18
+ "aria-label": "搜索 PDF 文本",
19
+ onSubmit: (e) => {
20
+ e.preventDefault(), l && d && p.trim() && (d.startSearch(), d.searchAllPages(p.trim()));
21
+ },
22
+ children: [
23
+ /* @__PURE__ */ i(t, {
24
+ "aria-label": "搜索文档",
25
+ value: p,
26
+ onChange: (e) => m(e.target.value)
27
+ }),
28
+ /* @__PURE__ */ i(e, {
29
+ type: "submit",
30
+ variant: "outline",
31
+ size: "compact",
32
+ disabled: !l || !d || f.loading || !p.trim(),
33
+ children: "搜索"
34
+ }),
35
+ /* @__PURE__ */ i(e, {
36
+ variant: "ghost",
37
+ size: "compact",
38
+ disabled: !f.total,
39
+ onClick: () => d?.previousResult(),
40
+ children: "上一结果"
41
+ }),
42
+ /* @__PURE__ */ i(e, {
43
+ variant: "ghost",
44
+ size: "compact",
45
+ disabled: !f.total,
46
+ onClick: () => d?.nextResult(),
47
+ children: "下一结果"
48
+ }),
49
+ /* @__PURE__ */ a("span", {
50
+ role: "status",
51
+ children: [f.loading ? "搜索中…" : f.active ? `${f.total ? f.activeResultIndex + 1 : 0} / ${f.total}` : "", f.active && !f.loading && f.total === 0 ? " · 未找到可搜索文本;扫描件需要已有文本层,本查看器不执行 OCR。" : ""]
52
+ }),
53
+ /* @__PURE__ */ i(e, {
54
+ variant: "ghost",
55
+ size: "compact",
56
+ disabled: !f.active,
57
+ onClick: () => {
58
+ d?.stopSearch(), m(""), u?.();
59
+ },
60
+ children: "清除搜索"
61
+ })
62
+ ]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { s as HeadlessSearch };
@@ -0,0 +1,13 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ import { usePdfCanvas as e } from "./document-viewer/usePdfCanvas.js";
4
+ import { PdfCanvasPage as t } from "./document-viewer/PdfCanvasPage.js";
5
+ import { ContinuousPdfViewer as n } from "./document-viewer/ContinuousPdfViewer.js";
6
+ import { PdfWorkspace as r } from "./document-viewer/PdfWorkspace.js";
7
+ import { DocumentViewerViewport as i } from "./document-viewer/DocumentViewerViewport.js";
8
+ import { PageThumbnail as a, PdfThumbnailRail as o } from "./document-viewer/PdfThumbnailRail.js";
9
+ import { PdfToolbar as s } from "./document-viewer/PdfToolbar.js";
10
+ import { usePdfViewport as c } from "./document-viewer/usePdfViewport.js";
11
+ /* empty css */
12
+ import { DOCUMENT_VIEWER_V2_DISABLED_CATEGORIES as l, DocumentViewerV2 as u, createDocumentViewerV2Config as d } from "./document-viewer-v2/DocumentViewerV2.js";
13
+ export { n as ContinuousPdfViewer, l as DOCUMENT_VIEWER_V2_DISABLED_CATEGORIES, u as DocumentViewer, u as DocumentViewerV2, i as DocumentViewerViewport, a as PageThumbnail, t as PdfCanvasPage, o as PdfThumbnailRail, s as PdfToolbar, r as PdfWorkspace, d as createDocumentViewerV2Config, e as usePdfCanvas, c as usePdfViewport };
@@ -0,0 +1,12 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ import { usePdfCanvas as e } from "./document-viewer/usePdfCanvas.js";
4
+ import { PdfCanvasPage as t } from "./document-viewer/PdfCanvasPage.js";
5
+ import { ContinuousPdfViewer as n } from "./document-viewer/ContinuousPdfViewer.js";
6
+ import { PdfWorkspace as r } from "./document-viewer/PdfWorkspace.js";
7
+ import { DocumentViewerViewport as i } from "./document-viewer/DocumentViewerViewport.js";
8
+ import { PageThumbnail as a, PdfThumbnailRail as o } from "./document-viewer/PdfThumbnailRail.js";
9
+ import { PdfToolbar as s } from "./document-viewer/PdfToolbar.js";
10
+ import { usePdfViewport as c } from "./document-viewer/usePdfViewport.js";
11
+ import { DocumentViewer as l } from "./document-viewer/DocumentViewer.js";
12
+ export { n as ContinuousPdfViewer, l as DocumentViewer, i as DocumentViewerViewport, a as PageThumbnail, t as PdfCanvasPage, o as PdfThumbnailRail, s as PdfToolbar, r as PdfWorkspace, e as usePdfCanvas, c as usePdfViewport };
@@ -0,0 +1,18 @@
1
+ import { Suspense as e, lazy as t } from "react";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ //#region src/PdfiumViewer.tsx
4
+ var r = t(() => import("./document-viewer-v2/HeadlessPdfViewer.js"));
5
+ function i(t) {
6
+ return /* @__PURE__ */ n(e, {
7
+ fallback: /* @__PURE__ */ n("div", {
8
+ role: "status",
9
+ children: "正在加载 PDF 查看器…"
10
+ }),
11
+ children: /* @__PURE__ */ n(r, {
12
+ ...t,
13
+ renderer: "headless"
14
+ }, `${t.source.kind}:${t.source.id}`)
15
+ });
16
+ }
17
+ //#endregion
18
+ export { i as PdfiumViewer };
@@ -0,0 +1,2 @@
1
+ :root{--ui-primary:#5965a8;--ui-primary-hover:#414a78;--ui-primary-soft:#eef0fb;--ui-text:#242837;--ui-muted:#70778b;--ui-border:#dde0eb;--ui-border-strong:#b8bfdc;--ui-surface:#fff;--ui-canvas:#f4f5f9;--ui-danger:#b44a51;--ui-danger-soft:#fff0f1;--ui-warning:#b87512;--ui-warning-soft:#fff8eb;--ui-success:#2f7d52;--ui-success-soft:#edf8f1;--ui-focus:#5965a847;--ui-shadow:0 12px 32px #29315929;--ui-radius:8px;--ui-radius-large:12px;--ui-control-height:40px;--ui-touch-height:44px;--ui-motion-fast:.12s;--ui-motion-normal:.18s;--ui-motion-slow:.24s;--ui-ease-enter:cubic-bezier(.215,.61,.355,1);--ui-ease-exit:cubic-bezier(.55,.055,.675,.19);--ui-ease-standard:cubic-bezier(.645,.045,.355,1)}.ui-button{box-sizing:border-box;min-width:0;min-height:var(--ui-control-height);border-radius:var(--ui-radius);font:inherit;text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-ease-standard),border-color var(--ui-motion-fast) var(--ui-ease-standard),color var(--ui-motion-fast) var(--ui-ease-standard),box-shadow var(--ui-motion-fast) var(--ui-ease-standard),transform var(--ui-motion-fast) var(--ui-ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:translateY(-1px)}.ui-button:active:not(:disabled,[aria-disabled=true]){transform:none}.ui-button:focus-visible,.ui-modal-close:focus-visible,.ui-alert-close:focus-visible,.ui-pagination button:focus-visible,.ui-tabs button:focus-visible,.ui-date-input input:focus-visible,.ui-date-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-button:disabled,.ui-button[aria-disabled=true]{cursor:not-allowed;opacity:.58;transform:none}.ui-button-primary{border-color:var(--ui-primary);color:#fff;background:var(--ui-primary);box-shadow:0 5px 14px color-mix(in srgb,var(--ui-primary) 18%,transparent)}.ui-button-primary:hover:not(:disabled,[aria-disabled=true]){border-color:var(--ui-primary-hover);background:var(--ui-primary-hover)}.ui-button-secondary{border-color:var(--ui-border-strong);color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-button-outline{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-surface)}.ui-button-ghost{color:var(--ui-primary);background:0 0}.ui-button-danger{border-color:color-mix(in srgb,var(--ui-danger) 35%,white);color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-button-default{height:var(--ui-control-height)}.ui-button-compact{height:32px;min-height:32px;padding-inline:10px;font-size:12px}.ui-button-touch{height:var(--ui-touch-height);min-height:var(--ui-touch-height);padding-inline:16px}.ui-button-icon{width:var(--ui-control-height);min-width:var(--ui-control-height);padding:0}.ui-button-compact.ui-button-icon{width:32px;min-width:32px}.ui-button-touch.ui-button-icon{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-explainable-action{flex-direction:column;align-items:flex-start;gap:6px;display:inline-flex}.ui-explainable-reason{max-width:34rem;color:var(--ui-muted);align-items:flex-start;gap:5px;font-size:12px;line-height:1.5;display:flex}.ui-explainable-action.reason-popover{position:relative}.reason-popover .ui-explainable-reason{z-index:120;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);width:max-content;max-width:min(320px,100vw - 24px);box-shadow:var(--ui-shadow);visibility:hidden;opacity:0;padding:8px 10px;position:absolute;top:calc(100% + 7px);left:0}.reason-popover.reason-open .ui-explainable-reason{visibility:visible;opacity:1}.ui-modal-backdrop{z-index:1000;background:#12172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ui-modal{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(560px,100%);max-height:calc(100dvh - 40px);color:var(--ui-text);background:var(--ui-surface);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 80px #191f373d}.ui-modal-header{border-bottom:1px solid var(--ui-border);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding:20px;display:flex}.ui-modal-header>div{min-width:0}.ui-modal-header h2{overflow-wrap:anywhere;margin:4px 0 0;font-size:1.15rem}.ui-modal-header p{color:var(--ui-muted);overflow-wrap:anywhere;margin:7px 0 0;font-size:.82rem;line-height:1.6}.ui-modal-eyebrow{color:var(--ui-primary);letter-spacing:.1em;font-size:.7rem;font-weight:750}.ui-modal-close{width:var(--ui-control-height);height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-muted);background:var(--ui-surface);cursor:pointer;flex:none;place-items:center;display:grid}.ui-modal-content{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.ui-modal-footer{border-top:1px solid var(--ui-border);background:var(--ui-surface);flex:none}.ui-form-field{min-width:0;color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-form-label{font-size:13px;font-weight:700}.ui-form-required{color:var(--ui-danger);margin-left:3px}.ui-input,.ui-select,.ui-textarea{box-sizing:border-box;width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;padding:0 11px;line-height:1.2}.ui-input,.ui-select{height:var(--ui-control-height)}.ui-select{appearance:auto}.ui-textarea{resize:vertical;height:auto;min-height:88px;padding-block:9px}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true],.ui-textarea[aria-invalid=true]{border-color:var(--ui-danger)}.ui-form-help{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-form-error{color:var(--ui-danger);font-size:12px}.ui-checkbox{align-items:flex-start;gap:9px;display:flex}.ui-checkbox input{width:18px;height:18px;accent-color:var(--ui-primary)}.ui-checkbox-copy{gap:3px;display:grid}.ui-checkbox-copy small{color:var(--ui-muted)}.ui-input-affix{box-sizing:border-box;width:100%;height:var(--ui-control-height);min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;align-items:center;gap:8px;padding:0 11px;line-height:1.2;display:flex}.ui-input-affix:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input-affix[data-invalid=true]{border-color:var(--ui-danger)}.ui-input-affix[data-disabled=true],.ui-input-affix[data-disabled=true] .ui-input-adornment{cursor:not-allowed}.ui-input-affix>.ui-input{background:0 0;border:0;border-radius:0;outline:0;flex:auto;align-self:stretch;min-width:0;height:auto;min-height:0;padding:0}.ui-input-affix>.ui-input:focus,.ui-input-affix>.ui-input[aria-invalid=true]{border:0;outline:0}.ui-input-adornment{min-width:0;color:var(--ui-muted);white-space:nowrap;flex:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.ui-input-adornment .ui-button-compact{margin-block:3px}.ui-pagination{min-height:58px;color:var(--ui-muted);justify-content:space-between;align-items:center;gap:14px;padding:10px 16px;font-size:12px;display:flex}.ui-pagination-pages{align-items:center;gap:6px;display:flex}.ui-pagination-pages button{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);cursor:pointer;min-width:34px;height:34px;padding:0 8px}.ui-pagination-pages button.active{border-color:var(--ui-primary);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-pagination-pages button:disabled{cursor:not-allowed;opacity:.45}.ui-pagination-pages i{padding:0 3px;font-style:normal}.ui-pagination-auto-compact{white-space:nowrap;display:none}.ui-pagination-size{align-items:center;gap:5px;display:flex}.ui-pagination-size select{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);height:34px}.ui-tabs{align-items:center;gap:7px;display:flex;overflow-x:auto}.ui-tabs button{min-height:var(--ui-control-height);border-radius:var(--ui-radius);color:var(--ui-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;padding:0 12px}.ui-tabs button.active{border-color:var(--ui-border);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-toggle{cursor:pointer;align-items:center;gap:9px;display:inline-flex}.ui-toggle input{clip-path:inset(50%);width:1px;height:1px;position:absolute}.ui-toggle-track{background:var(--ui-border-strong);border-radius:99px;align-items:center;width:38px;height:22px;padding:3px;transition:background .15s;display:flex}.ui-toggle-track i{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 4px #0003}.ui-toggle input:checked+.ui-toggle-track{background:var(--ui-primary)}.ui-toggle input:checked+.ui-toggle-track i{transform:translate(16px)}.ui-toggle input:focus-visible+.ui-toggle-track{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-toggle input[aria-disabled=true]~*{opacity:.58;cursor:not-allowed}.ui-segmented-control{--ui-segmented-height:var(--ui-control-height);box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);width:100%;min-width:0;max-width:100%;color:var(--ui-text);background:var(--ui-surface);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.ui-segmented-option{box-sizing:border-box;min-width:0;min-height:calc(var(--ui-segmented-height) - 2px);border:1px solid #0000;border-left-color:var(--ui-border);cursor:pointer;place-items:center;margin:-1px 0 -1px -1px;display:grid;position:relative}.ui-segmented-option:first-child{border-left-color:#0000;margin-left:-1px}.ui-segmented-option input{clip-path:inset(50%);width:1px;height:1px;min-height:1px;padding:0;position:absolute}.ui-segmented-content{box-sizing:border-box;min-width:0;max-width:100%;font:inherit;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-weight:650;display:flex}.ui-segmented-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-segmented-label:empty{display:none}.ui-segmented-icon{flex:none;align-items:center;display:inline-flex}.ui-segmented-icon svg{width:1em;height:1em}.ui-segmented-option:has(input:checked){z-index:1;border-color:var(--ui-primary);color:#fff;background:var(--ui-primary)}.ui-segmented-option:has(input:focus-visible){z-index:2;outline:3px solid var(--ui-focus);outline-offset:-3px}.ui-segmented-option:has(input:disabled){cursor:not-allowed;opacity:.52}.ui-segmented-compact{--ui-segmented-height:32px}.ui-segmented-compact .ui-segmented-content{padding-inline:10px;font-size:12px}.ui-segmented-touch{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-touch .ui-segmented-content{padding-inline:16px}.ui-segmented-control{min-height:var(--ui-segmented-height)}.ui-segmented-inline{grid-auto-columns:minmax(0,auto);width:fit-content;display:inline-grid}.ui-segmented-vertical{grid-template-columns:minmax(0,1fr);grid-auto-flow:row}.ui-segmented-vertical .ui-segmented-option{border-left-color:#0000;border-top-color:var(--ui-border);margin:-1px -1px 0}.ui-segmented-vertical .ui-segmented-option:first-child{border-top-color:#0000}.ui-segmented-vertical .ui-segmented-option:has(input:checked){border-color:var(--ui-primary)}.ui-segmented-soft{background:var(--ui-surface-subtle,var(--ui-primary-soft));border-color:#0000;gap:3px;padding:3px}.ui-segmented-soft .ui-segmented-option{border-radius:calc(var(--ui-radius) - 2px);border-color:#0000;margin:0}.ui-segmented-soft .ui-segmented-option:has(input:checked){border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 3px #0000001a}.ui-segmented-soft .ui-segmented-option:has(input:not(:checked):not(:disabled)):hover{background:var(--ui-surface);color:var(--ui-primary)}.ui-segmented-shape-round{border-radius:24px}.ui-segmented-shape-round .ui-segmented-option{border-radius:20px}@media (pointer:coarse){.ui-segmented-control{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-option{min-height:var(--ui-touch-height)}}.ui-async-state{min-height:92px;color:var(--ui-muted);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.ui-async-state>span{gap:3px;display:grid}.ui-async-state strong{color:var(--ui-text);font-size:14px}.ui-async-state small{font-size:12px}.ui-async-state.compact{justify-content:flex-start;min-height:54px;padding:8px}.ui-async-state .spin{animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-date-input{align-items:center;display:inline-flex;position:relative}.ui-date-input input{width:100%;height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);font:inherit;padding:0 42px 0 11px}.ui-date-trigger{width:36px;height:36px;color:var(--ui-primary);background:0 0;border:0;place-items:center;display:grid;position:absolute;right:2px}.ui-date-calendar{z-index:1100;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(332px,100vw);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);padding:12px;position:fixed}.ui-date-calendar header,.ui-date-calendar footer{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar button{min-width:36px;min-height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px}.ui-date-grid{grid-template-columns:repeat(7,1fr);gap:2px;margin:8px 0;display:grid}.ui-date-weekday{height:28px;color:var(--ui-muted);place-items:center;font-size:12px;display:grid}.ui-date-grid button[aria-selected=true]{color:#fff;background:var(--ui-primary)}.ui-date-grid button.outside{color:color-mix(in srgb,var(--ui-muted) 50%,transparent)}.ui-date-clear{color:var(--ui-danger)!important}.ui-date-today{font-weight:700;color:var(--ui-primary)!important}.ui-button-spinner{flex:none;animation:.8s linear infinite ui-spin}.ui-alert{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);animation:ui-slide-down var(--ui-motion-normal) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px 14px;display:grid;position:relative}.ui-alert-icon{color:var(--ui-primary);margin-top:1px}.ui-alert-content{gap:3px;min-width:0;display:grid}.ui-alert-content strong{font-size:13px}.ui-alert-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-alert-action{align-self:center}.ui-alert-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin:-5px -6px -5px 0;display:grid}.ui-alert-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-alert-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));background:var(--ui-success-soft)}.ui-alert-success .ui-alert-icon{color:var(--ui-success)}.ui-alert-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));background:var(--ui-warning-soft)}.ui-alert-warning .ui-alert-icon{color:var(--ui-warning)}.ui-alert-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));background:var(--ui-danger-soft)}.ui-alert-danger .ui-alert-icon{color:var(--ui-danger)}.ui-empty-state{text-align:center;min-height:180px;color:var(--ui-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex}.ui-empty-state.compact{min-height:112px;padding:18px}.ui-empty-icon{width:48px;height:48px;color:var(--ui-primary);background:var(--ui-primary-soft);border-radius:50%;place-items:center;margin-bottom:2px;display:grid}.ui-empty-state strong{color:var(--ui-text);font-size:14px}.ui-empty-description{max-width:34rem;font-size:12px;line-height:1.6}.ui-empty-action{margin-top:6px}.ui-skeleton{background:linear-gradient(90deg,var(--ui-canvas) 20%,color-mix(in srgb,var(--ui-border) 58%,var(--ui-surface)) 40%,var(--ui-canvas) 60%);width:100%;height:14px;animation:ui-skeleton-wave 1.5s var(--ui-ease-standard) infinite;background-size:300% 100%;border-radius:5px;display:block}.ui-skeleton.rounded{border-radius:999px}.ui-skeleton-text{align-content:start;gap:9px;display:grid}.reason-popover .ui-explainable-reason{transition:opacity var(--ui-motion-fast) var(--ui-ease-enter),transform var(--ui-motion-fast) var(--ui-ease-enter),visibility 0s linear var(--ui-motion-fast);transform:translateY(-3px)}.reason-popover.reason-open .ui-explainable-reason{transition-delay:0s;transform:none}.ui-modal-backdrop{animation:ui-fade-in var(--ui-motion-normal) var(--ui-ease-enter)}.ui-modal{animation:ui-modal-enter var(--ui-motion-slow) var(--ui-ease-enter)}.ui-date-calendar{transform-origin:top;animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-modal-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes ui-popover-enter{0%{opacity:0;transform:translateY(-4px)scale(.985)}}@keyframes ui-slide-down{0%{opacity:0;transform:translateY(-5px)}}@keyframes ui-skeleton-wave{0%{background-position:100% 0}to{background-position:0 0}}.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover{z-index:1200;border:1px solid var(--ui-border);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);transform-origin:var(--radix-popover-content-transform-origin,var(--radix-tooltip-content-transform-origin,center));animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}.ui-tooltip{border-radius:7px;max-width:min(280px,100vw - 24px);padding:7px 9px;font-size:12px;line-height:1.45}.ui-floating-arrow{fill:var(--ui-surface)}.ui-popover{width:min(340px,var(--radix-popover-content-available-width,calc(100vw - 24px)));max-height:var(--radix-popover-content-available-height,calc(100dvh - 24px));border-radius:var(--ui-radius-large);overflow:auto}.ui-popover-heading{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:flex}.ui-popover-body{padding:14px}.ui-floating-close,.ui-toast-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.ui-floating-close:hover,.ui-toast-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-popconfirm-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-popconfirm-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.ui-select-trigger{width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 11px;display:flex}.ui-select-trigger[data-placeholder]{color:var(--ui-muted)}.ui-select-trigger:focus-visible,.ui-combobox-trigger:focus-visible,.ui-floating-close:focus-visible,.ui-toast-close:focus-visible,.ui-table-sort:focus-visible,.ui-data-table input:focus-visible{border-color:var(--ui-primary);outline:3px solid var(--ui-focus);outline-offset:2px}.ui-select-content{min-width:var(--radix-select-trigger-width);max-height:min(320px,var(--radix-select-content-available-height));border-radius:var(--ui-radius);overflow:hidden}.ui-select-viewport{padding:5px}.ui-select-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;outline:0;align-items:center;min-height:36px;padding:7px 32px 7px 9px;font-size:13px;line-height:1.4;display:flex;position:relative}.ui-select-item[data-highlighted]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-select-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-select-indicator{color:var(--ui-primary);place-items:center;display:grid;position:absolute;right:9px}.ui-select-scroll{width:100%;height:28px;color:var(--ui-muted);background:var(--ui-surface);border:0;place-items:center;display:grid}.ui-combobox{color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-combobox-control{display:flex;position:relative}.ui-combobox-control .ui-input{padding-right:42px}.ui-combobox-trigger{width:36px;height:36px;color:var(--ui-primary);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px;right:2px}.ui-combobox-popover{width:var(--trigger-width);max-height:min(320px,var(--available-height));border-radius:var(--ui-radius);overflow:auto}.ui-combobox-list{outline:0;padding:4px;display:block}.ui-combobox-item{cursor:pointer;border-radius:6px;outline:0;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:7px 9px;display:flex}.ui-combobox-item>span{gap:2px;min-width:0;display:grid}.ui-combobox-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ui-combobox-item small{color:var(--ui-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ui-combobox-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-combobox-item[data-selected]{font-weight:700}.ui-combobox-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-combobox-empty,.ui-combobox-loading{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-combobox-loading{border-bottom:1px solid var(--ui-border);justify-content:center;align-items:center;gap:7px;display:flex}.ui-async-search-picker{color:var(--ui-text);align-content:start;gap:8px;display:grid}.ui-async-search-control{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.ui-async-search-status:empty{display:none}.ui-async-search-status{color:var(--ui-muted);font-size:12px}.ui-async-search-list{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-height:320px;box-shadow:var(--ui-shadow);padding:4px;overflow:auto}.ui-async-search-option{width:100%;min-height:40px;color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;padding:8px 9px;display:flex}.ui-async-search-option[aria-selected=true],.ui-async-search-option:hover{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-async-search-option:focus-visible{outline:3px solid var(--ui-focus);outline-offset:-1px}.ui-async-search-empty{text-align:center;padding:14px}.ui-dropdown-popover{z-index:1300;border:1px solid var(--ui-border);border-radius:var(--ui-radius);min-width:180px;max-width:min(320px,100vw - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter);overflow:auto}.ui-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-dropdown-menu{outline:0;padding:5px}.ui-dropdown-item{cursor:pointer;border-radius:6px;outline:0;align-items:center;gap:9px;min-height:36px;padding:7px 9px;font-size:13px;display:flex}.ui-dropdown-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-dropdown-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-dropdown-item.dangerous{color:var(--ui-danger)}.ui-dropdown-item-icon,.ui-dropdown-item-selected{flex:none;place-items:center;display:grid}.ui-dropdown-item-label{overflow-wrap:anywhere;flex:auto;min-width:0}.ui-dropdown-item-status{min-width:0;color:var(--ui-muted);flex:0 auto;font-size:11px}.ui-dropdown-item-selected{color:var(--ui-primary)}.ui-dropdown-separator{background:var(--ui-border);height:1px;margin:5px}.ui-dropdown-group{display:block}.ui-dropdown-header{color:var(--ui-muted);padding:7px 9px 4px;font-size:11px;font-weight:700}.ui-confirm-dialog-body{overflow-wrap:anywhere;min-width:0;padding:18px 20px}.ui-confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.ui-toast-viewport{z-index:2000;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 36px);display:flex;position:fixed;top:18px;right:18px}.ui-toast{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);pointer-events:auto;animation:ui-toast-enter var(--ui-motion-slow) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px;display:grid}.ui-toast-icon{color:var(--ui-primary);margin-top:2px}.ui-toast-content{gap:3px;min-width:0;display:grid}.ui-toast-content strong{font-size:13px}.ui-toast-content div{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-toast-success .ui-toast-icon{color:var(--ui-success)}.ui-toast-warning .ui-toast-icon{color:var(--ui-warning)}.ui-toast-danger .ui-toast-icon{color:var(--ui-danger)}.ui-toast-close{margin:-4px -4px -4px 0}.ui-data-table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);max-width:100%;position:relative;overflow-x:auto;container-type:inline-size}.ui-data-table{border-collapse:collapse;width:100%;color:var(--ui-text);font-size:13px}.ui-data-table caption{text-align:left;padding:12px 14px;font-weight:700}.ui-data-table th,.ui-data-table td{border-bottom:1px solid var(--ui-border);text-align:left;vertical-align:middle;padding:11px 13px}.ui-data-table th{color:var(--ui-muted);background:var(--ui-canvas);white-space:nowrap;font-size:12px;font-weight:700}.ui-data-table tbody tr:last-child td{border-bottom:0}.ui-data-table tbody tr[aria-selected=true]{background:var(--ui-primary-soft)}.ui-data-table tbody tr[data-disabled]{opacity:.58}.ui-data-table [data-align=center]{text-align:center}.ui-data-table [data-align=end]{text-align:right}.ui-table-sort{color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;margin:-3px;padding:3px;display:inline-flex}.ui-table-sort:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 5%,transparent)}.ui-table-selection{width:44px;text-align:center!important}.ui-table-selection input{width:17px;height:17px;accent-color:var(--ui-primary)}.ui-badge{vertical-align:baseline;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex:none;justify-content:center;align-items:center;max-width:100%;font-weight:700;line-height:1;display:inline-flex}.ui-badge-small{min-height:20px;padding:3px 7px;font-size:11px}.ui-badge-medium{min-height:24px;padding:4px 9px;font-size:12px}.ui-badge-neutral{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-canvas)}.ui-badge-info{border-color:color-mix(in srgb,var(--ui-primary) 24%,var(--ui-border));color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-badge-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));color:var(--ui-success);background:var(--ui-success-soft)}.ui-badge-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));color:color-mix(in srgb,var(--ui-warning) 80%,var(--ui-text));background:var(--ui-warning-soft)}.ui-badge-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-metric-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;min-height:132px;color:var(--ui-text);background:var(--ui-surface);box-shadow:0 8px 24px color-mix(in srgb,var(--ui-text) 6%,transparent);flex-direction:column;gap:9px;padding:18px;display:flex}.ui-metric-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ui-metric-card-label{min-width:0;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:1.45}.ui-metric-card-icon{border-radius:var(--ui-radius);width:34px;height:34px;color:var(--ui-muted);background:var(--ui-canvas);flex:none;place-items:center;display:grid}.ui-metric-card-icon>svg{width:18px;height:18px}.ui-metric-card-value{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(1.5rem,3vw,2rem);font-weight:750;line-height:1.08}.ui-metric-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;margin-top:auto;font-size:12px;line-height:1.5}.ui-metric-card-info .ui-metric-card-icon{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-metric-card-success .ui-metric-card-icon{color:var(--ui-success);background:var(--ui-success-soft)}.ui-metric-card-warning .ui-metric-card-icon{color:var(--ui-warning);background:var(--ui-warning-soft)}.ui-metric-card-danger .ui-metric-card-icon{color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-page-header{min-width:0;color:var(--ui-text);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.ui-page-header-copy{flex:24rem;gap:8px;min-width:0;display:grid}.ui-page-header-eyebrow{color:var(--ui-primary);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800}.ui-page-header-title{letter-spacing:-.04em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.75rem,4vw,3rem);line-height:1.08}.ui-page-header-description{max-width:48rem;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:14px;line-height:1.65}.ui-page-header-actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:10px;max-width:100%;display:flex}.ui-section-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);overflow:hidden}.ui-section-card-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 24px;display:flex}.ui-section-card-copy{gap:5px;min-width:0;display:grid}.ui-section-card-title{overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.35}.ui-section-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;line-height:1.55}.ui-section-card-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ui-section-card-body{min-width:0}.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover{overscroll-behavior:contain;max-width:calc(100vw - 24px)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:min(320px,100dvh - 24px);overflow:auto}.ui-select-content{max-height:min(320px,var(--radix-select-content-available-height));overflow:hidden}.ui-select-viewport{overscroll-behavior:contain}.ui-async-search-list{max-height:min(320px,calc(100dvh - 180px - env(safe-area-inset-bottom)));overscroll-behavior:contain;scrollbar-gutter:stable}.ui-combobox .spin{animation:.8s linear infinite ui-spin}.ui-toast-viewport{overscroll-behavior:contain;max-height:calc(100dvh - 36px);overflow-y:auto}.ui-toast{min-width:0}.ui-toast-content{overflow-wrap:anywhere}.ui-data-table-wrap[data-mobile-layout=cards] .ui-empty-state{border-top:1px solid var(--ui-border)}@container (width<=760px){.ui-data-table-wrap[data-mobile-layout=cards] .ui-data-table,.ui-data-table-wrap[data-mobile-layout=cards] tbody,.ui-data-table-wrap[data-mobile-layout=cards] caption{display:block}.ui-data-table-wrap[data-mobile-layout=cards] thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr{border-bottom:1px solid var(--ui-border);padding:10px 12px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr:last-child{border-bottom:0}.ui-data-table-wrap[data-mobile-layout=cards] td{white-space:normal;overflow-wrap:anywhere;border:0;grid-template-columns:minmax(84px,auto) minmax(0,1fr);gap:10px;min-width:0;padding:7px 2px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] td>*{min-width:0;max-width:100%}.ui-data-table-wrap[data-mobile-layout=cards] td[data-align=end]{text-align:left}.ui-data-table-wrap[data-mobile-layout=cards] td:before{content:attr(data-label);color:var(--ui-muted);text-align:left;font-size:12px;font-weight:700}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection{width:auto;min-height:var(--ui-touch-height);align-items:center;display:flex;text-align:left!important}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection:before{content:none}}@keyframes ui-toast-enter{0%{opacity:0;transform:translate(12px)}}.ui-tree-select,.ui-tree-select-root{position:relative}.ui-tree-select-control{display:flex;position:relative}.ui-tree-select-input{padding-right:72px}.ui-tree-select-clear,.ui-tree-select-trigger{height:36px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px}.ui-tree-select-clear{width:32px;right:38px}.ui-tree-select-trigger{width:36px;right:2px}.ui-tree-select-trigger:disabled{cursor:not-allowed;opacity:.55}.ui-tree-select-clear:hover,.ui-tree-select-trigger:hover{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-tree-select-clear:focus-visible,.ui-tree-select-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:1px}.ui-tree-select-popover{z-index:1100;box-sizing:border-box;overscroll-behavior:contain;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:min(260px,100vw - 24px);max-height:min(360px,100dvh - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);outline:0;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden auto}.ui-tree-select-tree{padding:5px}.ui-tree-select-branch [role=group]{border-left:1px solid var(--ui-border);margin-left:16px;padding-left:7px}.ui-tree-select-item{cursor:pointer;border-radius:7px;outline:0;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:4px;min-height:36px;padding:3px 8px 3px 2px;display:grid}.ui-tree-select-item.active{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-tree-select-item.selected{font-weight:700}.ui-tree-select-item.disabled{opacity:.48;cursor:not-allowed}.ui-tree-select-toggle{width:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-self:stretch;place-items:center;display:grid}.ui-tree-select-toggle:hover{background:color-mix(in srgb,var(--ui-primary-soft) 70%,var(--ui-surface))}.ui-tree-select-spacer{width:28px}.ui-tree-select-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-tree-select-status{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-tree-select-error{color:var(--ui-danger)}.ui-structured-address{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;max-width:100%;color:var(--ui-text);gap:10px;padding:12px;display:grid;container-type:inline-size}.ui-structured-address legend{color:var(--ui-muted);padding:0 5px;font-size:12px;font-weight:750}.ui-required-mark{color:var(--ui-danger);margin-right:3px}.ui-structured-address-annotation{margin-left:7px;font-size:11px;font-weight:500}.ui-structured-address label{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid}.ui-structured-address-mode,.ui-structured-address-full,.ui-structured-address-region,.ui-structured-address-detail,.ui-structured-address-version{grid-column:1/-1}.ui-structured-address-region{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid;position:relative}.ui-structured-address-region-control{position:relative}.ui-structured-address-region-control .ui-input{text-overflow:ellipsis;padding-right:36px}.ui-structured-address-region-control>svg{pointer-events:none;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.ui-structured-address-popover{z-index:1100;box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);width:min(680px,100vw - 24px);max-width:100%;max-height:min(340px,100dvh - 24px);box-shadow:var(--ui-shadow);position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.ui-structured-address-columns{grid-template-columns:repeat(var(--address-columns,1),minmax(0,1fr));display:grid}.ui-structured-address-columns[data-columns="2"]{--address-columns:2}.ui-structured-address-columns[data-columns="3"]{--address-columns:3}.ui-structured-address-columns[data-columns="4"]{--address-columns:4}.ui-structured-address-column{border-right:1px solid var(--ui-border);min-width:0;max-height:280px;padding:5px;overflow:auto}.ui-structured-address-column:last-child{border-right:0}.ui-structured-address-column button,.ui-structured-address-results button{width:100%;min-height:38px;color:var(--ui-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;padding:7px 9px;display:flex}.ui-structured-address-column button:hover,.ui-structured-address-column button:focus-visible,.ui-structured-address-column button[aria-selected=true],.ui-structured-address-results button:hover,.ui-structured-address-results button:focus-visible{color:var(--ui-primary-hover);background:var(--ui-primary-soft);outline:0}.ui-structured-address-column button:disabled,.ui-structured-address-results button:disabled{opacity:.48;cursor:not-allowed}.ui-structured-address-results{max-height:280px;padding:5px;overflow:auto}.ui-structured-address-empty{color:var(--ui-muted);text-align:center;padding:16px;font-size:12px}.ui-structured-address-version{color:var(--ui-muted);font-size:11px}.ui-file-dropzone{box-sizing:border-box;border:1.5px dashed var(--ui-border-strong);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-primary);background:var(--ui-canvas);text-align:center;cursor:pointer;transition:border-color var(--ui-motion-fast) var(--ui-ease-standard),background-color var(--ui-motion-fast) var(--ui-ease-standard);place-content:center;justify-items:center;gap:7px;padding:18px;display:grid}.ui-file-dropzone:hover,.ui-file-dropzone.dragging{border-color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-file-dropzone:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-file-dropzone[aria-disabled=true]{cursor:not-allowed;opacity:.58}.ui-file-dropzone-input{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.ui-file-dropzone-action{min-height:var(--ui-control-height);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);color:var(--ui-primary-hover);background:var(--ui-surface);justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}@container (width>=520px){.ui-structured-address{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ui-structured-address-mode,.ui-structured-address-detail{grid-column:auto}}@media (pointer:coarse){.ui-button-default,.ui-modal-close,.ui-tabs button,.ui-pagination-pages button,.ui-date-input input,.ui-date-trigger,.ui-date-calendar button,.ui-input,.ui-input-affix,.ui-select,.ui-select-trigger,.ui-select-item,.ui-combobox-item,.ui-dropdown-item,.ui-async-search-option,.ui-tree-select-item,.ui-structured-address-column button,.ui-structured-address-results button{min-height:var(--ui-touch-height)}.ui-input-affix>.ui-input{min-height:0}.ui-button-default.ui-button-icon,.ui-modal-close{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-tree-select-clear,.ui-tree-select-trigger{height:40px}.ui-tree-select-clear{right:42px}.ui-tree-select-trigger{width:40px}.ui-checkbox input,.ui-table-selection input{width:22px;height:22px}}@media (width<=600px){.ui-tree-select-popover{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding:8px max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-popover{width:100%;max-width:none;max-height:min(72dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-columns[data-columns="3"],.ui-structured-address-columns[data-columns="4"]{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-structured-address-column button{padding-inline:6px;font-size:12px}}@media (width<=600px),(width<=900px) and (height<=600px){.ui-dropdown-item{min-height:var(--ui-touch-height)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-date-calendar{width:min(540px,calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right))));max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overscroll-behavior:contain;overflow:auto}}@media (width<=600px){.ui-modal-backdrop{padding:0}.ui-modal{border:0;border-radius:0;width:100%;height:100dvh;max-height:100dvh}.ui-modal-header{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.ui-modal-footer{padding-bottom:env(safe-area-inset-bottom)}.ui-alert{grid-template-columns:auto minmax(0,1fr) auto}.ui-alert-action{grid-column:2;justify-self:start}.ui-alert-close{grid-area:1/3}.ui-popover{max-width:calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right)))}[data-radix-popper-content-wrapper]:has(>.ui-select-content){width:100%!important;min-width:0!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}.ui-select-content{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;transform-origin:bottom;border-width:1px 0 0;box-shadow:0 -18px 48px #191f3738}.ui-select-viewport{padding:10px max(8px,env(safe-area-inset-right)) 10px max(8px,env(safe-area-inset-left))}.ui-toast-viewport{top:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:auto;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-toast{grid-template-columns:auto minmax(0,1fr) auto}.ui-toast>.ui-button{grid-column:2;justify-self:start}.ui-toast-close{grid-area:1/3}.ui-pagination{flex-wrap:wrap;align-items:flex-start}.ui-pagination-summary{width:100%}.ui-pagination-size{margin-left:auto}.ui-async-search-control{grid-template-columns:1fr}.ui-async-search-control>.ui-button{width:100%}.ui-page-header{flex-direction:column;justify-content:flex-start;align-items:stretch}.ui-page-header-copy{flex:none}.ui-page-header-actions{justify-content:flex-start;width:100%}.ui-page-header-actions>.ui-button{flex:140px}.ui-section-card-header{flex-direction:column;padding:17px 18px}.ui-section-card-actions{justify-content:flex-start;width:100%}.ui-section-card-actions>.ui-button{flex:140px}.ui-metric-card{min-height:120px;padding:16px}}@media (width>=601px) and (height<=600px){.ui-modal-backdrop{padding:12px}.ui-modal{max-height:calc(100dvh - 24px)}.ui-modal-header{padding:12px 16px}}@media (width<=360px){.ui-pagination{gap:8px;padding-inline:10px}.ui-pagination-pages{gap:4px}.ui-pagination-pages .ui-page-number,.ui-pagination-pages .ui-page-ellipsis{display:none}.ui-pagination-auto-compact{display:inline}.ui-pagination-size{margin-left:0}.ui-pagination-size span:first-child,.ui-pagination-size>span:last-child{display:none}}@media (hover:none){.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:none}}@media (prefers-reduced-motion:reduce){.ui-button,.ui-toggle-track,.ui-toggle-track i,.ui-explainable-reason{transition:none}.ui-button-spinner,.ui-async-state .spin,.ui-alert,.ui-modal-backdrop,.ui-modal,.ui-date-calendar,.ui-skeleton,.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover,.ui-toast{animation:none}}.ui-overlay-container{display:contents}.ui-date-calendar[data-side],.ui-tree-select-popover[data-side],.ui-structured-address-popover[data-side]{box-sizing:border-box;max-height:var(--radix-popover-content-available-height);position:relative;inset:auto;overflow:auto}.ui-tree-select-popover[data-side]{width:var(--radix-popover-trigger-width);min-width:min(260px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-structured-address-popover[data-side]{width:min(680px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-date-calendar header{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar h2{margin:0;font-size:14px}.ui-date-month-jump{color:var(--ui-muted);justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.ui-date-month-jump input{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-width:180px;min-height:32px;color:var(--ui-text);font:inherit}.ui-aria-calendar-grid{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%}.ui-aria-calendar-grid th{height:28px;color:var(--ui-muted);font-size:12px}.ui-aria-calendar-grid td{text-align:center;padding:0}.ui-aria-calendar-grid .react-aria-CalendarCell{border-radius:var(--ui-radius);cursor:pointer;outline:0;place-items:center;min-height:36px;font-size:13px;display:grid}.ui-aria-calendar-grid .react-aria-CalendarCell[data-selected]{background:var(--ui-primary);color:#fff}.ui-aria-calendar-grid .react-aria-CalendarCell[data-focus-visible]{outline:3px solid var(--ui-focus)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-outside-month]{color:var(--ui-muted)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-disabled],.ui-aria-calendar-grid .react-aria-CalendarCell[data-unavailable]{opacity:.4;cursor:not-allowed;text-decoration:line-through}.ui-toast-viewport{margin:0;list-style:none}.ui-table-selection-summary{background:var(--ui-primary-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.ui-multi-select{gap:6px;min-width:0;display:grid}.ui-multi-selection{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ui-multi-selection .react-aria-TagList{flex-wrap:wrap;gap:6px;display:flex}.ui-selection-tag{border-radius:var(--ui-radius);background:var(--ui-primary-soft);color:var(--ui-primary-hover);align-items:center;gap:6px;padding:3px 8px;font-size:13px;display:inline-flex}.ui-selection-tag[data-focused]{outline:3px solid var(--ui-focus)}.ui-selection-tag button,.ui-selection-clear{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;min-width:28px;min-height:28px}.ui-selection-tag button:disabled,.ui-selection-clear:disabled{opacity:.5;cursor:not-allowed}@media (pointer:coarse){.ui-aria-calendar-grid .react-aria-CalendarCell,.ui-date-month-jump input,.ui-selection-tag button{min-height:var(--ui-touch-height)}}.ui-file-preparation-dialog{width:min(480px,100vw - 32px);height:auto;min-height:0;max-height:calc(100dvh - 32px)}.ui-file-preparation-name{overflow-wrap:anywhere;font-weight:600}.ui-sortable-list{outline:0;gap:12px;display:grid}.ui-sortable-item{outline:0;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;min-width:0;display:grid;position:relative}.ui-sortable-item[data-focus-visible]{outline:3px solid var(--ui-focus);outline-offset:2px;border-radius:var(--ui-radius-large)}.ui-sortable-item[data-dragging]{opacity:.55}.ui-sortable-content{min-width:0}.ui-sortable-handle{border:1px solid var(--ui-border);border-radius:var(--ui-radius);width:32px;height:44px;color:var(--ui-muted);background:var(--ui-surface);cursor:grab;place-items:center;margin-top:8px;padding:0;display:grid}.ui-sortable-handle:active{cursor:grabbing}.ui-sortable-handle:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.react-aria-DropIndicator[data-drop-target]{background:var(--ui-primary);border-radius:999px;height:3px}@media (pointer:coarse){.ui-sortable-handle{width:44px;min-width:44px;height:44px}}.ui-sortable-content:only-child{grid-column:1/-1}.ui-cascader{box-sizing:border-box;width:100%;min-width:0;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:5px 11px;display:flex;position:relative}.ui-cascader:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-cascader:has([aria-invalid=true]){border-color:var(--ui-danger)}.ui-cascader-disabled{opacity:.55;cursor:not-allowed}.ui-cascader-content{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;line-height:26px;position:relative;overflow:hidden}.ui-cascader-input{box-sizing:border-box;font:inherit;color:inherit;background:0 0;border:0;outline:0;min-width:0;height:26px;margin:0;padding:0}.ui-cascader-single .ui-cascader-input{width:100%;position:absolute;inset:0}.ui-cascader-single .ui-cascader-content-has-search-value{color:#0000}.ui-cascader-single .ui-cascader-content-has-search-value .ui-cascader-input{color:var(--ui-text);background:var(--ui-surface)}.ui-cascader-content:empty{min-height:26px}.ui-cascader-placeholder{color:var(--ui-muted);pointer-events:none}.ui-cascader-suffix{color:var(--ui-muted);pointer-events:none;align-items:center;display:flex}.ui-cascader-clear,.ui-cascader-tag button{color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.ui-cascader-clear:focus-visible,.ui-cascader-tag button:focus-visible{outline:2px solid var(--ui-primary)}.ui-cascader-multiple .ui-cascader-content{white-space:normal;flex-wrap:wrap;align-items:center;gap:4px;display:flex;overflow:visible}.ui-cascader-content-item,.ui-cascader-content-item-suffix{align-items:center;min-width:0;max-width:100%;display:inline-flex}.ui-cascader-multiple .ui-cascader-input{width:var(--select-input-width,20px);min-width:20px;max-width:100%}.ui-cascader-tag{background:var(--ui-primary-soft);border-radius:4px;align-items:center;gap:3px;max-width:100%;padding:0 4px;font-size:13px;display:inline-flex}.ui-cascader-tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-cascader-dropdown{box-sizing:border-box;z-index:1400;background:var(--ui-surface);max-width:calc(100vw - 24px);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);font:inherit;padding:4px;position:absolute}.ui-cascader-dropdown-hidden{display:none}.ui-cascader-menus{overscroll-behavior:contain;max-width:100%;display:flex;overflow-x:auto}.ui-cascader-menu{box-sizing:border-box;overscroll-behavior:contain;border-right:1px solid var(--ui-border);flex:1 0 150px;min-width:0;max-height:min(320px,50dvh);margin:0;padding:0 4px;list-style:none;overflow-y:auto}.ui-cascader-menu:last-child{border-right:0}.ui-cascader-menu-item{box-sizing:border-box;cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:36px;padding:6px 8px;display:flex}.ui-cascader-menu-item-content{overflow-wrap:anywhere;flex:1;min-width:0}.ui-cascader-menu-item:hover,.ui-cascader-menu-item-active{background:var(--ui-primary-soft);color:var(--ui-primary-hover)}.ui-cascader-menu-item[aria-checked=true]{font-weight:600}.ui-cascader-menu-item-disabled{opacity:.45;cursor:not-allowed}.ui-cascader-menu-item-expand-icon,.ui-cascader-menu-item-loading-icon{flex:none;display:flex}.ui-cascader-checkbox{box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:3px;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.ui-cascader-checkbox-checked,.ui-cascader-checkbox-indeterminate{background:var(--ui-primary);border-color:var(--ui-primary);color:#fff}.ui-cascader-checkbox-checked:after{content:"";border:2px solid;border-width:0 2px 2px 0;width:4px;height:8px;margin-top:-2px;transform:rotate(45deg)}.ui-cascader-checkbox-indeterminate:after{content:"";background:currentColor;width:8px;height:2px}@media (pointer:coarse){.ui-cascader,.ui-cascader-menu-item{min-height:var(--ui-touch-height)}.ui-cascader-clear,.ui-cascader-tag button{min-width:32px;min-height:32px}}@media (width<=600px){.ui-cascader-menu{flex-basis:125px}.ui-cascader-dropdown{max-width:none;inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px!important;width:auto!important;position:fixed!important;transform:none!important}.ui-cascader-menu{max-height:45dvh}}.ui-structured-address-region{font:inherit;color:inherit}.ui-data-table-scroll-frame{min-width:0;max-width:100%;position:relative}.ui-data-table-horizontal-scroll{z-index:8;border-top:1px solid var(--ui-border);background:var(--ui-surface);scrollbar-color:var(--ui-border-strong) var(--ui-canvas);width:100%;height:18px;display:none;position:sticky;bottom:0;overflow:auto hidden}.ui-data-table-horizontal-scroll.is-visible{display:block}.ui-data-table-horizontal-scroll>div{height:1px}.ui-data-table-horizontal-scroll::-webkit-scrollbar{height:14px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-track{background:var(--ui-canvas);border-radius:999px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-thumb{border:3px solid var(--ui-canvas);background:var(--ui-border-strong);border-radius:999px}.ui-document-viewer{min-width:0;height:100%;min-height:360px;color:var(--ui-text,#253045);background:var(--ui-surface,#fff);flex-direction:column;display:flex;overflow:hidden}.ui-document-viewer.ui-viewer-fullscreen{z-index:10000;width:100vw;height:100dvh;position:fixed;inset:0}.ui-viewer-toolbar{border-bottom:1px solid var(--ui-border,#d9dee7);align-items:center;gap:8px;min-height:52px;padding:6px 12px;display:flex}.ui-viewer-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ui-muted,#697386);flex:1;font-size:13px;font-weight:600;overflow:hidden}.ui-viewer-tools{flex:none;justify-content:flex-end;align-items:center;gap:2px;margin-left:auto;display:flex}.ui-viewer-tools>span{text-align:center;font-variant-numeric:tabular-nums;min-width:46px;color:var(--ui-muted,#697386);font-size:12px}.ui-viewer-tools>.ui-viewer-tool{border-radius:6px;width:34px;height:34px;min-height:34px;padding:0}.ui-viewer-tools>.ui-viewer-tool-separated{margin-left:6px}@media (pointer:coarse){.ui-viewer-tools>.ui-viewer-tool{width:44px;height:44px;min-height:44px}}.ui-viewer-footer{border-top:1px solid var(--ui-border,#d9dee7);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:4px;display:flex}.ui-pdf-workspace{background:var(--ui-surface-muted,#edf0f4);flex:1;grid-template-columns:156px minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.ui-pdf-workspace.ui-rail-collapsed{grid-template-columns:minmax(0,1fr)}.ui-viewer-rail{border-right:1px solid var(--ui-border,#d9dee7);min-width:0;min-height:0;padding:8px;overflow:auto}.ui-viewer-rail[hidden]{display:none}.ui-viewer-stage{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ui-pdf-workspace>.ui-viewer-rail-toggle{z-index:5;position:absolute;top:8px;left:164px}.ui-pdf-workspace.ui-rail-collapsed>.ui-viewer-rail-toggle{left:8px}.ui-thumbnail-rail{flex-direction:column;gap:8px;height:100%;min-height:0;display:flex}.ui-thumbnail-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden auto}.ui-thumbnail-list>.ui-page-thumbnail{white-space:normal;overflow-wrap:anywhere;border:2px solid #0000;flex:none;grid-template-columns:minmax(0,1fr);gap:5px;width:100%;height:auto;min-height:0;padding:6px;display:grid}.ui-thumbnail-list>.ui-page-thumbnail[aria-current=page]{border-color:var(--ui-primary,#5b63a5);background:var(--ui-primary-soft,#eef0fa)}.ui-page-thumbnail canvas,.ui-page-thumbnail img{width:100%;height:auto;display:block}.ui-thumbnail-placeholder{aspect-ratio:1/1.414;background:var(--ui-surface,#fff);width:100%;display:block}.ui-thumbnail-pager{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.ui-thumbnail-pager>span{text-align:center;grid-column:1/-1;font-size:12px}.ui-thumbnail-pager>.ui-button{padding-inline:4px;font-size:12px}.ui-document-viewport{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding:54px 16px 24px;overflow:auto}.ui-continuous-page{flex:none;margin:0 auto 20px}.ui-continuous-page>span{text-align:center;margin-bottom:8px;font-size:12px;display:block}.ui-page-placeholder,.ui-pdf-page{background:#fff;width:100%;position:relative}.ui-pdf-page>canvas{max-width:100%;display:block;width:100%!important;height:auto!important}.ui-pdf-page>[role=alert]{place-items:center;display:grid;position:absolute;inset:0}.ui-image-frame{flex:none;margin-inline:auto;position:relative}.ui-image-frame img{max-width:none;height:auto;position:absolute;top:50%;left:50%}@media (width<=900px){.ui-pdf-workspace{grid-template-columns:128px minmax(0,1fr)}.ui-pdf-workspace>.ui-viewer-rail-toggle{left:136px}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{padding-inline:8px}.ui-viewer-title{flex-basis:100%}}.ui-document-viewer-v2{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:0;height:100%;min-height:360px;color:var(--ui-text);background:var(--ui-canvas);box-shadow:0 8px 24px color-mix(in srgb, var(--ui-text) 6%, transparent);flex-direction:column;display:flex;overflow:hidden;container-type:inline-size}.ui-document-viewer-v2-engine{flex:1;min-height:0}.ui-document-viewer-v2>.ui-viewer-toolbar,.ui-document-viewer-v2>.ui-viewer-footer{flex-wrap:wrap;flex:none}.ui-document-viewer-v2-compat{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large)}.ui-document-viewer-v2-compat .ui-viewer-toolbar,.ui-document-viewer-v2-headless .ui-viewer-toolbar{flex-wrap:wrap}.ui-v2-search{border-bottom:1px solid var(--ui-border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.ui-v2-search>.ui-input{flex:1;min-width:100px}.ui-v2-native-page{background:#fff;flex:none}.ui-v2-native-page img{display:block}.ui-v2-thumbnail{grid-template-rows:minmax(0,1fr) auto;justify-items:center;padding:0;overflow:hidden}.ui-v2-thumbnail-image{object-fit:contain;max-width:100%;max-height:100%;display:block}.ui-v2-native-single{flex:1;min-height:0;padding:52px 12px 20px;overflow:auto}.ui-v2-native-single>.ui-v2-native-page{margin-inline:auto}.ui-document-viewer-v2-engine,.ui-document-viewer-v2-engine>embedpdf-container{width:100%;min-width:0;height:100%;display:block}@media (width<=600px){.ui-document-viewer-v2{border-left:0;border-right:0;border-radius:0;min-height:300px}}
2
+ /*$vite$:1*/