@kaptures/cli 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @kaptures/cli
2
2
 
3
+ `test`는 결과 디렉터리의 `execution.json`에 pipeline·초기 캡처·안정성 재촬영 시간과 cache 복원·export 상태를 기록한다. GitHub Actions에서는 같은 Job Summary와 `capture-cache-exported`, `capture-cache-export-status`, `capture-cache-restore-status`, `capture-duration-ms` outputs를 제공한다. 실행 측정은 시각 리포트·승인 증거와 별개다.
4
+
5
+ Capture cache requires byte-identical Storybook builds. Set `core.disableProjectJson: true` in `.storybook/main.ts` to omit Storybook's build-time metadata; every served file remains part of the cache fingerprint.
6
+
3
7
  Kapture compares Storybook builds from an exact base commit and head commit in
4
8
  one explicit browser environment. It produces a self-contained visual report
5
9
  and can publish a SHA-bound review status to GitHub.
@@ -65,12 +69,25 @@ published GitHub statuses are not changed automatically.
65
69
 
66
70
  ## CI setup
67
71
 
68
- The next minor release adds `kapture ci --package-manager npm|yarn|pnpm|bun`.
69
- It generates complete capture, report, and approval workflows without
72
+ Use `kapture ci --package-manager npm|yarn|pnpm|bun` to generate CI configuration.
73
+ It generates capture, review routing, reusable publication, and approval workflows without
70
74
  overwriting existing files. The same templates appear in the documentation's
71
75
  package-manager tabs. Connect your own static deployment step before enabling
72
76
  the report workflow; its placeholder intentionally fails until configured.
73
77
 
78
+ `github review-context --base-branches '["main"]'` verifies the live capture run and
79
+ resolves one open PR, including events with an empty PR array. It emits `ready`,
80
+ `pr-number`, and `base-branch` without writing comments or statuses. Unsupported,
81
+ stale, closed or ambiguous targets do not enter the review queue; API failures
82
+ require retrying the Report workflow.
83
+
84
+ `kapture-report.yml` locks its reusable `kapture-publish.yml` call by PR for the
85
+ entire publish/finalize sequence. Approval uses the same PR group. Other PRs run
86
+ independently. `--expected-pr-number` binds reconciliation and artifact preparation
87
+ to the admitted PR, while the existing revision, run, digest and write checks remain.
88
+ Configure deployment in `kapture-publish.yml`, declare its required workflow-call
89
+ secrets, and pass them explicitly from `jobs.review.secrets` in the caller.
90
+
74
91
  Kapture owns artifact validation, capture, review preparation and approval.
75
92
  Your project owns dependency installation, Storybook builds, fonts, hosting
76
93
  credentials and immutable deployment URLs. No external private Action
@@ -145,7 +162,7 @@ repository. The internal Action pins one exact CLI version;
145
162
  consumers own only their base/head Storybook build commands and static hosting
146
163
  integration.
147
164
 
148
- The templates split trust into three workflows:
165
+ The generated templates separate capture, read-only review routing, reusable publication, and approval. The internal Action examples below retain their separate workflow layout:
149
166
 
150
167
  1. A secret-free, read-only `pull_request` workflow runs `context`, builds the
151
168
  exact base and head revisions on separate runners, and captures on a third.
@@ -262,7 +279,7 @@ the verification boundary.
262
279
  MIT © Danggeun Market Inc.
263
280
 
264
281
 
265
- For adapter upgrades, opt into `--allow-adapter-upgrade --adapter-package-json <path>` on `github context`, `github prepare-review`, and `github finalize-run` (or `ci` to generate all three). An exact stable base version strictly older than the head is eligible only when the head adapter matches the running CLI. Same-repository upgrades skip comparison; completed successful runs get the status description `Comparison skipped: adapter upgrade`. This is not visual validation or approval: review all visual changes manually and compare again after merge. Failed runs and invalid, ranged, prerelease, downgraded or mismatched versions remain errors. Trusted handlers revalidate live revisions and the latest run before writing status. Update the default-branch report/finalize workflow as well; older CLI releases cannot apply this policy.
282
+ For adapter upgrades, opt into `--allow-adapter-upgrade --adapter-package-json <path>` on `github context`, `github prepare-review`, and `github finalize-run` (or `ci` to generate all four). An exact stable base version strictly older than the head is eligible only when the head adapter matches the running CLI. Same-repository upgrades skip comparison; completed successful runs get the status description `Comparison skipped: adapter upgrade`. This is not visual validation or approval: review all visual changes manually and compare again after merge. Failed runs and invalid, ranged, prerelease, downgraded or mismatched versions remain errors. Trusted handlers revalidate live revisions and the latest run before writing status. Update the default-branch report/finalize workflow as well; older CLI releases cannot apply this policy.
266
283
 
267
284
  Only explicit comparison skipping requires the head adapter version to match the capture CLI. The trusted report CLI may still be the older default-branch version, so it verifies the live upgrade and successful capture run rather than requiring the head adapter to match itself.
268
285
 
@@ -159,11 +159,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
159
159
  SOFTWARE.
160
160
 
161
161
  ------------------------------------------------------------------------
162
- @fontsource-variable/geist@5.2.8 (OFL-1.1)
162
+ @fontsource-variable/inter@5.3.0 (OFL-1.1)
163
163
  Source license file: LICENSE
164
164
  ------------------------------------------------------------------------
165
165
 
166
- Copyright 2024 The Geist Project Authors (https://github.com/vercel/geist-font.git)
166
+ Copyright 2016 The Inter Project Authors (https://github.com/rsms/inter) Inter-Italic[opsz,wght].ttf: Copyright 2016 The Inter Project Authors (https://github.com/rsms/inter)
167
167
 
168
168
  This Font Software is licensed under the SIL Open Font License, Version 1.1.
169
169
  This license is copied below, and is also available with a FAQ at:
@@ -284,6 +284,310 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
284
284
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
285
285
  SOFTWARE.
286
286
 
287
+ ------------------------------------------------------------------------
288
+ class-variance-authority@0.7.1 (Apache-2.0)
289
+ Source license file: LICENSE
290
+ ------------------------------------------------------------------------
291
+
292
+ Apache License
293
+ Version 2.0, January 2004
294
+ http://www.apache.org/licenses/
295
+
296
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
297
+
298
+ 1. Definitions.
299
+
300
+ "License" shall mean the terms and conditions for use, reproduction,
301
+ and distribution as defined by Sections 1 through 9 of this document.
302
+
303
+ "Licensor" shall mean the copyright owner or entity authorized by
304
+ the copyright owner that is granting the License.
305
+
306
+ "Legal Entity" shall mean the union of the acting entity and all
307
+ other entities that control, are controlled by, or are under common
308
+ control with that entity. For the purposes of this definition,
309
+ "control" means (i) the power, direct or indirect, to cause the
310
+ direction or management of such entity, whether by contract or
311
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
312
+ outstanding shares, or (iii) beneficial ownership of such entity.
313
+
314
+ "You" (or "Your") shall mean an individual or Legal Entity
315
+ exercising permissions granted by this License.
316
+
317
+ "Source" form shall mean the preferred form for making modifications,
318
+ including but not limited to software source code, documentation
319
+ source, and configuration files.
320
+
321
+ "Object" form shall mean any form resulting from mechanical
322
+ transformation or translation of a Source form, including but
323
+ not limited to compiled object code, generated documentation,
324
+ and conversions to other media types.
325
+
326
+ "Work" shall mean the work of authorship, whether in Source or
327
+ Object form, made available under the License, as indicated by a
328
+ copyright notice that is included in or attached to the work
329
+ (an example is provided in the Appendix below).
330
+
331
+ "Derivative Works" shall mean any work, whether in Source or Object
332
+ form, that is based on (or derived from) the Work and for which the
333
+ editorial revisions, annotations, elaborations, or other modifications
334
+ represent, as a whole, an original work of authorship. For the purposes
335
+ of this License, Derivative Works shall not include works that remain
336
+ separable from, or merely link (or bind by name) to the interfaces of,
337
+ the Work and Derivative Works thereof.
338
+
339
+ "Contribution" shall mean any work of authorship, including
340
+ the original version of the Work and any modifications or additions
341
+ to that Work or Derivative Works thereof, that is intentionally
342
+ submitted to Licensor for inclusion in the Work by the copyright owner
343
+ or by an individual or Legal Entity authorized to submit on behalf of
344
+ the copyright owner. For the purposes of this definition, "submitted"
345
+ means any form of electronic, verbal, or written communication sent
346
+ to the Licensor or its representatives, including but not limited to
347
+ communication on electronic mailing lists, source code control systems,
348
+ and issue tracking systems that are managed by, or on behalf of, the
349
+ Licensor for the purpose of discussing and improving the Work, but
350
+ excluding communication that is conspicuously marked or otherwise
351
+ designated in writing by the copyright owner as "Not a Contribution."
352
+
353
+ "Contributor" shall mean Licensor and any individual or Legal Entity
354
+ on behalf of whom a Contribution has been received by Licensor and
355
+ subsequently incorporated within the Work.
356
+
357
+ 2. Grant of Copyright License. Subject to the terms and conditions of
358
+ this License, each Contributor hereby grants to You a perpetual,
359
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
360
+ copyright license to reproduce, prepare Derivative Works of,
361
+ publicly display, publicly perform, sublicense, and distribute the
362
+ Work and such Derivative Works in Source or Object form.
363
+
364
+ 3. Grant of Patent License. Subject to the terms and conditions of
365
+ this License, each Contributor hereby grants to You a perpetual,
366
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
367
+ (except as stated in this section) patent license to make, have made,
368
+ use, offer to sell, sell, import, and otherwise transfer the Work,
369
+ where such license applies only to those patent claims licensable
370
+ by such Contributor that are necessarily infringed by their
371
+ Contribution(s) alone or by combination of their Contribution(s)
372
+ with the Work to which such Contribution(s) was submitted. If You
373
+ institute patent litigation against any entity (including a
374
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
375
+ or a Contribution incorporated within the Work constitutes direct
376
+ or contributory patent infringement, then any patent licenses
377
+ granted to You under this License for that Work shall terminate
378
+ as of the date such litigation is filed.
379
+
380
+ 4. Redistribution. You may reproduce and distribute copies of the
381
+ Work or Derivative Works thereof in any medium, with or without
382
+ modifications, and in Source or Object form, provided that You
383
+ meet the following conditions:
384
+
385
+ (a) You must give any other recipients of the Work or
386
+ Derivative Works a copy of this License; and
387
+
388
+ (b) You must cause any modified files to carry prominent notices
389
+ stating that You changed the files; and
390
+
391
+ (c) You must retain, in the Source form of any Derivative Works
392
+ that You distribute, all copyright, patent, trademark, and
393
+ attribution notices from the Source form of the Work,
394
+ excluding those notices that do not pertain to any part of
395
+ the Derivative Works; and
396
+
397
+ (d) If the Work includes a "NOTICE" text file as part of its
398
+ distribution, then any Derivative Works that You distribute must
399
+ include a readable copy of the attribution notices contained
400
+ within such NOTICE file, excluding those notices that do not
401
+ pertain to any part of the Derivative Works, in at least one
402
+ of the following places: within a NOTICE text file distributed
403
+ as part of the Derivative Works; within the Source form or
404
+ documentation, if provided along with the Derivative Works; or,
405
+ within a display generated by the Derivative Works, if and
406
+ wherever such third-party notices normally appear. The contents
407
+ of the NOTICE file are for informational purposes only and
408
+ do not modify the License. You may add Your own attribution
409
+ notices within Derivative Works that You distribute, alongside
410
+ or as an addendum to the NOTICE text from the Work, provided
411
+ that such additional attribution notices cannot be construed
412
+ as modifying the License.
413
+
414
+ You may add Your own copyright statement to Your modifications and
415
+ may provide additional or different license terms and conditions
416
+ for use, reproduction, or distribution of Your modifications, or
417
+ for any such Derivative Works as a whole, provided Your use,
418
+ reproduction, and distribution of the Work otherwise complies with
419
+ the conditions stated in this License.
420
+
421
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
422
+ any Contribution intentionally submitted for inclusion in the Work
423
+ by You to the Licensor shall be under the terms and conditions of
424
+ this License, without any additional terms or conditions.
425
+ Notwithstanding the above, nothing herein shall supersede or modify
426
+ the terms of any separate license agreement you may have executed
427
+ with Licensor regarding such Contributions.
428
+
429
+ 6. Trademarks. This License does not grant permission to use the trade
430
+ names, trademarks, service marks, or product names of the Licensor,
431
+ except as required for reasonable and customary use in describing the
432
+ origin of the Work and reproducing the content of the NOTICE file.
433
+
434
+ 7. Disclaimer of Warranty. Unless required by applicable law or
435
+ agreed to in writing, Licensor provides the Work (and each
436
+ Contributor provides its Contributions) on an "AS IS" BASIS,
437
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
438
+ implied, including, without limitation, any warranties or conditions
439
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
440
+ PARTICULAR PURPOSE. You are solely responsible for determining the
441
+ appropriateness of using or redistributing the Work and assume any
442
+ risks associated with Your exercise of permissions under this License.
443
+
444
+ 8. Limitation of Liability. In no event and under no legal theory,
445
+ whether in tort (including negligence), contract, or otherwise,
446
+ unless required by applicable law (such as deliberate and grossly
447
+ negligent acts) or agreed to in writing, shall any Contributor be
448
+ liable to You for damages, including any direct, indirect, special,
449
+ incidental, or consequential damages of any character arising as a
450
+ result of this License or out of the use or inability to use the
451
+ Work (including but not limited to damages for loss of goodwill,
452
+ work stoppage, computer failure or malfunction, or any and all
453
+ other commercial damages or losses), even if such Contributor
454
+ has been advised of the possibility of such damages.
455
+
456
+ 9. Accepting Warranty or Additional Liability. While redistributing
457
+ the Work or Derivative Works thereof, You may choose to offer,
458
+ and charge a fee for, acceptance of support, warranty, indemnity,
459
+ or other liability obligations and/or rights consistent with this
460
+ License. However, in accepting such obligations, You may act only
461
+ on Your own behalf and on Your sole responsibility, not on behalf
462
+ of any other Contributor, and only if You agree to indemnify,
463
+ defend, and hold each Contributor harmless for any liability
464
+ incurred by, or claims asserted against, such Contributor by reason
465
+ of your accepting any such warranty or additional liability.
466
+
467
+ END OF TERMS AND CONDITIONS
468
+
469
+ Copyright 2022 Joe Bell
470
+
471
+ Licensed under the Apache License, Version 2.0 (the "License");
472
+ you may not use this file except in compliance with the License.
473
+ You may obtain a copy of the License at
474
+
475
+ http://www.apache.org/licenses/LICENSE-2.0
476
+
477
+ Unless required by applicable law or agreed to in writing, software
478
+ distributed under the License is distributed on an "AS IS" BASIS,
479
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
480
+ See the License for the specific language governing permissions and
481
+ limitations under the License.
482
+
483
+ ------------------------------------------------------------------------
484
+ @radix-ui/react-slot@1.3.3 (MIT)
485
+ Source license file: LICENSE
486
+ ------------------------------------------------------------------------
487
+
488
+ MIT License
489
+
490
+ Copyright (c) 2022 WorkOS
491
+
492
+ Permission is hereby granted, free of charge, to any person obtaining a copy
493
+ of this software and associated documentation files (the "Software"), to deal
494
+ in the Software without restriction, including without limitation the rights
495
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
496
+ copies of the Software, and to permit persons to whom the Software is
497
+ furnished to do so, subject to the following conditions:
498
+
499
+ The above copyright notice and this permission notice shall be included in all
500
+ copies or substantial portions of the Software.
501
+
502
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
503
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
504
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
505
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
506
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
507
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
508
+ SOFTWARE.
509
+
510
+ ------------------------------------------------------------------------
511
+ @radix-ui/react-label@2.1.15 (MIT)
512
+ Source license file: LICENSE
513
+ ------------------------------------------------------------------------
514
+
515
+ MIT License
516
+
517
+ Copyright (c) 2022 WorkOS
518
+
519
+ Permission is hereby granted, free of charge, to any person obtaining a copy
520
+ of this software and associated documentation files (the "Software"), to deal
521
+ in the Software without restriction, including without limitation the rights
522
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
523
+ copies of the Software, and to permit persons to whom the Software is
524
+ furnished to do so, subject to the following conditions:
525
+
526
+ The above copyright notice and this permission notice shall be included in all
527
+ copies or substantial portions of the Software.
528
+
529
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
530
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
531
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
532
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
533
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
534
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
535
+ SOFTWARE.
536
+
537
+ ------------------------------------------------------------------------
538
+ @radix-ui/react-collapsible@1.1.12 (MIT)
539
+ Source license file: LICENSE
540
+ ------------------------------------------------------------------------
541
+
542
+ MIT License
543
+
544
+ Copyright (c) 2022 WorkOS
545
+
546
+ Permission is hereby granted, free of charge, to any person obtaining a copy
547
+ of this software and associated documentation files (the "Software"), to deal
548
+ in the Software without restriction, including without limitation the rights
549
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
550
+ copies of the Software, and to permit persons to whom the Software is
551
+ furnished to do so, subject to the following conditions:
552
+
553
+ The above copyright notice and this permission notice shall be included in all
554
+ copies or substantial portions of the Software.
555
+
556
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
557
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
558
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
559
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
560
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
561
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
562
+ SOFTWARE.
563
+
564
+ ------------------------------------------------------------------------
565
+ @radix-ui/react-slider@1.4.7 (MIT)
566
+ Source license file: LICENSE
567
+ ------------------------------------------------------------------------
568
+
569
+ MIT License
570
+
571
+ Copyright (c) 2022 WorkOS
572
+
573
+ Permission is hereby granted, free of charge, to any person obtaining a copy
574
+ of this software and associated documentation files (the "Software"), to deal
575
+ in the Software without restriction, including without limitation the rights
576
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
577
+ copies of the Software, and to permit persons to whom the Software is
578
+ furnished to do so, subject to the following conditions:
579
+
580
+ The above copyright notice and this permission notice shall be included in all
581
+ copies or substantial portions of the Software.
582
+
583
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
584
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
585
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
586
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
587
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
588
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
589
+ SOFTWARE.
590
+
287
591
  ------------------------------------------------------------------------
288
592
  lucide-react@1.6.0 (ISC)
289
593
  Source license file: LICENSE
@@ -413,3 +717,30 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
413
717
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
414
718
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
415
719
  SOFTWARE.
720
+
721
+ ------------------------------------------------------------------------
722
+ shadcn/ui local registry components (MIT)
723
+ Source: https://github.com/shadcn-ui/ui
724
+ ------------------------------------------------------------------------
725
+
726
+ MIT License
727
+
728
+ Copyright (c) 2023 shadcn
729
+
730
+ Permission is hereby granted, free of charge, to any person obtaining a copy
731
+ of this software and associated documentation files (the "Software"), to deal
732
+ in the Software without restriction, including without limitation the rights
733
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
734
+ copies of the Software, and to permit persons to whom the Software is
735
+ furnished to do so, subject to the following conditions:
736
+
737
+ The above copyright notice and this permission notice shall be included in all
738
+ copies or substantial portions of the Software.
739
+
740
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
741
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
742
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
743
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
744
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
745
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
746
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"Inter Variable", "Inter", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--leading-normal:1.5;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-title:1rem;--text-title--line-height:1.25;--text-title--font-weight:500;--text-label:.8125rem;--text-label--line-height:1.23077;--text-label--font-weight:500;--text-body:.875rem;--text-body--line-height:1.5;--text-body--font-weight:400;--color-canvas:#fff;--color-surface:#fff;--color-surface-muted:#f6f6f6;--color-surface-hover:#eee;--color-surface-selected:#ededed;--color-line:#e8e8e8;--color-line-strong:#d4d4d4;--color-ink:#333;--color-ink-hover:#262626;--color-muted-foreground:#767676;--color-subtle-foreground:#767676;--color-muted-on-surface:#666;--color-accent:#eee;--color-accent-muted:#eee;--color-accent-foreground:#333;--color-background:#fff;--color-foreground:#333;--color-primary:#333;--color-primary-foreground:#fff;--color-secondary:#f6f6f6;--color-secondary-foreground:#333;--color-input:#d4d4d4;--color-ring:#333;--color-destructive:#a62a20;--color-destructive-foreground:#fff;--color-image-outline:#0000001a;--color-checker:#eee;--color-status-changed:#9f3f00;--color-status-changed-muted:#fff1e7;--color-status-unstable:#765000;--color-status-unstable-muted:#fff5d8;--color-status-added:#17653c;--color-status-added-muted:#eaf6ee;--color-status-removed:#765000;--color-status-removed-muted:#fff5d8;--color-status-error:#a62a20;--color-status-error-muted:#fff0ee;--color-status-error-border:#e8b3ae;--container-report:112.5rem;--container-command:32rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{background-color:var(--color-canvas);font-family:var(--font-sans);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:calc(var(--spacing) * 0);min-width:calc(var(--spacing) * 80);font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height));font-weight:var(--tw-font-weight,var(--text-body--font-weight))}button,summary{-webkit-tap-highlight-color:transparent}button:not(:disabled),summary{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[role=slider]:focus-visible{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--color-ring)}::selection{background-color:var(--color-accent-muted);color:var(--color-ink)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-50{z-index:50}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-px{margin-top:1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.evidence-lens{width:180px;height:180px;box-shadow:0 2px 12px #0000003d}.evidence-lens[hidden]{display:none}.block{display:block}.evidence-image[hidden]{display:none}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-auto{height:auto}.h-full{height:100%}.max-h-queue{max-height:40vh}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-72{min-height:calc(var(--spacing) * 72)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-screen{min-height:100vh}.w-11{width:calc(var(--spacing) * 11)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-report{max-width:var(--container-report)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-24{min-width:calc(var(--spacing) * 24)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-20{--tw-translate-y:calc(var(--spacing) * -20);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-180{rotate:180deg}.group[data-state=open] .disclosure-chevron{transform:rotate(180deg)}.cursor-ew-resize{cursor:ew-resize}.touch-none{touch-action:none}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-input{border-color:var(--color-input)}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.border-primary\/50{border-color:#33333380}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-status-error-border{border-color:var(--color-status-error-border)}.border-surface{border-color:var(--color-surface)}.border-transparent{border-color:#0000}.snapshot-checkerboard{background-color:var(--color-surface);background-image:linear-gradient(45deg, var(--color-checker) 25%, transparent 25%), linear-gradient(-45deg, var(--color-checker) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--color-checker) 75%), linear-gradient(-45deg, transparent 75%, var(--color-checker) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.bg-\[Canvas\]{background-color:canvas}.bg-background{background-color:var(--color-background)}.bg-canvas{background-color:var(--color-canvas)}.bg-destructive{background-color:var(--color-destructive)}.bg-ink{background-color:var(--color-ink)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/20{background-color:#3333}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-status-added{background-color:var(--color-status-added)}.bg-status-added-muted{background-color:var(--color-status-added-muted)}.bg-status-changed{background-color:var(--color-status-changed)}.bg-status-changed-muted{background-color:var(--color-status-changed-muted)}.bg-status-error{background-color:var(--color-status-error)}.bg-status-error-muted{background-color:var(--color-status-error-muted)}.bg-status-removed{background-color:var(--color-status-removed)}.bg-status-removed-muted{background-color:var(--color-status-removed-muted)}.bg-status-unstable{background-color:var(--color-status-unstable)}.bg-status-unstable-muted{background-color:var(--color-status-unstable-muted)}.bg-subtle-foreground{background-color:var(--color-subtle-foreground)}.bg-surface{background-color:var(--color-surface)}.bg-surface-muted{background-color:var(--color-surface-muted)}.bg-surface-selected{background-color:var(--color-surface-selected)}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.object-left-top{object-position:left top}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height));font-weight:var(--tw-font-weight,var(--text-body--font-weight))}.text-label{font-size:var(--text-label);line-height:var(--tw-leading,var(--text-label--line-height));font-weight:var(--tw-font-weight,var(--text-label--font-weight))}.text-title{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height));font-weight:var(--tw-font-weight,var(--text-title--font-weight))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.wrap-anywhere{overflow-wrap:anywhere}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[CanvasText\]{color:canvastext}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-ink{color:var(--color-ink)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-on-surface{color:var(--color-muted-on-surface)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-status-added{color:var(--color-status-added)}.text-status-changed{color:var(--color-status-changed)}.text-status-error{color:var(--color-status-error)}.text-status-removed{color:var(--color-status-removed)}.text-status-unstable{color:var(--color-status-unstable)}.text-subtle-foreground{color:var(--color-subtle-foreground)}.text-surface{color:var(--color-surface)}.capitalize{text-transform:capitalize}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.underline-offset-4{text-underline-offset:4px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.-outline-offset-1{outline-offset:calc(1px * -1)}.outline-image-outline{outline-color:var(--color-image-outline)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.outline-none{--tw-outline-style:none;outline-style:none}.scroll-queue{scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent}.select-none{-webkit-user-select:none;user-select:none}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-primary ::selection{background-color:var(--color-primary)}.selection\:bg-primary::selection{background-color:var(--color-primary)}.selection\:text-primary-foreground ::selection{color:var(--color-primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--color-primary-foreground)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-px:after{content:var(--tw-content);width:1px}.after\:bg-ink:after{content:var(--tw-content);background-color:var(--color-ink)}.after\:shadow-\[0_0_0_1px_rgb\(255_255_255\/70\%\)\]:after{content:var(--tw-content);--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ffffffb3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.hover\:border-line:hover{border-color:var(--color-line)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/80:hover{background-color:#a62a20cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#a62a20e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-ink-hover:hover{background-color:var(--color-ink-hover)}.hover\:bg-primary\/80:hover{background-color:#333c}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f6f6f6cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-surface-hover:hover{background-color:var(--color-surface-hover)}.hover\:bg-surface-muted:hover{background-color:var(--color-surface-muted)}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:translate-y-0:focus{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.focus-visible\:border-ring:focus-visible{border-color:var(--color-ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:#33333380}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-ring) 50%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-3:focus-visible{outline-offset:3px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--color-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:enabled\:bg-surface-muted:hover:enabled{background-color:var(--color-surface-muted)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.has-\[select\:disabled\]\:opacity-50:has(:is(select:disabled)){opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--color-destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:#a62a2033}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.aria-pressed\:bg-surface-selected[aria-pressed=true]{background-color:var(--color-surface-selected)}.aria-pressed\:text-ink[aria-pressed=true]{color:var(--color-ink)}@media (hover:hover){.aria-pressed\:hover\:enabled\:bg-surface-hover[aria-pressed=true]:hover:enabled{background-color:var(--color-surface-hover)}}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}.data-\[size\=sm\]\:py-0\.5[data-size=sm]{padding-block:calc(var(--spacing) * .5)}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-120{--tw-duration:.12s;transition-duration:.12s}}@media (width>=40rem){.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-command{max-width:var(--container-command)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-end{align-items:flex-end}.sm\:gap-x-6{column-gap:calc(var(--spacing) * 6)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height));font-weight:var(--tw-font-weight,var(--text-body--font-weight))}.sm\:text-label{font-size:var(--text-label);line-height:var(--tw-leading,var(--text-label--line-height));font-weight:var(--tw-font-weight,var(--text-label--font-weight))}}@media (width>=64rem){.lg\:sticky{position:sticky}.lg\:top-0{top:calc(var(--spacing) * 0)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-screen{height:100vh}.lg\:max-h-queue-desktop{max-height:calc(100vh - 10.5rem)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-review{grid-template-columns:18rem minmax(0,1fr)}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.lg\:p-7{padding:calc(var(--spacing) * 7)}.lg\:px-7{padding-inline:calc(var(--spacing) * 7)}.lg\:py-6{padding-block:calc(var(--spacing) * 6)}}@media (width>=80rem){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-approval{grid-template-columns:minmax(0,1fr) auto}.xl\:items-center{align-items:center}.xl\:p-8{padding:calc(var(--spacing) * 8)}}@media (prefers-color-scheme:dark){.dark\:bg-input\/30{background-color:#d4d4d44d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--color-input) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-input\/50:hover{background-color:#d4d4d480}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--color-input) 50%, transparent)}}}.dark\:aria-invalid\:border-destructive\/50[aria-invalid=true]{border-color:#a62a2080}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50[aria-invalid=true]{border-color:color-mix(in oklab, var(--color-destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:#a62a2066}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}}@media (pointer:coarse){.pointer-coarse\:size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.pointer-coarse\:min-h-11{min-height:calc(var(--spacing) * 11)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>span\:last-child\]\:h-full>span:last-child{height:100%}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media (prefers-reduced-motion:reduce){[data-slot=button],[data-slot=native-select],input{transition:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-duration{syntax:"*";inherits:false}