diff --git a/.next/dev/cache/turbopack/23c46498/CURRENT b/.next/dev/cache/turbopack/23c46498/CURRENT index 31d94df..7dcc604 100644 Binary files a/.next/dev/cache/turbopack/23c46498/CURRENT and b/.next/dev/cache/turbopack/23c46498/CURRENT differ diff --git a/.next/dev/cache/turbopack/23c46498/LOG b/.next/dev/cache/turbopack/23c46498/LOG index 15f8ea9..f2beeb9 100644 --- a/.next/dev/cache/turbopack/23c46498/LOG +++ b/.next/dev/cache/turbopack/23c46498/LOG @@ -5834,3 +5834,279 @@ FAM | META SEQ | SST SEQ | RANGE 0 | 00013503 | 00013502 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) 1 | 00013504 | 00013500 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) 2 | 00013505 | 00013501 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) +Time 2026-03-05T09:12:24.6778725Z +Commit 00013529 4 keys in 16ms 819µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013527 | 00013526 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013528 | 00013524 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) + 2 | 00013529 | 00013525 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) +Time 2026-03-05T09:26:50.6243723Z +Commit 00013535 4 keys in 7ms 324µs 500ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013533 | 00013532 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013534 | 00013531 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) + 1 | 00013535 | 00013530 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) +Time 2026-03-05T09:28:50.6367929Z +Commit 00013541 4 keys in 7ms 682µs 500ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013539 | 00013538 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013540 | 00013536 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) + 2 | 00013541 | 00013537 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) +Time 2026-03-05T09:30:50.6331668Z +Commit 00013547 4 keys in 6ms 493µs 600ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013545 | 00013544 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013546 | 00013542 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) + 2 | 00013547 | 00013543 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) +Time 2026-03-05T09:32:50.6240317Z +Commit 00013553 4 keys in 16ms 750µs 700ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013551 | 00013550 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013552 | 00013548 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) + 2 | 00013553 | 00013549 SST | O | b294a4237ccef201-b294a4237ccef201 (0 MiB, fresh) +Time 2026-03-05T09:40:38.5061297Z +Commit 00013559 149 keys in 6ms 249µs +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013557 | 00013556 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013558 | 00013554 SST | [================================================================================================] | 0667c7b664635738-fd8767054879a7cc (0 MiB, fresh) + 2 | 00013559 | 00013555 SST | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc (0 MiB, fresh) +Time 2026-03-05T09:40:42.3191423Z +Commit 00013565 139 keys in 6ms 488µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013563 | 00013562 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013564 | 00013560 SST | [================================================================================================] | 0667c7b664635738-fd8767054879a7cc (0 MiB, fresh) + 2 | 00013565 | 00013561 SST | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc (0 MiB, fresh) +Time 2026-03-05T09:41:53.2990348Z +Commit 00013571 139 keys in 7ms 775µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013569 | 00013568 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013570 | 00013567 SST | [================================================================================================] | 0667c7b664635738-fd8767054879a7cc (0 MiB, fresh) + 2 | 00013571 | 00013566 SST | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc (0 MiB, fresh) +Time 2026-03-05T09:42:03.9130042Z +Commit 00013577 4 keys in 7ms 403µs 300ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013575 | 00013574 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013576 | 00013572 SST | O | 7c65b158fbf615ea-7c65b158fbf615ea (0 MiB, fresh) + 2 | 00013577 | 00013573 SST | O | 7c65b158fbf615ea-7c65b158fbf615ea (0 MiB, fresh) +Time 2026-03-05T09:42:16.5822981Z +Commit 00013583 59 keys in 8ms 342µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013581 | 00013580 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013582 | 00013579 SST | [==============================================================================================] | 040dc7eeb774bec4-f5d5f2d6bd5d47cb (0 MiB, fresh) + 2 | 00013583 | 00013578 SST | [============================================================================================] | 09b7999c944d458c-f5d5f2d6bd5d47cb (0 MiB, fresh) +Time 2026-03-05T09:42:30.0633616Z +Commit 00013589 143 keys in 6ms 652µs 200ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013587 | 00013586 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013588 | 00013584 SST | [================================================================================================] | 0667c7b664635738-fd8767054879a7cc (0 MiB, fresh) + 2 | 00013589 | 00013585 SST | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc (0 MiB, fresh) +Time 2026-03-05T09:42:39.863664Z +Commit 00013595 4 keys in 16ms 629µs 600ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013593 | 00013592 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013594 | 00013590 SST | O | 7c65b158fbf615ea-7c65b158fbf615ea (0 MiB, fresh) + 2 | 00013595 | 00013591 SST | O | 7c65b158fbf615ea-7c65b158fbf615ea (0 MiB, fresh) +Time 2026-03-05T09:43:46.7973842Z +Commit 00013601 536 keys in 11ms 659µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013599 | 00013598 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013600 | 00013597 SST | [==================================================================================================] | 00c875afcd53ecac-fff8031d5d519426 (0 MiB, fresh) + 2 | 00013601 | 00013596 SST | [==================================================================================================] | 00c875afcd53ecac-ff1ad0c236dc7dd8 (2 MiB, fresh) +Time 2026-03-05T09:44:14.8946301Z +Commit 00013611 3633 keys in 10ms 570µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013607 | 00013604 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 4 | 00013608 | 00013606 SST | [=============================================================================================] | 0d17912fd410ae98-fede697cf988e470 (0 MiB, fresh) + 3 | 00013609 | 00013605 SST | [============================================================================================] | 094fc48477aa1157-f76d1016977e8665 (0 MiB, fresh) + 1 | 00013610 | 00013603 SST | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa (1 MiB, fresh) + 2 | 00013611 | 00013602 SST | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa (6 MiB, fresh) + 2 | 00013614 | Compaction: + 2 | 00013614 | MERGE (8273 keys): + 2 | 00013614 | 00013189 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013195 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013200 INPUT | [==================================================================================================] | 000d168784b3a904-fffb6b73b51e00c8 + 2 | 00013614 | 00013210 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013221 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013227 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013233 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013239 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013245 INPUT | [====================================================================] | 3ffdfb3b7d50fcf1-ef311d8b965c9633 + 2 | 00013614 | 00013251 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013257 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013263 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013269 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013275 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013281 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013287 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013293 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013299 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013305 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013311 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013317 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013323 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013328 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013338 INPUT | [==================================================================================================] | 000d168784b3a904-fff068465974022c + 2 | 00013614 | 00013349 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013359 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013364 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013371 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013377 INPUT | [================================================================================] | 20ff59e1772d8bcf-ef311d8b965c9633 + 2 | 00013614 | 00013387 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013393 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013399 INPUT | [==========================================================================================] | 09a1a5601bffdc2e-f123127f3b6f4541 + 2 | 00013614 | 00013404 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013415 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013420 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013426 INPUT | [==================================================================================================] | 00eac999f8125084-ffe64bbd36bacfc8 + 2 | 00013614 | 00013433 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013438 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013444 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013451 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013457 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013462 INPUT | [==================================================================================================] | 000b1fbdee8aaa62-fff49d0b9a706a34 + 2 | 00013614 | 00013473 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013479 INPUT | [===========================] | 3922e28834dec7a3-801410113b08be83 + 2 | 00013614 | 00013485 INPUT | O | 3e454b68eb86960f-3e454b68eb86960f + 2 | 00013614 | 00013490 INPUT | [==================================================================================================] | 001159b6a37810de-ff870422b220f2d9 + 2 | 00013614 | 00013501 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013507 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013513 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013519 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013525 INPUT | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 + 2 | 00013614 | 00013531 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013537 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013543 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013549 INPUT | O | b294a4237ccef201-b294a4237ccef201 + 2 | 00013614 | 00013555 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013561 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013566 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013573 INPUT | O | 7c65b158fbf615ea-7c65b158fbf615ea + 2 | 00013614 | 00013578 INPUT | [============================================================================================] | 09b7999c944d458c-f5d5f2d6bd5d47cb + 2 | 00013614 | 00013585 INPUT | [================================================================================================] | 06945e35a566c40d-fd8767054879a7cc + 2 | 00013614 | 00013591 INPUT | O | 7c65b158fbf615ea-7c65b158fbf615ea + 2 | 00013614 | 00013596 INPUT | [==================================================================================================] | 00c875afcd53ecac-ff1ad0c236dc7dd8 + 2 | 00013614 | 00013602 INPUT | [==================================================================================================] | 000d168784b3a904-ffd966598c8595fa + 2 | 00013614 | 00013613 OUTPUT | [==================================================================================================] | 007b83f40de780ac-ffe8beb2fab5240b (cold) + 2 | 00013614 | 00013612 OUTPUT | [==================================================================================================] | 000b1fbdee8aaa62-fffb6b73b51e00c8 (warm) +Time 2026-03-05T09:44:15.0737579Z +Commit 00013615 8273 keys in 32ms 476µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 2 | 00013614 | 00013613 SST | [==================================================================================================] | 007b83f40de780ac-ffe8beb2fab5240b (0 MiB, cold) + 2 | 00013614 | 00013612 SST | [==================================================================================================] | 000b1fbdee8aaa62-fffb6b73b51e00c8 (16 MiB, warm) + 2 | 00013614 | 00013189 00013195 00013200 00013210 00013221 00013227 00013233 00013239 00013245 00013251 00013257 00013263 00013269 00013275 00013281 OBSOLETE SST + 2 | 00013614 | 00013287 00013293 00013299 00013305 00013311 00013317 00013323 00013328 00013338 00013349 00013359 00013364 00013371 00013377 00013387 OBSOLETE SST + 2 | 00013614 | 00013393 00013399 00013404 00013415 00013420 00013426 00013433 00013438 00013444 00013451 00013457 00013462 00013473 00013479 00013485 OBSOLETE SST + 2 | 00013614 | 00013490 00013501 00013507 00013513 00013519 00013525 00013531 00013537 00013543 00013549 00013555 00013561 00013566 00013573 00013578 OBSOLETE SST + 2 | 00013614 | 00013585 00013591 00013596 00013602 OBSOLETE SST + | | 00013189 00013195 00013200 00013210 00013221 00013227 00013233 00013239 00013245 00013251 00013257 00013263 00013269 00013275 00013281 SST DELETED + | | 00013287 00013293 00013299 00013305 00013311 00013317 00013323 00013328 00013338 00013349 00013359 00013364 00013371 00013377 00013387 SST DELETED + | | 00013393 00013399 00013404 00013415 00013420 00013426 00013433 00013438 00013444 00013451 00013457 00013462 00013473 00013479 00013485 SST DELETED + | | 00013490 00013501 00013507 00013513 00013519 00013525 00013531 00013537 00013543 00013549 00013555 00013561 00013566 00013573 00013578 SST DELETED + | | 00013585 00013591 00013596 00013602 SST DELETED + | | 00013193 00013199 00013208 00013217 00013225 00013231 00013237 00013243 00013249 00013255 00013261 00013267 00013273 00013279 00013285 META DELETED + | | 00013291 00013297 00013303 00013309 00013315 00013321 00013327 00013335 00013346 00013355 00013363 00013368 00013375 00013383 00013391 META DELETED + | | 00013397 00013403 00013413 00013419 00013425 00013431 00013437 00013443 00013449 00013455 00013461 00013471 00013477 00013482 00013489 META DELETED + | | 00013498 00013505 00013511 00013517 00013522 00013529 00013534 00013541 00013547 00013553 00013559 00013565 00013571 00013577 00013583 META DELETED + | | 00013589 00013595 00013601 00013611 META DELETED +Time 2026-03-05T09:45:04.2738421Z +Commit 00013625 1904 keys in 10ms 729µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013621 | 00013618 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 4 | 00013622 | 00013620 SST | [====================================================================================] | 02cea76613175246-ddcd9a48d7354f8a (0 MiB, fresh) + 3 | 00013623 | 00013619 SST | [=============================================================================] | 1053e97e66b456e8-d8133ee902cc8c89 (0 MiB, fresh) + 2 | 00013624 | 00013616 SST | [==================================================================================================] | 0051cad80c47e3ca-fff3b56bbe0e6b22 (2 MiB, fresh) + 1 | 00013625 | 00013617 SST | [==================================================================================================] | 0051cad80c47e3ca-fff3b56bbe0e6b22 (0 MiB, fresh) +Time 2026-03-05T09:45:22.6919165Z +Commit 00013631 4 keys in 7ms 467µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013629 | 00013628 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013630 | 00013626 SST | O | 801410113b08be83-801410113b08be83 (0 MiB, fresh) + 2 | 00013631 | 00013627 SST | O | 801410113b08be83-801410113b08be83 (0 MiB, fresh) +Time 2026-03-05T09:45:38.0730767Z +Commit 00013637 81 keys in 6ms 305µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013635 | 00013634 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013636 | 00013633 SST | [==============================================================================================] | 040dc7eeb774bec4-f5d5f2d6bd5d47cb (0 MiB, fresh) + 2 | 00013637 | 00013632 SST | [==============================================================================================] | 040dc7eeb774bec4-f5d5f2d6bd5d47cb (0 MiB, fresh) +Time 2026-03-05T09:45:43.2260573Z +Commit 00013647 2146 keys in 9ms 217µs 500ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013643 | 00013640 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 4 | 00013644 | 00013642 SST | [==================================================================================================] | 006fbb6ec017bf69-ff2f104f8736cc76 (0 MiB, fresh) + 3 | 00013645 | 00013641 SST | [==================================================================================================] | 00722fe17a68306b-fffaa2b20140affd (0 MiB, fresh) + 2 | 00013646 | 00013638 SST | [==================================================================================================] | 001159b6a37810de-ffb36b555eaa2e36 (2 MiB, fresh) + 1 | 00013647 | 00013639 SST | [==================================================================================================] | 001159b6a37810de-fff88b53b5ad4b9a (0 MiB, fresh) +Time 2026-03-05T09:45:49.5803448Z +Commit 00013653 2390 keys in 8ms 273µs 200ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013651 | 00013650 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013652 | 00013648 SST | [==================================================================================================] | 015aa7af8c46be57-ff1373558b528b52 (0 MiB, fresh) + 1 | 00013653 | 00013649 SST | [==================================================================================================] | 0013a9e4f34335e5-fff187cd7cce0e80 (1 MiB, fresh) +Time 2026-03-05T09:45:51.864302Z +Commit 00013663 681 keys in 11ms 141µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013659 | 00013656 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013660 | 00013654 SST | [==================================================================================================] | 01e217d129c5cd8b-ffd2128295feedf0 (0 MiB, fresh) + 2 | 00013661 | 00013655 SST | [==================================================================================================] | 0205db9f6b04596e-ff1763b6f45cd288 (0 MiB, fresh) + 3 | 00013662 | 00013657 SST | [=============================================================================] | 0a12f0dc4d221852-d125bd8c7ccdb585 (0 MiB, fresh) + 4 | 00013663 | 00013658 SST | [==========================================================] | 2559e4611f5c0172-bd0c62044625aa6c (0 MiB, fresh) +Time 2026-03-05T09:46:36.3307863Z +Commit 00013673 198 keys in 10ms 222µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013669 | 00013666 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013670 | 00013664 SST | [==================================================================================================] | 0234350df6afdb76-ffd95e498f1850a5 (0 MiB, fresh) + 1 | 00013671 | 00013665 SST | [==================================================================================================] | 0234350df6afdb76-ffd95e498f1850a5 (0 MiB, fresh) + 4 | 00013672 | 00013667 SST | [===================================================] | 03b6a334a1ed1265-87fe61d16c4e336a (0 MiB, fresh) + 3 | 00013673 | 00013668 SST | [====================================================================] | 379ed994a6f89a0e-e8e89e1b79c84a13 (0 MiB, fresh) +Time 2026-03-05T09:47:18.7149438Z +Commit 00013679 77 keys in 7ms 369µs 500ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013677 | 00013676 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013678 | 00013675 SST | [=================================================================================================] | 024fd2c66c04979c-fbb97280b2255708 (0 MiB, fresh) + 1 | 00013679 | 00013674 SST | [=================================================================================================] | 024fd2c66c04979c-fbb97280b2255708 (0 MiB, fresh) +Time 2026-03-05T09:47:38.9509265Z +Commit 00013685 78 keys in 7ms 841µs 600ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013683 | 00013682 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013684 | 00013680 SST | [=============================================================================================] | 0302206520c18bf0-f366a041d02d9210 (0 MiB, fresh) + 2 | 00013685 | 00013681 SST | [=============================================================================================] | 0302206520c18bf0-f366a041d02d9210 (0 MiB, fresh) +Time 2026-03-05T09:51:11.5129028Z +Commit 00013695 5718 keys in 11ms 538µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013691 | 00013688 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 4 | 00013692 | 00013690 SST | [==================================================================================================] | 014468475edc4608-ff789f220176697f (0 MiB, fresh) + 3 | 00013693 | 00013689 SST | [==================================================================================================] | 00138ab5334ca35e-fffe1a2d422e4868 (0 MiB, fresh) + 2 | 00013694 | 00013686 SST | [==================================================================================================] | 00457a46f5c1adcf-fff068465974022c (3 MiB, fresh) + 1 | 00013695 | 00013687 SST | [==================================================================================================] | 00457a46f5c1adcf-fff068465974022c (1 MiB, fresh) +Time 2026-03-05T09:51:17.0554241Z +Commit 00013701 4 keys in 8ms 153µs 700ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013699 | 00013698 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013700 | 00013696 SST | O | 801410113b08be83-801410113b08be83 (0 MiB, fresh) + 2 | 00013701 | 00013697 SST | O | 801410113b08be83-801410113b08be83 (0 MiB, fresh) +Time 2026-03-05T09:51:20.21688Z +Commit 00013707 59 keys in 7ms 408µs +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013705 | 00013704 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013706 | 00013703 SST | [============================================================================================] | 0cf8b834dd50cb16-fcf23e4059cdfb0b (0 MiB, fresh) + 2 | 00013707 | 00013702 SST | [============================================================================================] | 0e53f9aa3f2e5fa6-fcf23e4059cdfb0b (0 MiB, fresh) +Time 2026-03-05T09:51:26.6173918Z +Commit 00013717 242 keys in 11ms 469µs +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013713 | 00013710 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013714 | 00013709 SST | [==================================================================================================] | 024a51d48220e7dd-fff068465974022c (0 MiB, fresh) + 3 | 00013715 | 00013711 SST | [=] | 094aadbbd0c62e5e-0e452ca0afd31391 (0 MiB, fresh) + 1 | 00013716 | 00013708 SST | [==================================================================================================] | 024a51d48220e7dd-fff068465974022c (0 MiB, fresh) + 4 | 00013717 | 00013712 SST | [=======] | 6351cf276af0408c-776c88e811462325 (0 MiB, fresh) +Time 2026-03-05T09:53:31.4657146Z +Commit 00013723 188 keys in 6ms 995µs 800ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013721 | 00013720 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013722 | 00013718 SST | [=================================================================================================] | 040dc7eeb774bec4-fede697cf988e470 (0 MiB, fresh) + 2 | 00013723 | 00013719 SST | [=============================================================================================] | 06945e35a566c40d-f5d5f2d6bd5d47cb (0 MiB, fresh) +Time 2026-03-05T09:54:08.9292929Z +Commit 00013729 56 keys in 7ms 280µs 100ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013727 | 00013726 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 2 | 00013728 | 00013724 SST | [=================================================================================================] | 024fd2c66c04979c-fbb97280b2255708 (0 MiB, fresh) + 1 | 00013729 | 00013725 SST | [=================================================================================================] | 024fd2c66c04979c-fbb97280b2255708 (0 MiB, fresh) diff --git a/.next/dev/prerender-manifest.json b/.next/dev/prerender-manifest.json index 6e9380a..854ead7 100644 --- a/.next/dev/prerender-manifest.json +++ b/.next/dev/prerender-manifest.json @@ -4,8 +4,8 @@ "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { - "previewModeId": "196862b1bfff2ba012281ebc734bd07b", - "previewModeSigningKey": "3745933161423febbc580e5730495b53049213e7a37a27fdeb1d4a5c7215d2d3", - "previewModeEncryptionKey": "58cb94e204a1d02b3f8a529ba81bba219c2cfe8d0b7b36eff707ff947755d2d5" + "previewModeId": "81c5b99488ca3ef406c0ad8b4a86d3ca", + "previewModeSigningKey": "5c3f99d29cba2cf6c1d0b5f06b0c3bcb717bd8a4cabfcfa05667c35a362a414f", + "previewModeEncryptionKey": "b589b6ec1c70eaeb79d83dbfbb549733febd58291914ffc41c9e19c4d4f59510" } } \ No newline at end of file diff --git a/.next/dev/server/app-paths-manifest.json b/.next/dev/server/app-paths-manifest.json index 61174fc..6151373 100644 --- a/.next/dev/server/app-paths-manifest.json +++ b/.next/dev/server/app-paths-manifest.json @@ -1,13 +1,13 @@ { "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js", + "/api/chapters/[id]/route": "app/api/chapters/[id]/route.js", "/api/projects/[id]/route": "app/api/projects/[id]/route.js", "/api/projects/route": "app/api/projects/route.js", "/api/user/profile/route": "app/api/user/profile/route.js", "/dashboard/page": "app/dashboard/page.js", "/login/page": "app/login/page.js", - "/project/[id]/ideas/page": "app/project/[id]/ideas/page.js", + "/profile/page": "app/profile/page.js", "/project/[id]/page": "app/project/[id]/page.js", "/project/[id]/settings/page": "app/project/[id]/settings/page.js", - "/project/[id]/workflow/page": "app/project/[id]/workflow/page.js", "/project/[id]/world/page": "app/project/[id]/world/page.js" } \ No newline at end of file diff --git a/.next/dev/server/app/api/chapters/[id]/route.js b/.next/dev/server/app/api/chapters/[id]/route.js index 2d0063b..85c4022 100644 --- a/.next/dev/server/app/api/chapters/[id]/route.js +++ b/.next/dev/server/app/api/chapters/[id]/route.js @@ -1,10 +1,9 @@ var R=require("../../../../chunks/[turbopack]_runtime.js")("server/app/api/chapters/[id]/route.js") -R.c("server/chunks/Documents_00 - projet_plumeia_src_lib_prisma_ts_d7a1a866._.js") -R.c("server/chunks/549ce_next_dcda18ca._.js") +R.c("server/chunks/549ce_next_d909a8c3._.js") R.c("server/chunks/549ce_@auth_core_cb936014._.js") R.c("server/chunks/549ce_jose_dist_webapi_61916537._.js") -R.c("server/chunks/[root-of-the-server]__40bf2c68._.js") -R.c("server/chunks/[root-of-the-server]__27e12fd5._.js") +R.c("server/chunks/[root-of-the-server]__b06aea5c._.js") +R.c("server/chunks/[root-of-the-server]__94fb2294._.js") R.c("server/chunks/b79dd_plumeia__next-internal_server_app_api_chapters_[id]_route_actions_62885031.js") R.m("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/00 - projet/plumeia/src/app/api/chapters/[id]/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)") module.exports=R.m("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/build/templates/app-route.js { INNER_APP_ROUTE => \"[project]/Documents/00 - projet/plumeia/src/app/api/chapters/[id]/route.ts [app-route] (ecmascript)\" } [app-route] (ecmascript)").exports diff --git a/.next/dev/server/app/profile/page.js b/.next/dev/server/app/profile/page.js index a83f409..783b971 100644 --- a/.next/dev/server/app/profile/page.js +++ b/.next/dev/server/app/profile/page.js @@ -4,7 +4,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__715a440e._.js") R.c("server/chunks/ssr/549ce_next_dist_a9a2f161._.js") R.c("server/chunks/ssr/[externals]__7f148858._.js") R.c("server/chunks/ssr/549ce_next_dist_client_components_builtin_global-error_316a03e7.js") -R.c("server/chunks/ssr/[root-of-the-server]__31132813._.js") +R.c("server/chunks/ssr/[root-of-the-server]__f4e881ac._.js") R.c("server/chunks/ssr/549ce_next_dist_client_components_5ea51078._.js") R.c("server/chunks/ssr/549ce_next_dist_client_components_builtin_forbidden_0318745e.js") R.c("server/chunks/ssr/549ce_next_dist_client_components_builtin_unauthorized_5a2cd2c8.js") diff --git a/.next/dev/server/app/profile/page_client-reference-manifest.js b/.next/dev/server/app/profile/page_client-reference-manifest.js index f284b78..818bb77 100644 --- a/.next/dev/server/app/profile/page_client-reference-manifest.js +++ b/.next/dev/server/app/profile/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/profile/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_79f2801f._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_79f2801f._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_79f2801f._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_7603cb71._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_profile_page_tsx_28afda27._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_79f2801f._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_7603cb71._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_profile_page_tsx_28afda27._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ab714b47._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ab714b47._.js","server/chunks/ssr/[root-of-the-server]__7a4fdd3c._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/profile/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_79f2801f._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/profile/page":["static/chunks/Documents_00 - projet_plumeia_79f2801f._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_7603cb71._.js","static/chunks/Documents_00 - projet_plumeia_src_app_profile_page_tsx_28afda27._.js"]}} +globalThis.__RSC_MANIFEST["/profile/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_8ad9aca5._.js","/_next/static/chunks/549ce_639e5594._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_profile_page_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_8ad9aca5._.js","/_next/static/chunks/549ce_639e5594._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_profile_page_tsx_39b93de6._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__e6959a42._.js","server/chunks/ssr/549ce_b15c4555._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/profile/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/profile/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/profile/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_8ad9aca5._.js","static/chunks/549ce_639e5594._.js","static/chunks/Documents_00 - projet_plumeia_src_app_profile_page_tsx_39b93de6._.js"]}} diff --git a/.next/dev/server/app/project/[id]/page_client-reference-manifest.js b/.next/dev/server/app/project/[id]/page_client-reference-manifest.js index 349d929..adbd6f0 100644 --- a/.next/dev/server/app/project/[id]/page_client-reference-manifest.js +++ b/.next/dev/server/app/project/[id]/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/project/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_e45494cc._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_cc7a6f92._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_page_tsx_e868bd7e._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_e45494cc._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_cc7a6f92._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_page_tsx_e868bd7e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js","server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js","server/chunks/ssr/549ce_lucide-react_dist_esm_icons_661fcdff._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js","static/chunks/549ce_lucide-react_dist_esm_icons_cc7a6f92._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_page_tsx_e868bd7e._.js"]}} +globalThis.__RSC_MANIFEST["/project/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_e45494cc._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_c743096e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_page_tsx_af37c0fc._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_e45494cc._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_c743096e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_page_tsx_af37c0fc._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js","server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js","server/chunks/ssr/549ce_lucide-react_dist_esm_icons_dbcadc9e._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js","static/chunks/549ce_lucide-react_dist_esm_icons_c743096e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_page_tsx_af37c0fc._.js"]}} diff --git a/.next/dev/server/app/project/[id]/settings/page_client-reference-manifest.js b/.next/dev/server/app/project/[id]/settings/page_client-reference-manifest.js index fd51d69..40383d5 100644 --- a/.next/dev/server/app/project/[id]/settings/page_client-reference-manifest.js +++ b/.next/dev/server/app/project/[id]/settings/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/project/[id]/settings/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_d99083a0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_settings_page_tsx_e868bd7e._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_d99083a0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_settings_page_tsx_e868bd7e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js","server/chunks/ssr/Documents_00 - projet_plumeia_6fd8b93a._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_d99083a0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_settings_page_tsx_e868bd7e._.js"]}} +globalThis.__RSC_MANIFEST["/project/[id]/settings/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_d99083a0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_settings_page_tsx_af37c0fc._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_d99083a0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_settings_page_tsx_af37c0fc._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js","server/chunks/ssr/Documents_00 - projet_plumeia_6fd8b93a._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_d99083a0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_settings_page_tsx_af37c0fc._.js"]}} diff --git a/.next/dev/server/app/project/[id]/world/page_client-reference-manifest.js b/.next/dev/server/app/project/[id]/world/page_client-reference-manifest.js index 80a25fc..917127f 100644 --- a/.next/dev/server/app/project/[id]/world/page_client-reference-manifest.js +++ b/.next/dev/server/app/project/[id]/world/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/project/[id]/world/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_d41e99d0._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_world_page_tsx_e868bd7e._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_b58fa4d0._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_d41e99d0._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_world_page_tsx_e868bd7e._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_cf756187._.js","server/chunks/ssr/Documents_00 - projet_plumeia_src_46da9c24._.js","server/chunks/ssr/549ce_lucide-react_dist_esm_icons_17b35e95._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_b58fa4d0._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_src_d41e99d0._.js","static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_world_page_tsx_e868bd7e._.js"]}} +globalThis.__RSC_MANIFEST["/project/[id]/world/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/549ce_next_dist_52b68393._.js","/_next/static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx ":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_d41e99d0._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_world_page_tsx_af37c0fc._.js"],"async":false},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)","name":"*","chunks":["/_next/static/chunks/Documents_00%20-%20projet_plumeia_c15954d6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_a6d9cb6f._.js","/_next/static/chunks/549ce_fb85371e._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_layout_tsx_39b93de6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_d41e99d0._.js","/_next/static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","/_next/static/chunks/Documents_00%20-%20projet_plumeia_src_app_project_%5Bid%5D_world_page_tsx_af37c0fc._.js"],"async":false}},"ssrModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/549ce_next_dist_ebf1966f._.js","server/chunks/ssr/[externals]_next_dist_1aaf5479._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js"],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-ssr] (ecmascript)","name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__3f5b8287._.js","server/chunks/ssr/[root-of-the-server]__f5705295._.js","server/chunks/ssr/549ce_714e7264._.js","server/chunks/ssr/Documents_00 - projet_plumeia_src_46da9c24._.js","server/chunks/ssr/549ce_lucide-react_dist_esm_icons_17b35e95._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/layout-router.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/layout-router.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/render-from-template-context.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-page.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-page.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/client-segment.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/client-segment.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/metadata/generate/icon-mark.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/lib/framework/boundary-components.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error.js [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/providers/LanguageProvider.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}},"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-client] (ecmascript)":{"*":{"id":"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page.tsx [app-rsc] (client reference proxy)","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/Documents/00 - projet/plumeia/src/app/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page":[{"path":"static/chunks/[root-of-the-server]__c391f813._.css","inlined":false}]},"entryJSFiles":{"[project]/Documents/00 - projet/plumeia/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/549ce_next_dist_52b68393._.js","static/chunks/549ce_next_dist_client_components_builtin_global-error_b5f8e6df.js"],"[project]/Documents/00 - projet/plumeia/src/app/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/layout":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js"],"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page":["static/chunks/Documents_00 - projet_plumeia_c15954d6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_layout_tsx_b5f8e6df._.js","static/chunks/Documents_00 - projet_plumeia_src_a6d9cb6f._.js","static/chunks/549ce_fb85371e._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_layout_tsx_39b93de6._.js","static/chunks/Documents_00 - projet_plumeia_src_d41e99d0._.js","static/chunks/549ce_lucide-react_dist_esm_icons_d90062c6._.js","static/chunks/Documents_00 - projet_plumeia_src_app_project_[id]_world_page_tsx_af37c0fc._.js"]}} diff --git a/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js b/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js index 6b29c9a..9dfdf71 100644 --- a/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js +++ b/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js @@ -20,6 +20,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__proje var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$copy$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Copy$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/copy.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$wand$2d$sparkles$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Wand2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/wand-sparkles.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/check.js [app-ssr] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2d$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCheck$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/check-check.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$refresh$2d$cw$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__RefreshCw$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/refresh-cw.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$maximize$2d$2$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Maximize2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/maximize-2.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-ssr] (ecmascript) "); @@ -33,12 +34,12 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__proje ; ; ; -const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"])(({ initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref)=>{ +const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"])(({ editorId, initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref)=>{ const contentRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const scrollContainerRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); const [isFocused, setIsFocused] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false); // Auto-Save State - const [saveStatus, setSaveStatus] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('saved'); + const [saveStatus, setSaveStatus] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('saved_db'); const saveTimeoutRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRef"])(null); // Track sync state to avoid autosave loopbacks wiping current edits // Start as null so the initial useEffect ALWAYS writes initialContent to the div @@ -151,27 +152,43 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj // --- Effects --- (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{ if (!contentRef.current || initialContent === undefined) return; - // Ignore exact loopbacks from our own saves - if (initialContent === syncRef.current) return; - // Safety: never overwrite real content with an empty string from a stale/placeholder source - const hasRealContent = latestContentRef.current && latestContentRef.current.trim().length > 0; - if (!initialContent && hasRealContent) return; - // We reached here, so initialContent is genuinely NEW data we didn't know about. - // E.g. clicked another chapter, or data was modified in another tab/device. - contentRef.current.innerHTML = initialContent; - syncRef.current = initialContent; - latestContentRef.current = initialContent; + let contentToLoad = initialContent; + let hasLocalDraft = false; + // Check localStorage for a newer draft + if (editorId) { + const localDraft = localStorage.getItem(`draft_${editorId}`); + if (localDraft && localDraft !== initialContent) { + contentToLoad = localDraft; + hasLocalDraft = true; + setSaveStatus('saved_local'); + } + } + // 1. Si le contenu entrant est identique à ce qu'on a déjà, on ne touche à rien + if (contentToLoad === contentRef.current.innerHTML) return; + // 2. LOGIQUE CRUCIALE : On ne met à jour le DOM que si : + // - L'éditeur est vide (premier chargement) + // - OU le document a changé (si vous gérez des IDs de documents) + // - OU si l'utilisateur n'est PAS en train de focus l'éditeur + const isUserEditing = document.activeElement === contentRef.current; + if (!isUserEditing || contentRef.current.innerHTML === "" && contentToLoad !== "") { + contentRef.current.innerHTML = contentToLoad; + syncRef.current = contentToLoad; + latestContentRef.current = contentToLoad; + } }, [ - initialContent + initialContent, + editorId ]); // Flush pending save on unmount (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{ return ()=>{ if (saveTimeoutRef.current) { clearTimeout(saveTimeoutRef.current); - if (latestContentRef.current !== syncRef.current && onSave) { - onSave(latestContentRef.current); - } + } + // Always save if there are unsaved changes, regardless of timer + if (latestContentRef.current !== syncRef.current && onSave) { + syncRef.current = latestContentRef.current; + onSave(latestContentRef.current); } }; }, [ @@ -188,16 +205,34 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj const currentHtml = contentRef.current.innerHTML; latestContentRef.current = currentHtml; if (onChange) onChange(currentHtml); - // Auto-Save Debounce - if (onSave) { + // 1. Save locally immediately + if (editorId) { + localStorage.setItem(`draft_${editorId}`, currentHtml); + setSaveStatus('saved_local'); + } else { setSaveStatus('unsaved'); + } + // 2. Auto-Save Debounce for DB + if (onSave) { if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current); saveTimeoutRef.current = setTimeout(async ()=>{ setSaveStatus('saving'); const htmlToSave = latestContentRef.current; - await onSave(htmlToSave); - syncRef.current = htmlToSave; // Record that we've synced this exact string to the server - setSaveStatus('saved'); + // Update syncRef BEFORE calling onSave, because onSave triggers setProjects + // which causes a re-render. The useEffect must see the updated syncRef + // to avoid re-writing innerHTML unnecessarily. + syncRef.current = htmlToSave; + try { + await onSave(htmlToSave); + setSaveStatus('saved_db'); + if (editorId) { + // Once saved to DB, we can consider the local draft synced if we want, + // or just keep it there. It will be overwritten on next load. + } + } catch (err) { + console.error('Auto-save failed:', err); + setSaveStatus('saved_local'); // Revert to local save status on error + } }, 2000); // 2 seconds } } @@ -305,12 +340,12 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 18 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 340, + lineNumber: 377, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 327, + lineNumber: 364, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)); const hasSelection = savedRange.current && !savedRange.current.collapsed; @@ -328,7 +363,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj ` }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 348, + lineNumber: 385, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -340,7 +375,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Gras" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 359, + lineNumber: 396, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -349,7 +384,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Italique" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 360, + lineNumber: 397, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -358,14 +393,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Souligné" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 361, + lineNumber: 398, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 362, + lineNumber: 399, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -375,7 +410,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Titre 1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 363, + lineNumber: 400, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -385,14 +420,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Titre 2" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 364, + lineNumber: 401, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 365, + lineNumber: 402, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -401,7 +436,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Aligner à gauche" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 366, + lineNumber: 403, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -410,7 +445,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Centrer" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 367, + lineNumber: 404, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -419,14 +454,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Aligner à droite" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 368, + lineNumber: 405, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 369, + lineNumber: 406, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -435,14 +470,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj label: "Liste" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 370, + lineNumber: 407, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "flex-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 372, + lineNumber: 409, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -452,47 +487,84 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__["Loader2"], { size: 12, - className: "animate-spin" + className: "animate-spin text-blue-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 376, + lineNumber: 413, columnNumber: 41 }, ("TURBOPACK compile-time value", void 0)), - " Sauvegarde..." + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-blue-500 hidden sm:inline", + children: "Sauvegarde en cours..." + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 413, + columnNumber: 102 + }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true), - saveStatus === 'saved' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { + saveStatus === 'saved_local' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__["Check"], { - size: 12, + size: 14, className: "text-green-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 377, - columnNumber: 40 + lineNumber: 414, + columnNumber: 46 }, ("TURBOPACK compile-time value", void 0)), - " Sauvegardé" + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-green-500 hidden sm:inline", + children: "Brouillon local" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 414, + columnNumber: 93 + }, ("TURBOPACK compile-time value", void 0)) + ] + }, void 0, true), + saveStatus === 'saved_db' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2d$check$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCheck$3e$__["CheckCheck"], { + size: 14, + className: "text-emerald-600" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 415, + columnNumber: 43 + }, ("TURBOPACK compile-time value", void 0)), + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-emerald-600 hidden sm:inline", + children: "Sauvegardé" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 415, + columnNumber: 97 + }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true), saveStatus === 'unsaved' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-amber-500", - children: "Modifications non enregistrées..." + children: "Non sauvegardé..." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 378, + lineNumber: 416, columnNumber: 40 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 375, + lineNumber: 412, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 381, + lineNumber: 419, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -502,13 +574,13 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj isActive: showHistoryMargin }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 382, + lineNumber: 420, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 358, + lineNumber: 395, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -538,7 +610,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj "data-placeholder": "Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 398, + lineNumber: 436, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)), showHistoryMargin && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -552,7 +624,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj className: "mx-auto mb-2 opacity-20" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 422, + lineNumber: 460, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -560,13 +632,13 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: "L'historique des modifications IA apparaîtra ici, aligné avec votre texte." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 423, + lineNumber: 461, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 421, + lineNumber: 459, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), versionGroups.map((group)=>{ @@ -585,7 +657,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj className: "absolute inset-0 bg-white border border-indigo-100 rounded-lg transform -translate-x-1 -translate-y-1 -z-10 shadow-sm" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 443, + lineNumber: 481, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -600,7 +672,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj className: "text-indigo-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 453, + lineNumber: 491, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -608,13 +680,13 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: latest.type }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 455, + lineNumber: 493, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 451, + lineNumber: 489, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -628,7 +700,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj }) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 463, + lineNumber: 501, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)), isStack && (isExpanded ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$up$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronUp$3e$__["ChevronUp"], { @@ -636,26 +708,26 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj className: "text-slate-400" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 467, + lineNumber: 505, columnNumber: 42 }, ("TURBOPACK compile-time value", void 0)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { size: 14, className: "text-slate-400" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 467, + lineNumber: 505, columnNumber: 95 }, ("TURBOPACK compile-time value", void 0))) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 462, + lineNumber: 500, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 447, + lineNumber: 485, columnNumber: 23 }, ("TURBOPACK compile-time value", void 0)), !isExpanded && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -670,7 +742,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 475, + lineNumber: 513, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -681,20 +753,20 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 10 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 482, + lineNumber: 520, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0)), " Restaurer" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 478, + lineNumber: 516, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 474, + lineNumber: 512, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), isExpanded && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -710,7 +782,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: i === 0 ? 'Dernière version' : `Version -${i}` }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 493, + lineNumber: 531, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -722,13 +794,13 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj }) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 496, + lineNumber: 534, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 492, + lineNumber: 530, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -740,7 +812,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 500, + lineNumber: 538, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -751,54 +823,54 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 10 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 507, + lineNumber: 545, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)), " Restaurer cette version" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 503, + lineNumber: 541, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)) ] }, v.id, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 491, + lineNumber: 529, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0))) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 489, + lineNumber: 527, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 439, + lineNumber: 477, columnNumber: 21 }, ("TURBOPACK compile-time value", void 0)) }, group.id, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 434, + lineNumber: 472, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)); }) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 418, + lineNumber: 456, columnNumber: 13 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 395, + lineNumber: 433, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 391, + lineNumber: 429, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), contextMenu && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { @@ -812,7 +884,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj } }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 525, + lineNumber: 563, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -829,7 +901,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 24 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 536, + lineNumber: 574, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -837,13 +909,13 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: "L'IA travaille..." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 537, + lineNumber: 575, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 535, + lineNumber: 573, columnNumber: 15 }, ("TURBOPACK compile-time value", void 0)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], { children: [ @@ -852,7 +924,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: "Outils IA" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 541, + lineNumber: 579, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -864,14 +936,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 550, + lineNumber: 588, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Corriger l'orthographe" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 545, + lineNumber: 583, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -883,14 +955,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 558, + lineNumber: 596, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Reformuler" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 553, + lineNumber: 591, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -902,14 +974,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 566, + lineNumber: 604, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Développer" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 561, + lineNumber: 599, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -920,21 +992,21 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 573, + lineNumber: 611, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Continuer l'écriture" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 569, + lineNumber: 607, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "h-px bg-slate-100 my-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 576, + lineNumber: 614, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -942,7 +1014,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj children: "Édition" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 578, + lineNumber: 616, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -954,14 +1026,14 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 587, + lineNumber: 625, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Copier" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 582, + lineNumber: 620, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -972,21 +1044,21 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 594, + lineNumber: 632, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Tout sélectionner" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 590, + lineNumber: 628, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 530, + lineNumber: 568, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)) ] @@ -994,7 +1066,7 @@ const RichTextEditor = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$proj ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 347, + lineNumber: 384, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)); }); @@ -1025,6 +1097,7 @@ function WritePage() { const currentChapter = project.chapters?.find((c)=>c.id === currentChapterId); return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$components$2f$RichTextEditor$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { ref: editorRef, + editorId: currentChapterId, initialContent: currentChapter?.content || '', onSave: (html)=>updateChapter(currentChapterId, { content: html diff --git a/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js.map b/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js.map index 2919edf..b2419b2 100644 --- a/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_00 - projet_plumeia_src_47fff37c._.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/components/RichTextEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useRef, useEffect, useState, useImperativeHandle, forwardRef, useMemo } from 'react';\nimport {\n Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight, List, Heading1, Heading2,\n Copy, Wand2, Check, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw,\n ChevronDown, ChevronUp, Layers\n} from 'lucide-react';\n\nexport interface RichTextEditorHandle {\n insertHtml: (html: string) => void;\n}\n\ninterface RichTextEditorProps {\n initialContent: string;\n onChange?: (html: string) => void;\n onSave?: (html: string) => void;\n onSelectionChange?: (text: string) => void;\n onAiTransform?: (text: string, mode: 'correct' | 'rewrite' | 'expand' | 'continue') => Promise;\n}\n\ninterface Version {\n id: string;\n timestamp: number;\n type: string;\n content: string; // Full HTML snapshot\n snippet: string; // Selected text snippet before change\n topOffset: number; // Y position relative to editor top\n}\n\ninterface VersionGroup {\n id: string;\n topOffset: number;\n versions: Version[];\n}\n\nconst RichTextEditor = forwardRef(({ initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => {\n const contentRef = useRef(null);\n const scrollContainerRef = useRef(null);\n const [isFocused, setIsFocused] = useState(false);\n\n // Auto-Save State\n const [saveStatus, setSaveStatus] = useState<'saved' | 'saving' | 'unsaved'>('saved');\n const saveTimeoutRef = useRef(null);\n\n // Track sync state to avoid autosave loopbacks wiping current edits\n // Start as null so the initial useEffect ALWAYS writes initialContent to the div\n const syncRef = useRef(null);\n const latestContentRef = useRef(initialContent);\n\n // Context Menu State\n const [contextMenu, setContextMenu] = useState<{ x: number; y: number } | null>(null);\n const [isAiLoading, setIsAiLoading] = useState(false);\n\n // History State\n const [versions, setVersions] = useState([]);\n const [showHistoryMargin, setShowHistoryMargin] = useState(true);\n const [expandedGroupIds, setExpandedGroupIds] = useState>(new Set());\n\n // Refs to track selection\n const savedRange = useRef(null);\n const lastCursorPosition = useRef(null);\n\n // --- Helpers ---\n\n // Group versions by proximity (within 60px) to stack them\n const versionGroups = useMemo(() => {\n const sortedVersions = [...versions].sort((a, b) => b.timestamp - a.timestamp);\n const groups: VersionGroup[] = [];\n\n sortedVersions.forEach(v => {\n // Find an existing group close to this version\n const existingGroup = groups.find(g => Math.abs(g.topOffset - v.topOffset) < 60);\n\n if (existingGroup) {\n existingGroup.versions.push(v);\n // Keep the group timestamp sorted\n existingGroup.versions.sort((a, b) => b.timestamp - a.timestamp);\n } else {\n groups.push({\n id: `group-${v.id}`,\n topOffset: v.topOffset,\n versions: [v]\n });\n }\n });\n\n return groups;\n }, [versions]);\n\n const toggleGroup = (groupId: string) => {\n const newSet = new Set(expandedGroupIds);\n if (newSet.has(groupId)) {\n newSet.delete(groupId);\n } else {\n newSet.add(groupId);\n }\n setExpandedGroupIds(newSet);\n };\n\n const getSelectionTopOffset = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current) {\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // We need offset relative to the content container (contentRef)\n // contentRef is the white page div.\n const containerRect = contentRef.current.getBoundingClientRect();\n return rect.top - containerRect.top;\n }\n return 0;\n };\n\n const saveVersion = (type: string, textSnippet: string) => {\n if (!contentRef.current) return;\n\n const topOffset = getSelectionTopOffset();\n\n const newVersion: Version = {\n id: Date.now().toString(),\n timestamp: Date.now(),\n type: type,\n content: contentRef.current.innerHTML,\n snippet: textSnippet.substring(0, 80) + (textSnippet.length > 80 ? '...' : ''),\n topOffset\n };\n\n setVersions(prev => [newVersion, ...prev]);\n setShowHistoryMargin(true);\n };\n\n const restoreVersion = (version: Version) => {\n if (!contentRef.current) return;\n if (confirm('Restaurer cette version ? Le contenu actuel sera remplacé.')) {\n contentRef.current.innerHTML = version.content;\n handleInput();\n }\n };\n\n // --- Exposed Methods ---\n\n useImperativeHandle(ref, () => ({\n insertHtml: (text: string) => {\n saveVersion('Insertion Chat', 'Insertion depuis le panneau IA');\n\n contentRef.current?.focus();\n\n const sel = window.getSelection();\n if (lastCursorPosition.current) {\n sel?.removeAllRanges();\n sel?.addRange(lastCursorPosition.current);\n } else if (contentRef.current) {\n const range = document.createRange();\n range.selectNodeContents(contentRef.current);\n range.collapse(false);\n sel?.removeAllRanges();\n sel?.addRange(range);\n }\n\n const htmlToInsert = text.includes('<') ? text : text.replace(/\\n/g, '
');\n document.execCommand('insertHTML', false, htmlToInsert);\n handleInput();\n }\n }));\n\n // --- Effects ---\n\n useEffect(() => {\n if (!contentRef.current || initialContent === undefined) return;\n\n // Ignore exact loopbacks from our own saves\n if (initialContent === syncRef.current) return;\n\n // Safety: never overwrite real content with an empty string from a stale/placeholder source\n const hasRealContent = latestContentRef.current && latestContentRef.current.trim().length > 0;\n if (!initialContent && hasRealContent) return;\n\n // We reached here, so initialContent is genuinely NEW data we didn't know about.\n // E.g. clicked another chapter, or data was modified in another tab/device.\n contentRef.current.innerHTML = initialContent;\n syncRef.current = initialContent;\n latestContentRef.current = initialContent;\n }, [initialContent]);\n\n // Flush pending save on unmount\n useEffect(() => {\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n if (latestContentRef.current !== syncRef.current && onSave) {\n onSave(latestContentRef.current);\n }\n }\n };\n }, [onSave]);\n\n // --- Event Handlers ---\n\n const execCommand = (command: string, value: string | undefined = undefined) => {\n document.execCommand(command, false, value);\n handleInput();\n contentRef.current?.focus();\n };\n\n const handleInput = () => {\n if (contentRef.current) {\n const currentHtml = contentRef.current.innerHTML;\n latestContentRef.current = currentHtml;\n\n if (onChange) onChange(currentHtml);\n\n // Auto-Save Debounce\n if (onSave) {\n setSaveStatus('unsaved');\n if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);\n\n saveTimeoutRef.current = setTimeout(async () => {\n setSaveStatus('saving');\n const htmlToSave = latestContentRef.current;\n await onSave(htmlToSave);\n syncRef.current = htmlToSave; // Record that we've synced this exact string to the server\n setSaveStatus('saved');\n }, 2000); // 2 seconds\n }\n }\n };\n\n const saveSelection = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current?.contains(sel.anchorNode)) {\n lastCursorPosition.current = sel.getRangeAt(0).cloneRange();\n }\n };\n\n const handleSelection = () => {\n const selection = window.getSelection();\n saveSelection();\n\n if (selection && selection.toString().length > 0 && onSelectionChange) {\n onSelectionChange(selection.toString());\n } else if (onSelectionChange) {\n onSelectionChange(\"\");\n }\n };\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault();\n const selection = window.getSelection();\n\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n if (contentRef.current?.contains(range.commonAncestorContainer)) {\n savedRange.current = range.cloneRange();\n setContextMenu({ x: e.clientX, y: e.clientY });\n return;\n }\n }\n\n savedRange.current = null;\n setContextMenu({ x: e.clientX, y: e.clientY });\n };\n\n const handleAiAction = async (mode: 'correct' | 'rewrite' | 'expand' | 'continue') => {\n if (!onAiTransform) return;\n\n const range = savedRange.current;\n const text = range?.toString() || \"\";\n\n if (!text && mode !== 'continue') return;\n\n const typeLabels: Record = {\n correct: 'Correction',\n rewrite: 'Reformulation',\n expand: 'Développement',\n continue: 'Continuation'\n };\n saveVersion(typeLabels[mode], text || \"Position curseur\");\n\n setIsAiLoading(true);\n try {\n const result = await onAiTransform(text, mode);\n\n if (result) {\n contentRef.current?.focus();\n const sel = window.getSelection();\n sel?.removeAllRanges();\n\n if (range) {\n sel?.addRange(range);\n }\n\n if (mode === 'continue') {\n sel?.collapseToEnd();\n document.execCommand('insertText', false, \" \" + result);\n } else {\n document.execCommand('insertText', false, result);\n }\n\n handleInput();\n }\n } catch (e) {\n console.error(\"AI Action failed\", e);\n } finally {\n setIsAiLoading(false);\n setContextMenu(null);\n }\n };\n\n const handleCopy = () => {\n if (savedRange.current) {\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(savedRange.current);\n document.execCommand('copy');\n }\n setContextMenu(null);\n };\n\n const handleSelectAll = () => {\n contentRef.current?.focus();\n document.execCommand('selectAll');\n handleSelection();\n setContextMenu(null);\n }\n\n const ToolbarButton = ({ icon: Icon, cmd, arg, label, onClick, isActive }: any) => (\n {\n if (onClick) {\n e.preventDefault();\n onClick();\n } else {\n e.preventDefault();\n execCommand(cmd, arg);\n }\n }}\n className={`p-1.5 rounded transition-colors ${isActive ? 'bg-indigo-100 text-indigo-700' : 'text-slate-500 hover:text-slate-800 hover:bg-slate-200'}`}\n title={label}\n >\n \n \n );\n\n const hasSelection = savedRange.current && !savedRange.current.collapsed;\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n\n
\n\n {/* Save Status Indicator */}\n
\n {saveStatus === 'saving' && <> Sauvegarde...}\n {saveStatus === 'saved' && <> Sauvegardé}\n {saveStatus === 'unsaved' && Modifications non enregistrées...}\n
\n\n
\n setShowHistoryMargin(!showHistoryMargin)}\n isActive={showHistoryMargin}\n />\n
\n\n {/* Main Container - Scrollable Area */}\n \n
\n\n {/* Editor Content Page */}\n { setIsFocused(false); saveSelection(); }}\n onFocus={() => setIsFocused(true)}\n onKeyUp={saveSelection}\n onMouseUp={saveSelection}\n onSelect={handleSelection}\n onClick={() => contentRef.current?.focus()}\n onContextMenu={handleContextMenu}\n data-placeholder=\"Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)\"\n />\n\n {/* History Track - Moving with the page */}\n {showHistoryMargin && (\n
\n {/* Placeholder for empty history */}\n {versionGroups.length === 0 && (\n
\n \n

L'historique des modifications IA apparaîtra ici, aligné avec votre texte.

\n
\n )}\n\n {/* Render Groups */}\n {versionGroups.map((group) => {\n const isExpanded = expandedGroupIds.has(group.id);\n const isStack = group.versions.length > 1;\n const latest = group.versions[0];\n\n return (\n \n
\n\n {/* Stack Effect Background Card */}\n {isStack && !isExpanded && (\n
\n )}\n\n {/* Main Card Header */}\n isStack && toggleGroup(group.id)}\n >\n
\n {isStack && (\n \n )}\n \n {latest.type}\n \n
\n
\n \n {new Date(latest.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}\n \n {isStack && (\n isExpanded ? : \n )}\n
\n
\n\n {/* Card Content (Latest) */}\n {!isExpanded && (\n
\n
\n \"{latest.snippet}\"\n
\n restoreVersion(latest)}\n className=\"mt-2 w-full flex items-center justify-center gap-1 text-[10px] bg-slate-50 hover:bg-indigo-50 text-slate-600 hover:text-indigo-700 py-1 rounded transition-colors\"\n >\n Restaurer\n \n
\n )}\n\n {/* Expanded Stack View */}\n {isExpanded && (\n
\n {group.versions.map((v, i) => (\n
\n
\n \n {i === 0 ? 'Dernière version' : `Version -${i}`}\n \n \n {new Date(v.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' })}\n \n
\n
\n \"{v.snippet}\"\n
\n restoreVersion(v)}\n className=\"w-full flex items-center justify-center gap-1 text-[10px] bg-white border border-slate-200 text-slate-600 hover:text-indigo-600 hover:border-indigo-200 py-1 rounded transition-colors\"\n >\n Restaurer cette version\n \n
\n ))}\n
\n )}\n
\n
\n );\n })}\n
\n )}\n
\n
\n\n {/* Context Menu Overlay */}\n {contextMenu && (\n <>\n setContextMenu(null)}\n onContextMenu={(e) => { e.preventDefault(); setContextMenu(null); }}\n />\n \n {isAiLoading ? (\n
\n \n L'IA travaille...\n
\n ) : (\n <>\n
\n Outils IA\n
\n\n handleAiAction('correct')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Corriger l'orthographe\n \n\n handleAiAction('rewrite')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Reformuler\n \n\n handleAiAction('expand')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Développer\n \n\n handleAiAction('continue')}\n className=\"flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-indigo-50 hover:text-indigo-700 text-left transition-colors\"\n >\n Continuer l'écriture\n \n\n
\n\n
\n Édition\n
\n\n \n Copier\n \n\n \n Tout sélectionner\n \n \n )}\n
\n \n )}\n
\n );\n});\n\nexport default RichTextEditor;\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1005, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/project/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\r\n\r\nimport React, { useRef } from 'react';\r\nimport RichTextEditor, { RichTextEditorHandle } from '@/components/RichTextEditor';\r\nimport { useProjectContext } from '@/providers/ProjectProvider';\r\nimport api from '@/lib/api';\r\n\r\nexport default function WritePage() {\r\n const editorRef = useRef(null);\r\n const { project, user, currentChapterId, updateChapter, incrementUsage } = useProjectContext();\r\n\r\n if (!currentChapterId) return null;\r\n\r\n const currentChapter = project.chapters?.find(c => c.id === currentChapterId);\r\n\r\n return (\r\n updateChapter(currentChapterId, { content: html })}\r\n onAiTransform={async (text, mode) => {\r\n const result = await api.ai.transform(text, mode, currentChapter?.content || '', user);\r\n incrementUsage();\r\n return result;\r\n }}\r\n />\r\n );\r\n}\r\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AALA;;;;;;AAOe,SAAS;IACpB,MAAM,YAAY,IAAA,2PAAM,EAAuB;IAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,qMAAiB;IAE5F,IAAI,CAAC,kBAAkB,OAAO;IAE9B,MAAM,iBAAiB,QAAQ,QAAQ,EAAE,KAAK,CAAA,IAAK,EAAE,EAAE,KAAK;IAE5D,qBACI,0RAAC,2LAAc;QACX,KAAK;QACL,gBAAgB,gBAAgB,WAAW;QAC3C,QAAQ,CAAC,OAAS,cAAc,kBAAkB;gBAAE,SAAS;YAAK;QAClE,eAAe,OAAO,MAAM;YACxB,MAAM,SAAS,MAAM,wKAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,MAAM,gBAAgB,WAAW,IAAI;YACjF;YACA,OAAO;QACX;;;;;;AAGZ"}}] + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/components/RichTextEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useRef, useEffect, useState, useImperativeHandle, forwardRef, useMemo } from 'react';\nimport {\n Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight, List, Heading1, Heading2,\n Copy, Wand2, Check, CheckCheck, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw,\n ChevronDown, ChevronUp, Layers\n} from 'lucide-react';\n\nexport interface RichTextEditorHandle {\n insertHtml: (html: string) => void;\n}\n\ninterface RichTextEditorProps {\n editorId?: string; // Used to uniquely identify the draft in localStorage\n initialContent: string;\n onChange?: (html: string) => void;\n onSave?: (html: string) => void;\n onSelectionChange?: (text: string) => void;\n onAiTransform?: (text: string, mode: 'correct' | 'rewrite' | 'expand' | 'continue') => Promise;\n}\n\ninterface Version {\n id: string;\n timestamp: number;\n type: string;\n content: string; // Full HTML snapshot\n snippet: string; // Selected text snippet before change\n topOffset: number; // Y position relative to editor top\n}\n\ninterface VersionGroup {\n id: string;\n topOffset: number;\n versions: Version[];\n}\n\nconst RichTextEditor = forwardRef(({ editorId, initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => {\n const contentRef = useRef(null);\n const scrollContainerRef = useRef(null);\n const [isFocused, setIsFocused] = useState(false);\n\n // Auto-Save State\n const [saveStatus, setSaveStatus] = useState<'saved_local' | 'saved_db' | 'saving' | 'unsaved'>('saved_db');\n const saveTimeoutRef = useRef(null);\n\n // Track sync state to avoid autosave loopbacks wiping current edits\n // Start as null so the initial useEffect ALWAYS writes initialContent to the div\n const syncRef = useRef(null);\n const latestContentRef = useRef(initialContent);\n\n // Context Menu State\n const [contextMenu, setContextMenu] = useState<{ x: number; y: number } | null>(null);\n const [isAiLoading, setIsAiLoading] = useState(false);\n\n // History State\n const [versions, setVersions] = useState([]);\n const [showHistoryMargin, setShowHistoryMargin] = useState(true);\n const [expandedGroupIds, setExpandedGroupIds] = useState>(new Set());\n\n // Refs to track selection\n const savedRange = useRef(null);\n const lastCursorPosition = useRef(null);\n\n // --- Helpers ---\n\n // Group versions by proximity (within 60px) to stack them\n const versionGroups = useMemo(() => {\n const sortedVersions = [...versions].sort((a, b) => b.timestamp - a.timestamp);\n const groups: VersionGroup[] = [];\n\n sortedVersions.forEach(v => {\n // Find an existing group close to this version\n const existingGroup = groups.find(g => Math.abs(g.topOffset - v.topOffset) < 60);\n\n if (existingGroup) {\n existingGroup.versions.push(v);\n // Keep the group timestamp sorted\n existingGroup.versions.sort((a, b) => b.timestamp - a.timestamp);\n } else {\n groups.push({\n id: `group-${v.id}`,\n topOffset: v.topOffset,\n versions: [v]\n });\n }\n });\n\n return groups;\n }, [versions]);\n\n const toggleGroup = (groupId: string) => {\n const newSet = new Set(expandedGroupIds);\n if (newSet.has(groupId)) {\n newSet.delete(groupId);\n } else {\n newSet.add(groupId);\n }\n setExpandedGroupIds(newSet);\n };\n\n const getSelectionTopOffset = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current) {\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // We need offset relative to the content container (contentRef)\n // contentRef is the white page div.\n const containerRect = contentRef.current.getBoundingClientRect();\n return rect.top - containerRect.top;\n }\n return 0;\n };\n\n const saveVersion = (type: string, textSnippet: string) => {\n if (!contentRef.current) return;\n\n const topOffset = getSelectionTopOffset();\n\n const newVersion: Version = {\n id: Date.now().toString(),\n timestamp: Date.now(),\n type: type,\n content: contentRef.current.innerHTML,\n snippet: textSnippet.substring(0, 80) + (textSnippet.length > 80 ? '...' : ''),\n topOffset\n };\n\n setVersions(prev => [newVersion, ...prev]);\n setShowHistoryMargin(true);\n };\n\n const restoreVersion = (version: Version) => {\n if (!contentRef.current) return;\n if (confirm('Restaurer cette version ? Le contenu actuel sera remplacé.')) {\n contentRef.current.innerHTML = version.content;\n handleInput();\n }\n };\n\n // --- Exposed Methods ---\n\n useImperativeHandle(ref, () => ({\n insertHtml: (text: string) => {\n saveVersion('Insertion Chat', 'Insertion depuis le panneau IA');\n\n contentRef.current?.focus();\n\n const sel = window.getSelection();\n if (lastCursorPosition.current) {\n sel?.removeAllRanges();\n sel?.addRange(lastCursorPosition.current);\n } else if (contentRef.current) {\n const range = document.createRange();\n range.selectNodeContents(contentRef.current);\n range.collapse(false);\n sel?.removeAllRanges();\n sel?.addRange(range);\n }\n\n const htmlToInsert = text.includes('<') ? text : text.replace(/\\n/g, '
');\n document.execCommand('insertHTML', false, htmlToInsert);\n handleInput();\n }\n }));\n\n // --- Effects ---\n\n useEffect(() => {\n if (!contentRef.current || initialContent === undefined) return;\n\n let contentToLoad = initialContent;\n let hasLocalDraft = false;\n\n // Check localStorage for a newer draft\n if (editorId) {\n const localDraft = localStorage.getItem(`draft_${editorId}`);\n if (localDraft && localDraft !== initialContent) {\n contentToLoad = localDraft;\n hasLocalDraft = true;\n setSaveStatus('saved_local');\n }\n }\n\n // 1. Si le contenu entrant est identique à ce qu'on a déjà, on ne touche à rien\n if (contentToLoad === contentRef.current.innerHTML) return;\n\n // 2. LOGIQUE CRUCIALE : On ne met à jour le DOM que si :\n // - L'éditeur est vide (premier chargement)\n // - OU le document a changé (si vous gérez des IDs de documents)\n // - OU si l'utilisateur n'est PAS en train de focus l'éditeur\n const isUserEditing = document.activeElement === contentRef.current;\n\n if (!isUserEditing || (contentRef.current.innerHTML === \"\" && contentToLoad !== \"\")) {\n contentRef.current.innerHTML = contentToLoad;\n syncRef.current = contentToLoad;\n latestContentRef.current = contentToLoad;\n }\n }, [initialContent, editorId]);\n\n // Flush pending save on unmount\n useEffect(() => {\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n // Always save if there are unsaved changes, regardless of timer\n if (latestContentRef.current !== syncRef.current && onSave) {\n syncRef.current = latestContentRef.current;\n onSave(latestContentRef.current);\n }\n };\n }, [onSave]);\n\n // --- Event Handlers ---\n\n const execCommand = (command: string, value: string | undefined = undefined) => {\n document.execCommand(command, false, value);\n handleInput();\n contentRef.current?.focus();\n };\n\n const handleInput = () => {\n if (contentRef.current) {\n const currentHtml = contentRef.current.innerHTML;\n latestContentRef.current = currentHtml;\n\n if (onChange) onChange(currentHtml);\n\n // 1. Save locally immediately\n if (editorId) {\n localStorage.setItem(`draft_${editorId}`, currentHtml);\n setSaveStatus('saved_local');\n } else {\n setSaveStatus('unsaved');\n }\n\n // 2. Auto-Save Debounce for DB\n if (onSave) {\n if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);\n\n saveTimeoutRef.current = setTimeout(async () => {\n setSaveStatus('saving');\n const htmlToSave = latestContentRef.current;\n // Update syncRef BEFORE calling onSave, because onSave triggers setProjects\n // which causes a re-render. The useEffect must see the updated syncRef\n // to avoid re-writing innerHTML unnecessarily.\n syncRef.current = htmlToSave;\n try {\n await onSave(htmlToSave);\n setSaveStatus('saved_db');\n if (editorId) {\n // Once saved to DB, we can consider the local draft synced if we want,\n // or just keep it there. It will be overwritten on next load.\n }\n } catch (err) {\n console.error('Auto-save failed:', err);\n setSaveStatus('saved_local'); // Revert to local save status on error\n }\n }, 2000); // 2 seconds\n }\n }\n };\n\n const saveSelection = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current?.contains(sel.anchorNode)) {\n lastCursorPosition.current = sel.getRangeAt(0).cloneRange();\n }\n };\n\n const handleSelection = () => {\n const selection = window.getSelection();\n saveSelection();\n\n if (selection && selection.toString().length > 0 && onSelectionChange) {\n onSelectionChange(selection.toString());\n } else if (onSelectionChange) {\n onSelectionChange(\"\");\n }\n };\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault();\n const selection = window.getSelection();\n\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n if (contentRef.current?.contains(range.commonAncestorContainer)) {\n savedRange.current = range.cloneRange();\n setContextMenu({ x: e.clientX, y: e.clientY });\n return;\n }\n }\n\n savedRange.current = null;\n setContextMenu({ x: e.clientX, y: e.clientY });\n };\n\n const handleAiAction = async (mode: 'correct' | 'rewrite' | 'expand' | 'continue') => {\n if (!onAiTransform) return;\n\n const range = savedRange.current;\n const text = range?.toString() || \"\";\n\n if (!text && mode !== 'continue') return;\n\n const typeLabels: Record = {\n correct: 'Correction',\n rewrite: 'Reformulation',\n expand: 'Développement',\n continue: 'Continuation'\n };\n saveVersion(typeLabels[mode], text || \"Position curseur\");\n\n setIsAiLoading(true);\n try {\n const result = await onAiTransform(text, mode);\n\n if (result) {\n contentRef.current?.focus();\n const sel = window.getSelection();\n sel?.removeAllRanges();\n\n if (range) {\n sel?.addRange(range);\n }\n\n if (mode === 'continue') {\n sel?.collapseToEnd();\n document.execCommand('insertText', false, \" \" + result);\n } else {\n document.execCommand('insertText', false, result);\n }\n\n handleInput();\n }\n } catch (e) {\n console.error(\"AI Action failed\", e);\n } finally {\n setIsAiLoading(false);\n setContextMenu(null);\n }\n };\n\n const handleCopy = () => {\n if (savedRange.current) {\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(savedRange.current);\n document.execCommand('copy');\n }\n setContextMenu(null);\n };\n\n const handleSelectAll = () => {\n contentRef.current?.focus();\n document.execCommand('selectAll');\n handleSelection();\n setContextMenu(null);\n }\n\n const ToolbarButton = ({ icon: Icon, cmd, arg, label, onClick, isActive }: any) => (\n {\n if (onClick) {\n e.preventDefault();\n onClick();\n } else {\n e.preventDefault();\n execCommand(cmd, arg);\n }\n }}\n className={`p-1.5 rounded transition-colors ${isActive ? 'bg-indigo-100 text-indigo-700' : 'text-slate-500 hover:text-slate-800 hover:bg-slate-200'}`}\n title={label}\n >\n \n \n );\n\n const hasSelection = savedRange.current && !savedRange.current.collapsed;\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n\n
\n\n {/* Save Status Indicator */}\n
\n {saveStatus === 'saving' && <> }\n {saveStatus === 'saved_local' && <> }\n {saveStatus === 'saved_db' && <> }\n {saveStatus === 'unsaved' && Non sauvegardé...}\n
\n\n
\n setShowHistoryMargin(!showHistoryMargin)}\n isActive={showHistoryMargin}\n />\n
\n\n {/* Main Container - Scrollable Area */}\n \n
\n\n {/* Editor Content Page */}\n { setIsFocused(false); saveSelection(); }}\n onFocus={() => setIsFocused(true)}\n onKeyUp={saveSelection}\n onMouseUp={saveSelection}\n onSelect={handleSelection}\n onClick={() => contentRef.current?.focus()}\n onContextMenu={handleContextMenu}\n data-placeholder=\"Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)\"\n />\n\n {/* History Track - Moving with the page */}\n {showHistoryMargin && (\n
\n {/* Placeholder for empty history */}\n {versionGroups.length === 0 && (\n
\n \n

L'historique des modifications IA apparaîtra ici, aligné avec votre texte.

\n
\n )}\n\n {/* Render Groups */}\n {versionGroups.map((group) => {\n const isExpanded = expandedGroupIds.has(group.id);\n const isStack = group.versions.length > 1;\n const latest = group.versions[0];\n\n return (\n \n
\n\n {/* Stack Effect Background Card */}\n {isStack && !isExpanded && (\n
\n )}\n\n {/* Main Card Header */}\n isStack && toggleGroup(group.id)}\n >\n
\n {isStack && (\n \n )}\n \n {latest.type}\n \n
\n
\n \n {new Date(latest.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}\n \n {isStack && (\n isExpanded ? : \n )}\n
\n
\n\n {/* Card Content (Latest) */}\n {!isExpanded && (\n
\n
\n \"{latest.snippet}\"\n
\n restoreVersion(latest)}\n className=\"mt-2 w-full flex items-center justify-center gap-1 text-[10px] bg-slate-50 hover:bg-indigo-50 text-slate-600 hover:text-indigo-700 py-1 rounded transition-colors\"\n >\n Restaurer\n \n
\n )}\n\n {/* Expanded Stack View */}\n {isExpanded && (\n
\n {group.versions.map((v, i) => (\n
\n
\n \n {i === 0 ? 'Dernière version' : `Version -${i}`}\n \n \n {new Date(v.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' })}\n \n
\n
\n \"{v.snippet}\"\n
\n restoreVersion(v)}\n className=\"w-full flex items-center justify-center gap-1 text-[10px] bg-white border border-slate-200 text-slate-600 hover:text-indigo-600 hover:border-indigo-200 py-1 rounded transition-colors\"\n >\n Restaurer cette version\n \n
\n ))}\n
\n )}\n
\n
\n );\n })}\n
\n )}\n
\n
\n\n {/* Context Menu Overlay */}\n {contextMenu && (\n <>\n setContextMenu(null)}\n onContextMenu={(e) => { e.preventDefault(); setContextMenu(null); }}\n />\n \n {isAiLoading ? (\n
\n \n L'IA travaille...\n
\n ) : (\n <>\n
\n Outils IA\n
\n\n handleAiAction('correct')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Corriger l'orthographe\n \n\n handleAiAction('rewrite')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Reformuler\n \n\n handleAiAction('expand')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Développer\n \n\n handleAiAction('continue')}\n className=\"flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-indigo-50 hover:text-indigo-700 text-left transition-colors\"\n >\n Continuer l'écriture\n \n\n
\n\n
\n Édition\n
\n\n \n Copier\n \n\n \n Tout sélectionner\n \n \n )}\n
\n \n )}\n
\n );\n});\n\nexport default RichTextEditor;\n"],"names":[],"mappings":"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"}}, + {"offset": {"line": 1077, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/project/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\r\n\r\nimport React, { useRef } from 'react';\r\nimport RichTextEditor, { RichTextEditorHandle } from '@/components/RichTextEditor';\r\nimport { useProjectContext } from '@/providers/ProjectProvider';\r\nimport api from '@/lib/api';\r\n\r\nexport default function WritePage() {\r\n const editorRef = useRef(null);\r\n const { project, user, currentChapterId, updateChapter, incrementUsage } = useProjectContext();\r\n\r\n if (!currentChapterId) return null;\r\n\r\n const currentChapter = project.chapters?.find(c => c.id === currentChapterId);\r\n\r\n return (\r\n updateChapter(currentChapterId, { content: html })}\r\n onAiTransform={async (text, mode) => {\r\n const result = await api.ai.transform(text, mode, currentChapter?.content || '', user);\r\n incrementUsage();\r\n return result;\r\n }}\r\n />\r\n );\r\n}\r\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AALA;;;;;;AAOe,SAAS;IACpB,MAAM,YAAY,IAAA,2PAAM,EAAuB;IAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,qMAAiB;IAE5F,IAAI,CAAC,kBAAkB,OAAO;IAE9B,MAAM,iBAAiB,QAAQ,QAAQ,EAAE,KAAK,CAAA,IAAK,EAAE,EAAE,KAAK;IAE5D,qBACI,0RAAC,2LAAc;QACX,KAAK;QACL,UAAU;QACV,gBAAgB,gBAAgB,WAAW;QAC3C,QAAQ,CAAC,OAAS,cAAc,kBAAkB;gBAAE,SAAS;YAAK;QAClE,eAAe,OAAO,MAAM;YACxB,MAAM,SAAS,MAAM,wKAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,MAAM,gBAAgB,WAAW,IAAI;YACjF;YACA,OAAO;QACX;;;;;;AAGZ"}}] } \ No newline at end of file diff --git a/.next/dev/server/next-font-manifest.js b/.next/dev/server/next-font-manifest.js index a292786..0cccdb7 100644 --- a/.next/dev/server/next-font-manifest.js +++ b/.next/dev/server/next-font-manifest.js @@ -1 +1 @@ -self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/00 - projet/plumeia/src/app/dashboard/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/login/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/ideas/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/workflow/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}" \ No newline at end of file +self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/Documents/00 - projet/plumeia/src/app/dashboard/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/login/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/profile/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/settings/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ],\n \"[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\n \"static/media/248e1dc0efc99276-s.p.8a6b2436.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}" \ No newline at end of file diff --git a/.next/dev/server/next-font-manifest.json b/.next/dev/server/next-font-manifest.json index b38890f..68862ce 100644 --- a/.next/dev/server/next-font-manifest.json +++ b/.next/dev/server/next-font-manifest.json @@ -8,7 +8,7 @@ "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2", "static/media/248e1dc0efc99276-s.p.8a6b2436.woff2" ], - "[project]/Documents/00 - projet/plumeia/src/app/project/[id]/ideas/page": [ + "[project]/Documents/00 - projet/plumeia/src/app/profile/page": [ "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2", "static/media/248e1dc0efc99276-s.p.8a6b2436.woff2" ], @@ -20,10 +20,6 @@ "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2", "static/media/248e1dc0efc99276-s.p.8a6b2436.woff2" ], - "[project]/Documents/00 - projet/plumeia/src/app/project/[id]/workflow/page": [ - "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2", - "static/media/248e1dc0efc99276-s.p.8a6b2436.woff2" - ], "[project]/Documents/00 - projet/plumeia/src/app/project/[id]/world/page": [ "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2", "static/media/248e1dc0efc99276-s.p.8a6b2436.woff2" diff --git a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css index 3c46f44..83f307a 100644 --- a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css +++ b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css @@ -104,6 +104,7 @@ --color-green-500: #00c758; --color-green-700: #008138; --color-green-800: #016630; + --color-emerald-600: #009767; --color-blue-50: #eff6ff; --color-blue-100: #dbeafe; --color-blue-200: #bedbff; @@ -126,8 +127,10 @@ --color-indigo-900: #312c85; --color-purple-100: #f3e8ff; --color-purple-200: #e9d5ff; + --color-purple-500: #ac4bff; --color-purple-600: #9810fa; --color-purple-700: #8200da; + --color-pink-500: #f6339a; --color-rose-100: #ffe4e6; --color-rose-200: #ffccd3; --color-rose-800: #a30037; @@ -243,6 +246,7 @@ --color-green-500: lab(70.5521% -66.5147 45.8072); --color-green-700: lab(47.0329% -47.0239 31.4788); --color-green-800: lab(37.4616% -36.7971 22.9692); + --color-emerald-600: lab(55.0481% -49.9246 15.93); --color-blue-50: lab(96.492% -1.14647 -5.11479); --color-blue-100: lab(92.0301% -2.24757 -11.6453); --color-blue-200: lab(86.15% -4.04379 -21.0797); @@ -265,8 +269,10 @@ --color-indigo-900: lab(23.3911% 24.6978 -50.4719); --color-purple-100: lab(93.3333% 6.9744 -9.83434); --color-purple-200: lab(87.8405% 13.4282 -18.7159); + --color-purple-500: lab(52.0183% 66.11 -78.2316); --color-purple-600: lab(43.0295% 75.21 -86.5669); --color-purple-700: lab(36.1758% 69.8525 -80.0381); + --color-pink-500: lab(56.9303% 76.8162 -8.07021); --color-rose-100: lab(92.8221% 9.86832 2.60077); --color-rose-200: lab(86.806% 19.1909 4.07754); --color-rose-800: lab(34.6481% 60.802 20.1957); @@ -644,6 +650,10 @@ right: calc(var(--spacing) * 4); } + .right-6 { + right: calc(var(--spacing) * 6); + } + .right-10 { right: calc(var(--spacing) * 10); } @@ -664,6 +674,10 @@ bottom: calc(var(--spacing) * 2); } + .bottom-6 { + bottom: calc(var(--spacing) * 6); + } + .bottom-10 { bottom: calc(var(--spacing) * 10); } @@ -680,6 +694,10 @@ left: calc(var(--spacing) * 0); } + .left-2 { + left: calc(var(--spacing) * 2); + } + .left-3 { left: calc(var(--spacing) * 3); } @@ -1316,10 +1334,6 @@ grid-template-columns: repeat(2, minmax(0, 1fr)); } - .grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } @@ -1589,6 +1603,11 @@ border-style: dashed; } + .border-none { + --tw-border-style: none; + border-style: none; + } + .border-\[\#dfcdae\] { border-color: #dfcdae; } @@ -1709,6 +1728,14 @@ border-color: var(--color-theme-border); } + .border-theme-panel { + border-color: var(--color-theme-panel); + } + + .border-theme-text { + border-color: var(--color-theme-text); + } + .border-transparent { border-color: #0000; } @@ -1987,6 +2014,10 @@ background-color: var(--color-theme-panel); } + .bg-theme-text { + background-color: var(--color-theme-text); + } + .bg-transparent { background-color: #0000; } @@ -2045,6 +2076,11 @@ background-image: linear-gradient(var(--tw-gradient-stops)); } + .bg-gradient-to-tr { + --tw-gradient-position: to top right in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .from-blue-500 { --tw-gradient-from: var(--color-blue-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -2074,6 +2110,11 @@ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-pink-500 { + --tw-gradient-from: var(--color-pink-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-red-200 { --tw-gradient-from: var(--color-red-200); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -2096,6 +2137,12 @@ --tw-gradient-stops: var(--tw-gradient-via-stops); } + .via-purple-500 { + --tw-gradient-via: var(--color-purple-500); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-yellow-100 { --tw-gradient-via: var(--color-yellow-100); --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); @@ -2568,6 +2615,10 @@ color: var(--color-blue-900); } + .text-emerald-600 { + color: var(--color-emerald-600); + } + .text-gray-800 { color: var(--color-gray-800); } @@ -2668,6 +2719,10 @@ color: var(--color-slate-900); } + .text-theme-bg { + color: var(--color-theme-bg); + } + .text-theme-editor-text { color: var(--color-theme-editor-text); } @@ -2826,6 +2881,16 @@ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .shadow-\[\#dfcdae\] { + --tw-shadow-color: #dfcdae; + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-\[\#dfcdae\] { + --tw-shadow-color: color-mix(in oklab, #dfcdae var(--tw-shadow-alpha), transparent); + } + } + .shadow-blue-200 { --tw-shadow-color: #bedbff; } @@ -2858,6 +2923,48 @@ } } + .shadow-slate-200 { + --tw-shadow-color: #e2e8f0; + } + + @supports (color: lab(0% 0 0)) { + .shadow-slate-200 { + --tw-shadow-color: lab(91.7353% -.998765 -4.76968); + } + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-slate-200 { + --tw-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-shadow-alpha), transparent); + } + } + + .shadow-slate-900 { + --tw-shadow-color: #0f172b; + } + + @supports (color: lab(0% 0 0)) { + .shadow-slate-900 { + --tw-shadow-color: lab(7.78673% 1.82346 -15.0537); + } + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-slate-900 { + --tw-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-shadow-alpha), transparent); + } + } + + .shadow-theme-border { + --tw-shadow-color: var(--color-theme-border); + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-theme-border { + --tw-shadow-color: color-mix(in oklab, var(--color-theme-border) var(--tw-shadow-alpha), transparent); + } + } + .ring-amber-200 { --tw-ring-color: var(--color-amber-200); } @@ -3033,6 +3140,13 @@ background-color: var(--color-blue-200); } + @media (hover: hover) { + .hover\:-translate-y-1:hover { + --tw-translate-y: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media (hover: hover) { .hover\:scale-105:hover { --tw-scale-x: 105%; @@ -3087,6 +3201,12 @@ } } + @media (hover: hover) { + .hover\:border-red-200:hover { + border-color: var(--color-red-200); + } + } + @media (hover: hover) { .hover\:border-slate-200:hover { border-color: var(--color-slate-200); @@ -3105,6 +3225,18 @@ } } + @media (hover: hover) { + .hover\:border-theme-text:hover { + border-color: var(--color-theme-text); + } + } + + @media (hover: hover) { + .hover\:bg-\[\#433422\]:hover { + background-color: #433422; + } + } + @media (hover: hover) { .hover\:bg-\[\#eaddc4\]:hover { background-color: #eaddc4; @@ -3141,12 +3273,6 @@ } } - @media (hover: hover) { - .hover\:bg-blue-500:hover { - background-color: var(--color-blue-500); - } - } - @media (hover: hover) { .hover\:bg-blue-500\/10:hover { background-color: #3080ff1a; diff --git a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css.map b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css.map index 3580257..942df80 100644 --- a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css.map +++ b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_app_globals_css_bad6b30c._.single.css.map @@ -2,5 +2,5 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/Documents/00 - projet/plumeia/src/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: 'Inter', sans-serif;\n --font-serif: 'Merriweather', serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-relaxed: 1.625;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-3xl: 64px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-theme-bg: var(--theme-bg);\n --color-theme-panel: var(--theme-panel);\n --color-theme-text: var(--theme-text);\n --color-theme-muted: var(--theme-muted);\n --color-theme-border: var(--theme-border);\n --color-theme-editor-bg: var(--theme-editor-bg);\n --color-theme-editor-text: var(--theme-editor-text);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .-inset-4 {\n inset: calc(var(--spacing) * -4);\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .start {\n inset-inline-start: var(--spacing);\n }\n .end {\n inset-inline-end: var(--spacing);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .top-10 {\n top: calc(var(--spacing) * 10);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-3 {\n right: calc(var(--spacing) * -3);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-10 {\n right: calc(var(--spacing) * 10);\n }\n .right-\\[-10px\\] {\n right: -10px;\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-10 {\n bottom: calc(var(--spacing) * 10);\n }\n .bottom-full {\n bottom: 100%;\n }\n .-left-2 {\n left: calc(var(--spacing) * -2);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-10 {\n left: calc(var(--spacing) * 10);\n }\n .left-\\[calc\\(50\\%\\+420px\\)\\] {\n left: calc(50% + 420px);\n }\n .-z-1 {\n z-index: calc(1 * -1);\n }\n .-z-10 {\n z-index: calc(10 * -1);\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-3 {\n grid-column: span 3 / span 3;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-8 {\n margin: calc(var(--spacing) * -8);\n }\n .m-1 {\n margin: calc(var(--spacing) * 1);\n }\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .-mt-20 {\n margin-top: calc(var(--spacing) * -20);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-12 {\n margin-top: calc(var(--spacing) * 12);\n }\n .mt-20 {\n margin-top: calc(var(--spacing) * 20);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n .mr-6 {\n margin-right: calc(var(--spacing) * 6);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-12 {\n margin-bottom: calc(var(--spacing) * 12);\n }\n .mb-16 {\n margin-bottom: calc(var(--spacing) * 16);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-24 {\n height: calc(var(--spacing) * 24);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-96 {\n height: calc(var(--spacing) * 96);\n }\n .h-\\[4000px\\] {\n height: 4000px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n .max-h-64 {\n max-height: calc(var(--spacing) * 64);\n }\n .max-h-\\[90\\%\\] {\n max-height: 90%;\n }\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[120px\\] {\n min-height: 120px;\n }\n .min-h-\\[1000px\\] {\n min-height: 1000px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n .w-1\\/2 {\n width: calc(1 / 2 * 100%);\n }\n .w-1\\/3 {\n width: calc(1 / 3 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-80 {\n width: calc(var(--spacing) * 80);\n }\n .w-96 {\n width: calc(var(--spacing) * 96);\n }\n .w-\\[600px\\] {\n width: 600px;\n }\n .w-\\[800px\\] {\n width: 800px;\n }\n .w-\\[4000px\\] {\n width: 4000px;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[85\\%\\] {\n max-width: 85%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-105 {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-\\[1\\.01\\] {\n scale: 1.01;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .resize-none {\n resize: none;\n }\n .list-disc {\n list-style-type: disc;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-slate-50 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-50);\n }\n }\n .divide-slate-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-100);\n }\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2\\.5rem\\] {\n border-radius: 2.5rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[2rem\\] {\n border-radius: 2rem;\n }\n .rounded-\\[3rem\\] {\n border-radius: 3rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n .rounded-br-none {\n border-bottom-right-radius: 0;\n }\n .rounded-bl-none {\n border-bottom-left-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-2 {\n border-right-style: var(--tw-border-style);\n border-right-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-\\[\\#dfcdae\\] {\n border-color: #dfcdae;\n }\n .border-\\[\\#eaddc4\\] {\n border-color: #eaddc4;\n }\n .border-\\[\\#f4ecd8\\] {\n border-color: #f4ecd8;\n }\n .border-amber-100 {\n border-color: var(--color-amber-100);\n }\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n .border-blue-100 {\n border-color: var(--color-blue-100);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-400 {\n border-color: var(--color-blue-400);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-100 {\n border-color: var(--color-green-100);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-indigo-50 {\n border-color: var(--color-indigo-50);\n }\n .border-indigo-100 {\n border-color: var(--color-indigo-100);\n }\n .border-indigo-200 {\n border-color: var(--color-indigo-200);\n }\n .border-indigo-300 {\n border-color: var(--color-indigo-300);\n }\n .border-indigo-400 {\n border-color: var(--color-indigo-400);\n }\n .border-indigo-600 {\n border-color: var(--color-indigo-600);\n }\n .border-red-100 {\n border-color: var(--color-red-100);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-rose-200 {\n border-color: var(--color-rose-200);\n }\n .border-slate-50 {\n border-color: var(--color-slate-50);\n }\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-700 {\n border-color: var(--color-slate-700);\n }\n .border-slate-800 {\n border-color: var(--color-slate-800);\n }\n .border-theme-border {\n border-color: var(--color-theme-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-100 {\n border-color: var(--color-yellow-100);\n }\n .bg-\\[\\#5c4731\\] {\n background-color: #5c4731;\n }\n .bg-\\[\\#eaddc4\\] {\n background-color: #eaddc4;\n }\n .bg-\\[\\#eef2ff\\] {\n background-color: #eef2ff;\n }\n .bg-\\[\\#f4ecd8\\] {\n background-color: #f4ecd8;\n }\n .bg-\\[\\#fbf8f1\\] {\n background-color: #fbf8f1;\n }\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n .bg-amber-400 {\n background-color: var(--color-amber-400);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-blue-500\\/10 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n .bg-blue-500\\/20 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n .bg-blue-900 {\n background-color: var(--color-blue-900);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-500\\/10 {\n background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);\n }\n }\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n .bg-indigo-50\\/30 {\n background-color: color-mix(in srgb, oklch(96.2% 0.018 272.314) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-50) 30%, transparent);\n }\n }\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n .bg-indigo-500\\/10 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n .bg-indigo-500\\/20 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n }\n .bg-indigo-600 {\n background-color: var(--color-indigo-600);\n }\n .bg-indigo-900 {\n background-color: var(--color-indigo-900);\n }\n .bg-indigo-900\\/50 {\n background-color: color-mix(in srgb, oklch(35.9% 0.144 278.697) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-900) 50%, transparent);\n }\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-rose-100 {\n background-color: var(--color-rose-100);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-slate-200 {\n background-color: var(--color-slate-200);\n }\n .bg-slate-300 {\n background-color: var(--color-slate-300);\n }\n .bg-slate-700 {\n background-color: var(--color-slate-700);\n }\n .bg-slate-800 {\n background-color: var(--color-slate-800);\n }\n .bg-slate-900 {\n background-color: var(--color-slate-900);\n }\n .bg-theme-bg {\n background-color: var(--color-theme-bg);\n }\n .bg-theme-bg\\/50 {\n background-color: var(--color-theme-bg);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-bg) 50%, transparent);\n }\n }\n .bg-theme-border {\n background-color: var(--color-theme-border);\n }\n .bg-theme-editor-bg {\n background-color: var(--color-theme-editor-bg);\n }\n .bg-theme-panel {\n background-color: var(--color-theme-panel);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-white\\/10 {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .bg-white\\/50 {\n background-color: color-mix(in srgb, #fff 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n .bg-white\\/70 {\n background-color: color-mix(in srgb, #fff 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 70%, transparent);\n }\n }\n .bg-white\\/80 {\n background-color: color-mix(in srgb, #fff 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 80%, transparent);\n }\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-500\\/20 {\n --tw-gradient-from: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-orange-200 {\n --tw-gradient-from: var(--color-orange-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-red-200 {\n --tw-gradient-from: var(--color-red-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-slate-300 {\n --tw-gradient-from: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-indigo-200 {\n --tw-gradient-via: var(--color-indigo-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-200 {\n --tw-gradient-via: var(--color-purple-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-yellow-100 {\n --tw-gradient-via: var(--color-yellow-100);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-200 {\n --tw-gradient-to: var(--color-blue-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-green-200 {\n --tw-gradient-to: var(--color-green-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500 {\n --tw-gradient-to: var(--color-indigo-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500\\/20 {\n --tw-gradient-to: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-600 {\n --tw-gradient-to: var(--color-indigo-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-slate-300 {\n --tw-gradient-to: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-clip-text {\n background-clip: text;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * 0.5);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .py-16 {\n padding-block: calc(var(--spacing) * 16);\n }\n .py-20 {\n padding-block: calc(var(--spacing) * 20);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-12 {\n padding-top: calc(var(--spacing) * 12);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pt-32 {\n padding-top: calc(var(--spacing) * 32);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pb-32 {\n padding-bottom: calc(var(--spacing) * 32);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-12 {\n padding-left: calc(var(--spacing) * 12);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .font-serif {\n font-family: var(--font-serif);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-6xl {\n font-size: var(--text-6xl);\n line-height: var(--tw-leading, var(--text-6xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .leading-\\[1\\.1\\] {\n --tw-leading: 1.1;\n line-height: 1.1;\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#735e44\\] {\n color: #735e44;\n }\n .text-\\[\\#332616\\] {\n color: #332616;\n }\n .text-\\[\\#433422\\] {\n color: #433422;\n }\n .text-amber-500 {\n color: var(--color-amber-500);\n }\n .text-amber-600 {\n color: var(--color-amber-600);\n }\n .text-amber-800 {\n color: var(--color-amber-800);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-blue-900 {\n color: var(--color-blue-900);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n .text-indigo-800 {\n color: var(--color-indigo-800);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .text-orange-600 {\n color: var(--color-orange-600);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-rose-800 {\n color: var(--color-rose-800);\n }\n .text-slate-300 {\n color: var(--color-slate-300);\n }\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-900 {\n color: var(--color-slate-900);\n }\n .text-theme-editor-text {\n color: var(--color-theme-editor-text);\n }\n .text-theme-muted {\n color: var(--color-theme-muted);\n }\n .text-theme-text {\n color: var(--color-theme-text);\n }\n .text-transparent {\n color: transparent;\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-500 {\n color: var(--color-yellow-500);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-blue-500 {\n text-decoration-color: var(--color-blue-500);\n }\n .decoration-indigo-300 {\n text-decoration-color: var(--color-indigo-300);\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .accent-blue-600 {\n accent-color: var(--color-blue-600);\n }\n .accent-indigo-600 {\n accent-color: var(--color-indigo-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(59,130,246,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(99\\,102\\,241\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(99,102,241,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0px_2px_0px_0px_rgba\\(203\\,213\\,225\\,1\\)\\] {\n --tw-shadow: 0px 2px 0px 0px var(--tw-shadow-color, rgba(203,213,225,1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-blue-200 {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-indigo-100 {\n --tw-shadow-color: oklch(93% 0.034 272.788);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-shadow-alpha), transparent);\n }\n }\n .ring-amber-200 {\n --tw-ring-color: var(--color-amber-200);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-indigo-200 {\n --tw-ring-color: var(--color-indigo-200);\n }\n .ring-indigo-400 {\n --tw-ring-color: var(--color-indigo-400);\n }\n .ring-indigo-500 {\n --tw-ring-color: var(--color-indigo-500);\n }\n .ring-offset-1 {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n .blur-3xl {\n --tw-blur: blur(var(--blur-3xl));\n 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,);\n }\n .blur-\\[1px\\] {\n --tw-blur: blur(1px);\n 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,);\n }\n .blur-\\[60px\\] {\n --tw-blur: blur(60px);\n 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,);\n }\n .blur-\\[100px\\] {\n --tw-blur: blur(100px);\n 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,);\n }\n .blur-\\[120px\\] {\n --tw-blur: blur(120px);\n 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,);\n }\n .blur-\\[150px\\] {\n --tw-blur: blur(150px);\n 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,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n 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,);\n }\n .sepia {\n --tw-sepia: sepia(100%);\n 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,);\n }\n .filter {\n 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,);\n }\n .backdrop-blur-md {\n --tw-backdrop-blur: blur(var(--blur-md));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .group-hover\\:translate-x-1 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .group-hover\\:bg-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-white {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .selection\\:bg-blue-200 {\n & *::selection {\n background-color: var(--color-blue-200);\n }\n &::selection {\n background-color: var(--color-blue-200);\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-110 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-\\[1\\.02\\] {\n &:hover {\n @media (hover: hover) {\n scale: 1.02;\n }\n }\n }\n .hover\\:border-\\[\\#cfbd9e\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #cfbd9e;\n }\n }\n }\n .hover\\:border-blue-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-300);\n }\n }\n }\n .hover\\:border-indigo-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:border-indigo-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-400);\n }\n }\n }\n .hover\\:border-indigo-500 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-500);\n }\n }\n }\n .hover\\:border-slate-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:border-slate-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-300);\n }\n }\n }\n .hover\\:border-slate-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-600);\n }\n }\n }\n .hover\\:bg-\\[\\#eaddc4\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #eaddc4;\n }\n }\n }\n .hover\\:bg-amber-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-50);\n }\n }\n }\n .hover\\:bg-amber-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-100);\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-50);\n }\n }\n }\n .hover\\:bg-blue-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-500);\n }\n }\n }\n .hover\\:bg-blue-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-600 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-blue-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-800);\n }\n }\n }\n .hover\\:bg-indigo-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-50);\n }\n }\n }\n .hover\\:bg-indigo-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-100);\n }\n }\n }\n .hover\\:bg-indigo-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:bg-indigo-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-indigo-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-red-900\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-900) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-slate-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-50);\n }\n }\n }\n .hover\\:bg-slate-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-100);\n }\n }\n }\n .hover\\:bg-slate-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:bg-slate-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n .hover\\:bg-slate-900 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-900);\n }\n }\n }\n .hover\\:bg-theme-border {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-border);\n }\n }\n }\n .hover\\:bg-theme-panel {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n }\n }\n }\n .hover\\:bg-theme-panel\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-panel) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-white {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n .hover\\:bg-white\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n }\n }\n }\n .hover\\:text-\\[\\#332616\\] {\n &:hover {\n @media (hover: hover) {\n color: #332616;\n }\n }\n }\n .hover\\:text-blue-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-400);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-indigo-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:text-indigo-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:text-indigo-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-800);\n }\n }\n }\n .hover\\:text-red-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-400);\n }\n }\n }\n .hover\\:text-red-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-500);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-slate-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-500);\n }\n }\n }\n .hover\\:text-slate-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-800);\n }\n }\n }\n .hover\\:text-slate-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-900);\n }\n }\n }\n .hover\\:text-theme-text {\n &:hover {\n @media (hover: hover) {\n color: var(--color-theme-text);\n }\n }\n }\n .hover\\:text-white {\n &:hover {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:decoration-indigo-600 {\n &:hover {\n @media (hover: hover) {\n text-decoration-color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:opacity-80 {\n &:hover {\n @media (hover: hover) {\n opacity: 80%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-2xl {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-blue-200 {\n &:hover {\n @media (hover: hover) {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n }\n }\n .focus\\:border-b {\n &:focus {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .focus\\:border-blue-500 {\n &:focus {\n border-color: var(--color-blue-500);\n }\n }\n .focus\\:border-indigo-400 {\n &:focus {\n border-color: var(--color-indigo-400);\n }\n }\n .focus\\:border-indigo-500 {\n &:focus {\n border-color: var(--color-indigo-500);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-4 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-blue-300 {\n &:focus {\n --tw-ring-color: var(--color-blue-300);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-indigo-500 {\n &:focus {\n --tw-ring-color: var(--color-indigo-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:cursor-grabbing {\n &:active {\n cursor: grabbing;\n }\n }\n .disabled\\:opacity-30 {\n &:disabled {\n opacity: 30%;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:inline {\n @media (width >= 40rem) {\n display: inline;\n }\n }\n .sm\\:h-\\[400px\\] {\n @media (width >= 40rem) {\n height: 400px;\n }\n }\n .sm\\:w-auto {\n @media (width >= 40rem) {\n width: auto;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:p-12 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .sm\\:px-5 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .sm\\:py-2\\.5 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:h-\\[500px\\] {\n @media (width >= 48rem) {\n height: 500px;\n }\n }\n .md\\:w-1\\/3 {\n @media (width >= 48rem) {\n width: calc(1 / 3 * 100%);\n }\n }\n .md\\:w-64 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 64);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-4 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-6 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 6);\n }\n }\n .md\\:gap-12 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 12);\n }\n }\n .md\\:p-6 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .md\\:p-8 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 8);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-5 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-2\\.5 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .md\\:py-24 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 24);\n }\n }\n .md\\:text-4xl {\n @media (width >= 48rem) {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n }\n .md\\:text-5xl {\n @media (width >= 48rem) {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n }\n .md\\:text-7xl {\n @media (width >= 48rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:text-xl {\n @media (width >= 48rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .lg\\:relative {\n @media (width >= 64rem) {\n position: relative;\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-1\\/2 {\n @media (width >= 64rem) {\n width: calc(1 / 2 * 100%);\n }\n }\n .lg\\:w-96 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 96);\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:shadow-none {\n @media (width >= 64rem) {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .dark\\:border-slate-700 {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-slate-700);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-slate-800);\n }\n }\n .dark\\:text-blue-400 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-slate-300 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-slate-300);\n }\n }\n .dark\\:hover\\:bg-slate-700 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-700);\n }\n }\n }\n }\n .dark\\:hover\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n }\n}\n:root,\r\n.theme-light {\n --theme-bg: #eef2ff;\n --theme-panel: #ffffff;\n --theme-text: #0f172a;\n --theme-muted: #64748b;\n --theme-border: #e2e8f0;\n --theme-editor-bg: #ffffff;\n --theme-editor-text: #0f172a;\n}\n.theme-dark {\n --theme-bg: #0f172a;\n --theme-panel: #1e293b;\n --theme-text: #f8fafc;\n --theme-muted: #94a3b8;\n --theme-border: #334155;\n --theme-editor-bg: #1e293b;\n --theme-editor-text: #e2e8f0;\n}\n.theme-sepia {\n --theme-bg: #eaddc4;\n --theme-panel: #fbf8f1;\n --theme-text: #332616;\n --theme-muted: #735e44;\n --theme-border: #dfcdae;\n --theme-editor-bg: #fbf8f1;\n --theme-editor-text: #332616;\n}\n.editor-content:empty:before {\n content: attr(placeholder);\n color: #9ca3af;\n pointer-events: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n@media print {\n @page {\n margin: 2cm;\n size: auto;\n }\n html,\r\n body {\n height: auto !important;\n overflow: visible !important;\n margin: 0 !important;\n padding: 0 !important;\n background: white !important;\n color: black !important;\n }\n #__next {\n height: auto !important;\n overflow: visible !important;\n display: block !important;\n position: relative !important;\n }\n .no-print {\n display: none !important;\n }\n .print-only {\n display: block !important;\n }\n .break-before-page {\n page-break-before: always;\n break-before: page;\n }\n .break-after-page {\n page-break-after: always;\n break-after: page;\n }\n p {\n text-align: justify;\n widows: 3;\n orphans: 3;\n color: black !important;\n }\n h1,\r\n h2,\r\n h3,\r\n h4 {\n color: black !important;\n page-break-after: avoid;\n }\n a {\n text-decoration: none;\n color: black !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}"],"names":[],"mappings":"AACA;EAm0GE;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAn0GJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAiJE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;;AAhSF;;AAAA;EAqSE;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;;EASA;;;;EAKA;;;;EAIF;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAGA;;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAMI;IAAuB;;;;;;EAQvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAMzB;;;;EASE;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAOpD;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAqC;;;;;EAKrC;IAAqC;;;;IAEnC;MAAgD;;;;;;EAMlD;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAEI;MAAuB;;;;;;EAO3B;IAEI;MAAuB;;;;;;;AAO/B;;;;;;;;;;AAUA;;;;;;;;;;AASA;;;;;;;;;;AASA;;;;;;AAKA;;;;;AAIA;;;;AAGA;;;;;AAIA;;;;AAGA;EACE;;;;;EAIA;;;;;;;;;EASA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;;EAOA;;;;;;AAKF;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA"}}] + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/Documents/00 - projet/plumeia/src/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: 'Inter', sans-serif;\n --font-serif: 'Merriweather', serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-emerald-600: oklch(59.6% 0.145 163.225);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-relaxed: 1.625;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-3xl: 64px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-theme-bg: var(--theme-bg);\n --color-theme-panel: var(--theme-panel);\n --color-theme-text: var(--theme-text);\n --color-theme-muted: var(--theme-muted);\n --color-theme-border: var(--theme-border);\n --color-theme-editor-bg: var(--theme-editor-bg);\n --color-theme-editor-text: var(--theme-editor-text);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .-inset-4 {\n inset: calc(var(--spacing) * -4);\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .start {\n inset-inline-start: var(--spacing);\n }\n .end {\n inset-inline-end: var(--spacing);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .top-10 {\n top: calc(var(--spacing) * 10);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-3 {\n right: calc(var(--spacing) * -3);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-10 {\n right: calc(var(--spacing) * 10);\n }\n .right-\\[-10px\\] {\n right: -10px;\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-6 {\n bottom: calc(var(--spacing) * 6);\n }\n .bottom-10 {\n bottom: calc(var(--spacing) * 10);\n }\n .bottom-full {\n bottom: 100%;\n }\n .-left-2 {\n left: calc(var(--spacing) * -2);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-10 {\n left: calc(var(--spacing) * 10);\n }\n .left-\\[calc\\(50\\%\\+420px\\)\\] {\n left: calc(50% + 420px);\n }\n .-z-1 {\n z-index: calc(1 * -1);\n }\n .-z-10 {\n z-index: calc(10 * -1);\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-3 {\n grid-column: span 3 / span 3;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-8 {\n margin: calc(var(--spacing) * -8);\n }\n .m-1 {\n margin: calc(var(--spacing) * 1);\n }\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .-mt-20 {\n margin-top: calc(var(--spacing) * -20);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-12 {\n margin-top: calc(var(--spacing) * 12);\n }\n .mt-20 {\n margin-top: calc(var(--spacing) * 20);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n .mr-6 {\n margin-right: calc(var(--spacing) * 6);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-12 {\n margin-bottom: calc(var(--spacing) * 12);\n }\n .mb-16 {\n margin-bottom: calc(var(--spacing) * 16);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-24 {\n height: calc(var(--spacing) * 24);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-96 {\n height: calc(var(--spacing) * 96);\n }\n .h-\\[4000px\\] {\n height: 4000px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n .max-h-64 {\n max-height: calc(var(--spacing) * 64);\n }\n .max-h-\\[90\\%\\] {\n max-height: 90%;\n }\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[120px\\] {\n min-height: 120px;\n }\n .min-h-\\[1000px\\] {\n min-height: 1000px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n .w-1\\/2 {\n width: calc(1 / 2 * 100%);\n }\n .w-1\\/3 {\n width: calc(1 / 3 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-80 {\n width: calc(var(--spacing) * 80);\n }\n .w-96 {\n width: calc(var(--spacing) * 96);\n }\n .w-\\[600px\\] {\n width: 600px;\n }\n .w-\\[800px\\] {\n width: 800px;\n }\n .w-\\[4000px\\] {\n width: 4000px;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[85\\%\\] {\n max-width: 85%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-105 {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-\\[1\\.01\\] {\n scale: 1.01;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .resize-none {\n resize: none;\n }\n .list-disc {\n list-style-type: disc;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-slate-50 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-50);\n }\n }\n .divide-slate-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-100);\n }\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2\\.5rem\\] {\n border-radius: 2.5rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[2rem\\] {\n border-radius: 2rem;\n }\n .rounded-\\[3rem\\] {\n border-radius: 3rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n .rounded-br-none {\n border-bottom-right-radius: 0;\n }\n .rounded-bl-none {\n border-bottom-left-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-2 {\n border-right-style: var(--tw-border-style);\n border-right-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\[\\#dfcdae\\] {\n border-color: #dfcdae;\n }\n .border-\\[\\#eaddc4\\] {\n border-color: #eaddc4;\n }\n .border-\\[\\#f4ecd8\\] {\n border-color: #f4ecd8;\n }\n .border-amber-100 {\n border-color: var(--color-amber-100);\n }\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n .border-blue-100 {\n border-color: var(--color-blue-100);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-400 {\n border-color: var(--color-blue-400);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-100 {\n border-color: var(--color-green-100);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-indigo-50 {\n border-color: var(--color-indigo-50);\n }\n .border-indigo-100 {\n border-color: var(--color-indigo-100);\n }\n .border-indigo-200 {\n border-color: var(--color-indigo-200);\n }\n .border-indigo-300 {\n border-color: var(--color-indigo-300);\n }\n .border-indigo-400 {\n border-color: var(--color-indigo-400);\n }\n .border-indigo-600 {\n border-color: var(--color-indigo-600);\n }\n .border-red-100 {\n border-color: var(--color-red-100);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-rose-200 {\n border-color: var(--color-rose-200);\n }\n .border-slate-50 {\n border-color: var(--color-slate-50);\n }\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-700 {\n border-color: var(--color-slate-700);\n }\n .border-slate-800 {\n border-color: var(--color-slate-800);\n }\n .border-theme-border {\n border-color: var(--color-theme-border);\n }\n .border-theme-panel {\n border-color: var(--color-theme-panel);\n }\n .border-theme-text {\n border-color: var(--color-theme-text);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-100 {\n border-color: var(--color-yellow-100);\n }\n .bg-\\[\\#5c4731\\] {\n background-color: #5c4731;\n }\n .bg-\\[\\#eaddc4\\] {\n background-color: #eaddc4;\n }\n .bg-\\[\\#eef2ff\\] {\n background-color: #eef2ff;\n }\n .bg-\\[\\#f4ecd8\\] {\n background-color: #f4ecd8;\n }\n .bg-\\[\\#fbf8f1\\] {\n background-color: #fbf8f1;\n }\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n .bg-amber-400 {\n background-color: var(--color-amber-400);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-blue-500\\/10 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n .bg-blue-500\\/20 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n .bg-blue-900 {\n background-color: var(--color-blue-900);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-500\\/10 {\n background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);\n }\n }\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n .bg-indigo-50\\/30 {\n background-color: color-mix(in srgb, oklch(96.2% 0.018 272.314) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-50) 30%, transparent);\n }\n }\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n .bg-indigo-500\\/10 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n .bg-indigo-500\\/20 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n }\n .bg-indigo-600 {\n background-color: var(--color-indigo-600);\n }\n .bg-indigo-900 {\n background-color: var(--color-indigo-900);\n }\n .bg-indigo-900\\/50 {\n background-color: color-mix(in srgb, oklch(35.9% 0.144 278.697) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-900) 50%, transparent);\n }\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-rose-100 {\n background-color: var(--color-rose-100);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-slate-200 {\n background-color: var(--color-slate-200);\n }\n .bg-slate-300 {\n background-color: var(--color-slate-300);\n }\n .bg-slate-700 {\n background-color: var(--color-slate-700);\n }\n .bg-slate-800 {\n background-color: var(--color-slate-800);\n }\n .bg-slate-900 {\n background-color: var(--color-slate-900);\n }\n .bg-theme-bg {\n background-color: var(--color-theme-bg);\n }\n .bg-theme-bg\\/50 {\n background-color: var(--color-theme-bg);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-bg) 50%, transparent);\n }\n }\n .bg-theme-border {\n background-color: var(--color-theme-border);\n }\n .bg-theme-editor-bg {\n background-color: var(--color-theme-editor-bg);\n }\n .bg-theme-panel {\n background-color: var(--color-theme-panel);\n }\n .bg-theme-text {\n background-color: var(--color-theme-text);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-white\\/10 {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .bg-white\\/50 {\n background-color: color-mix(in srgb, #fff 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n .bg-white\\/70 {\n background-color: color-mix(in srgb, #fff 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 70%, transparent);\n }\n }\n .bg-white\\/80 {\n background-color: color-mix(in srgb, #fff 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 80%, transparent);\n }\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-tr {\n --tw-gradient-position: to top right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-500\\/20 {\n --tw-gradient-from: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-orange-200 {\n --tw-gradient-from: var(--color-orange-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-red-200 {\n --tw-gradient-from: var(--color-red-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-slate-300 {\n --tw-gradient-from: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-indigo-200 {\n --tw-gradient-via: var(--color-indigo-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-200 {\n --tw-gradient-via: var(--color-purple-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-yellow-100 {\n --tw-gradient-via: var(--color-yellow-100);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-200 {\n --tw-gradient-to: var(--color-blue-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-green-200 {\n --tw-gradient-to: var(--color-green-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500 {\n --tw-gradient-to: var(--color-indigo-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500\\/20 {\n --tw-gradient-to: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-600 {\n --tw-gradient-to: var(--color-indigo-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-slate-300 {\n --tw-gradient-to: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-clip-text {\n background-clip: text;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * 0.5);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .py-16 {\n padding-block: calc(var(--spacing) * 16);\n }\n .py-20 {\n padding-block: calc(var(--spacing) * 20);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-12 {\n padding-top: calc(var(--spacing) * 12);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pt-32 {\n padding-top: calc(var(--spacing) * 32);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pb-32 {\n padding-bottom: calc(var(--spacing) * 32);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-12 {\n padding-left: calc(var(--spacing) * 12);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .font-serif {\n font-family: var(--font-serif);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-6xl {\n font-size: var(--text-6xl);\n line-height: var(--tw-leading, var(--text-6xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .leading-\\[1\\.1\\] {\n --tw-leading: 1.1;\n line-height: 1.1;\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#735e44\\] {\n color: #735e44;\n }\n .text-\\[\\#332616\\] {\n color: #332616;\n }\n .text-\\[\\#433422\\] {\n color: #433422;\n }\n .text-amber-500 {\n color: var(--color-amber-500);\n }\n .text-amber-600 {\n color: var(--color-amber-600);\n }\n .text-amber-800 {\n color: var(--color-amber-800);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-blue-900 {\n color: var(--color-blue-900);\n }\n .text-emerald-600 {\n color: var(--color-emerald-600);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n .text-indigo-800 {\n color: var(--color-indigo-800);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .text-orange-600 {\n color: var(--color-orange-600);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-rose-800 {\n color: var(--color-rose-800);\n }\n .text-slate-300 {\n color: var(--color-slate-300);\n }\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-900 {\n color: var(--color-slate-900);\n }\n .text-theme-bg {\n color: var(--color-theme-bg);\n }\n .text-theme-editor-text {\n color: var(--color-theme-editor-text);\n }\n .text-theme-muted {\n color: var(--color-theme-muted);\n }\n .text-theme-text {\n color: var(--color-theme-text);\n }\n .text-transparent {\n color: transparent;\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-500 {\n color: var(--color-yellow-500);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-blue-500 {\n text-decoration-color: var(--color-blue-500);\n }\n .decoration-indigo-300 {\n text-decoration-color: var(--color-indigo-300);\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .accent-blue-600 {\n accent-color: var(--color-blue-600);\n }\n .accent-indigo-600 {\n accent-color: var(--color-indigo-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(59,130,246,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(99\\,102\\,241\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(99,102,241,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0px_2px_0px_0px_rgba\\(203\\,213\\,225\\,1\\)\\] {\n --tw-shadow: 0px 2px 0px 0px var(--tw-shadow-color, rgba(203,213,225,1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[\\#dfcdae\\] {\n --tw-shadow-color: #dfcdae;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, #dfcdae var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-blue-200 {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-indigo-100 {\n --tw-shadow-color: oklch(93% 0.034 272.788);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-slate-200 {\n --tw-shadow-color: oklch(92.9% 0.013 255.508);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-slate-900 {\n --tw-shadow-color: oklch(20.8% 0.042 265.755);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-theme-border {\n --tw-shadow-color: var(--color-theme-border);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-theme-border) var(--tw-shadow-alpha), transparent);\n }\n }\n .ring-amber-200 {\n --tw-ring-color: var(--color-amber-200);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-indigo-200 {\n --tw-ring-color: var(--color-indigo-200);\n }\n .ring-indigo-400 {\n --tw-ring-color: var(--color-indigo-400);\n }\n .ring-indigo-500 {\n --tw-ring-color: var(--color-indigo-500);\n }\n .ring-offset-1 {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n .blur-3xl {\n --tw-blur: blur(var(--blur-3xl));\n 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,);\n }\n .blur-\\[1px\\] {\n --tw-blur: blur(1px);\n 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,);\n }\n .blur-\\[60px\\] {\n --tw-blur: blur(60px);\n 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,);\n }\n .blur-\\[100px\\] {\n --tw-blur: blur(100px);\n 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,);\n }\n .blur-\\[120px\\] {\n --tw-blur: blur(120px);\n 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,);\n }\n .blur-\\[150px\\] {\n --tw-blur: blur(150px);\n 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,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n 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,);\n }\n .sepia {\n --tw-sepia: sepia(100%);\n 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,);\n }\n .filter {\n 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,);\n }\n .backdrop-blur-md {\n --tw-backdrop-blur: blur(var(--blur-md));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .group-hover\\:translate-x-1 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .group-hover\\:bg-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-white {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .selection\\:bg-blue-200 {\n & *::selection {\n background-color: var(--color-blue-200);\n }\n &::selection {\n background-color: var(--color-blue-200);\n }\n }\n .hover\\:-translate-y-1 {\n &:hover {\n @media (hover: hover) {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-110 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-\\[1\\.02\\] {\n &:hover {\n @media (hover: hover) {\n scale: 1.02;\n }\n }\n }\n .hover\\:border-\\[\\#cfbd9e\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #cfbd9e;\n }\n }\n }\n .hover\\:border-blue-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-300);\n }\n }\n }\n .hover\\:border-indigo-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:border-indigo-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-400);\n }\n }\n }\n .hover\\:border-indigo-500 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-500);\n }\n }\n }\n .hover\\:border-red-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-red-200);\n }\n }\n }\n .hover\\:border-slate-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:border-slate-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-300);\n }\n }\n }\n .hover\\:border-slate-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-600);\n }\n }\n }\n .hover\\:border-theme-text {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-theme-text);\n }\n }\n }\n .hover\\:bg-\\[\\#433422\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #433422;\n }\n }\n }\n .hover\\:bg-\\[\\#eaddc4\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #eaddc4;\n }\n }\n }\n .hover\\:bg-amber-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-50);\n }\n }\n }\n .hover\\:bg-amber-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-100);\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-50);\n }\n }\n }\n .hover\\:bg-blue-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-600 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-blue-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-800);\n }\n }\n }\n .hover\\:bg-indigo-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-50);\n }\n }\n }\n .hover\\:bg-indigo-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-100);\n }\n }\n }\n .hover\\:bg-indigo-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:bg-indigo-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-indigo-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-red-900\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-900) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-slate-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-50);\n }\n }\n }\n .hover\\:bg-slate-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-100);\n }\n }\n }\n .hover\\:bg-slate-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:bg-slate-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n .hover\\:bg-slate-900 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-900);\n }\n }\n }\n .hover\\:bg-theme-border {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-border);\n }\n }\n }\n .hover\\:bg-theme-panel {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n }\n }\n }\n .hover\\:bg-theme-panel\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-panel) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-white {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n .hover\\:bg-white\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n }\n }\n }\n .hover\\:text-\\[\\#332616\\] {\n &:hover {\n @media (hover: hover) {\n color: #332616;\n }\n }\n }\n .hover\\:text-blue-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-400);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-indigo-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:text-indigo-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:text-indigo-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-800);\n }\n }\n }\n .hover\\:text-red-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-400);\n }\n }\n }\n .hover\\:text-red-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-500);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-slate-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-500);\n }\n }\n }\n .hover\\:text-slate-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-800);\n }\n }\n }\n .hover\\:text-slate-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-900);\n }\n }\n }\n .hover\\:text-theme-text {\n &:hover {\n @media (hover: hover) {\n color: var(--color-theme-text);\n }\n }\n }\n .hover\\:text-white {\n &:hover {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:decoration-indigo-600 {\n &:hover {\n @media (hover: hover) {\n text-decoration-color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:opacity-80 {\n &:hover {\n @media (hover: hover) {\n opacity: 80%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-2xl {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-blue-200 {\n &:hover {\n @media (hover: hover) {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n }\n }\n .focus\\:border-b {\n &:focus {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .focus\\:border-blue-500 {\n &:focus {\n border-color: var(--color-blue-500);\n }\n }\n .focus\\:border-indigo-400 {\n &:focus {\n border-color: var(--color-indigo-400);\n }\n }\n .focus\\:border-indigo-500 {\n &:focus {\n border-color: var(--color-indigo-500);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-4 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-blue-300 {\n &:focus {\n --tw-ring-color: var(--color-blue-300);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-indigo-500 {\n &:focus {\n --tw-ring-color: var(--color-indigo-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:cursor-grabbing {\n &:active {\n cursor: grabbing;\n }\n }\n .disabled\\:opacity-30 {\n &:disabled {\n opacity: 30%;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:inline {\n @media (width >= 40rem) {\n display: inline;\n }\n }\n .sm\\:h-\\[400px\\] {\n @media (width >= 40rem) {\n height: 400px;\n }\n }\n .sm\\:w-auto {\n @media (width >= 40rem) {\n width: auto;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:p-12 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .sm\\:px-5 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .sm\\:py-2\\.5 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:h-\\[500px\\] {\n @media (width >= 48rem) {\n height: 500px;\n }\n }\n .md\\:w-1\\/3 {\n @media (width >= 48rem) {\n width: calc(1 / 3 * 100%);\n }\n }\n .md\\:w-64 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 64);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-4 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-6 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 6);\n }\n }\n .md\\:gap-12 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 12);\n }\n }\n .md\\:p-6 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .md\\:p-8 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 8);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-5 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-2\\.5 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .md\\:py-24 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 24);\n }\n }\n .md\\:text-4xl {\n @media (width >= 48rem) {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n }\n .md\\:text-5xl {\n @media (width >= 48rem) {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n }\n .md\\:text-7xl {\n @media (width >= 48rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:text-xl {\n @media (width >= 48rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .lg\\:relative {\n @media (width >= 64rem) {\n position: relative;\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-1\\/2 {\n @media (width >= 64rem) {\n width: calc(1 / 2 * 100%);\n }\n }\n .lg\\:w-96 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 96);\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:shadow-none {\n @media (width >= 64rem) {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .dark\\:border-slate-700 {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-slate-700);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-slate-800);\n }\n }\n .dark\\:text-blue-400 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-slate-300 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-slate-300);\n }\n }\n .dark\\:hover\\:bg-slate-700 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-700);\n }\n }\n }\n }\n .dark\\:hover\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n }\n}\n:root,\r\n.theme-light {\n --theme-bg: #eef2ff;\n --theme-panel: #ffffff;\n --theme-text: #0f172a;\n --theme-muted: #64748b;\n --theme-border: #e2e8f0;\n --theme-editor-bg: #ffffff;\n --theme-editor-text: #0f172a;\n}\n.theme-dark {\n --theme-bg: #0f172a;\n --theme-panel: #1e293b;\n --theme-text: #f8fafc;\n --theme-muted: #94a3b8;\n --theme-border: #334155;\n --theme-editor-bg: #1e293b;\n --theme-editor-text: #e2e8f0;\n}\n.theme-sepia {\n --theme-bg: #eaddc4;\n --theme-panel: #fbf8f1;\n --theme-text: #332616;\n --theme-muted: #735e44;\n --theme-border: #dfcdae;\n --theme-editor-bg: #fbf8f1;\n --theme-editor-text: #332616;\n}\n.editor-content:empty:before {\n content: attr(placeholder);\n color: #9ca3af;\n pointer-events: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n@media print {\n @page {\n margin: 2cm;\n size: auto;\n }\n html,\r\n body {\n height: auto !important;\n overflow: visible !important;\n margin: 0 !important;\n padding: 0 !important;\n background: white !important;\n color: black !important;\n }\n #__next {\n height: auto !important;\n overflow: visible !important;\n display: block !important;\n position: relative !important;\n }\n .no-print {\n display: none !important;\n }\n .print-only {\n display: block !important;\n }\n .break-before-page {\n page-break-before: always;\n break-before: page;\n }\n .break-after-page {\n page-break-after: always;\n break-after: page;\n }\n p {\n text-align: justify;\n widows: 3;\n orphans: 3;\n color: black !important;\n }\n h1,\r\n h2,\r\n h3,\r\n h4 {\n color: black !important;\n page-break-after: avoid;\n }\n a {\n text-decoration: none;\n color: black !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}"],"names":[],"mappings":"AACA;EA05GE;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA15GJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAoJE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;;AAnSF;;AAAA;EAwSE;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;;EASA;;;;EAKA;;;;EAIF;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAGA;;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAMI;IAAuB;;;;;;EAQvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAMzB;;;;EASE;IAAuB;;;;;;EAQvB;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAOpD;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAqC;;;;;EAKrC;IAAqC;;;;IAEnC;MAAgD;;;;;;EAMlD;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAEI;MAAuB;;;;;;EAO3B;IAEI;MAAuB;;;;;;;AAO/B;;;;;;;;;;AAUA;;;;;;;;;;AASA;;;;;;;;;;AASA;;;;;;AAKA;;;;;AAIA;;;;AAGA;;;;;AAIA;;;;AAGA;EACE;;;;;EAIA;;;;;;;;;EASA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;;EAOA;;;;;;AAKF;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA"}}] } \ No newline at end of file diff --git a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js index bcde4d9..66a8d33 100644 --- a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js +++ b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js @@ -20,6 +20,7 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__proje var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$copy$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Copy$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/copy.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$wand$2d$sparkles$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Wand2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/wand-sparkles.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/check.js [app-client] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2d$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCheck$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/check-check.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$refresh$2d$cw$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__RefreshCw$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/refresh-cw.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$maximize$2d$2$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Maximize2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/maximize-2.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-client] (ecmascript) "); @@ -34,13 +35,13 @@ var _s = __turbopack_context__.k.signature(); 'use client'; ; ; -const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"])(_c = _s(({ initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref)=>{ +const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"])(_c = _s(({ editorId, initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref)=>{ _s(); const contentRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useRef"])(null); const scrollContainerRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useRef"])(null); const [isFocused, setIsFocused] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])(false); // Auto-Save State - const [saveStatus, setSaveStatus] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])('saved'); + const [saveStatus, setSaveStatus] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useState"])('saved_db'); const saveTimeoutRef = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useRef"])(null); // Track sync state to avoid autosave loopbacks wiping current edits // Start as null so the initial useEffect ALWAYS writes initialContent to the div @@ -168,19 +169,33 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({ "RichTextEditor.useEffect": ()=>{ if (!contentRef.current || initialContent === undefined) return; - // Ignore exact loopbacks from our own saves - if (initialContent === syncRef.current) return; - // Safety: never overwrite real content with an empty string from a stale/placeholder source - const hasRealContent = latestContentRef.current && latestContentRef.current.trim().length > 0; - if (!initialContent && hasRealContent) return; - // We reached here, so initialContent is genuinely NEW data we didn't know about. - // E.g. clicked another chapter, or data was modified in another tab/device. - contentRef.current.innerHTML = initialContent; - syncRef.current = initialContent; - latestContentRef.current = initialContent; + let contentToLoad = initialContent; + let hasLocalDraft = false; + // Check localStorage for a newer draft + if (editorId) { + const localDraft = localStorage.getItem(`draft_${editorId}`); + if (localDraft && localDraft !== initialContent) { + contentToLoad = localDraft; + hasLocalDraft = true; + setSaveStatus('saved_local'); + } + } + // 1. Si le contenu entrant est identique à ce qu'on a déjà, on ne touche à rien + if (contentToLoad === contentRef.current.innerHTML) return; + // 2. LOGIQUE CRUCIALE : On ne met à jour le DOM que si : + // - L'éditeur est vide (premier chargement) + // - OU le document a changé (si vous gérez des IDs de documents) + // - OU si l'utilisateur n'est PAS en train de focus l'éditeur + const isUserEditing = document.activeElement === contentRef.current; + if (!isUserEditing || contentRef.current.innerHTML === "" && contentToLoad !== "") { + contentRef.current.innerHTML = contentToLoad; + syncRef.current = contentToLoad; + latestContentRef.current = contentToLoad; + } } }["RichTextEditor.useEffect"], [ - initialContent + initialContent, + editorId ]); // Flush pending save on unmount (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useEffect"])({ @@ -189,9 +204,11 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p "RichTextEditor.useEffect": ()=>{ if (saveTimeoutRef.current) { clearTimeout(saveTimeoutRef.current); - if (latestContentRef.current !== syncRef.current && onSave) { - onSave(latestContentRef.current); - } + } + // Always save if there are unsaved changes, regardless of timer + if (latestContentRef.current !== syncRef.current && onSave) { + syncRef.current = latestContentRef.current; + onSave(latestContentRef.current); } } })["RichTextEditor.useEffect"]; @@ -210,16 +227,34 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p const currentHtml = contentRef.current.innerHTML; latestContentRef.current = currentHtml; if (onChange) onChange(currentHtml); - // Auto-Save Debounce - if (onSave) { + // 1. Save locally immediately + if (editorId) { + localStorage.setItem(`draft_${editorId}`, currentHtml); + setSaveStatus('saved_local'); + } else { setSaveStatus('unsaved'); + } + // 2. Auto-Save Debounce for DB + if (onSave) { if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current); saveTimeoutRef.current = setTimeout(async ()=>{ setSaveStatus('saving'); const htmlToSave = latestContentRef.current; - await onSave(htmlToSave); - syncRef.current = htmlToSave; // Record that we've synced this exact string to the server - setSaveStatus('saved'); + // Update syncRef BEFORE calling onSave, because onSave triggers setProjects + // which causes a re-render. The useEffect must see the updated syncRef + // to avoid re-writing innerHTML unnecessarily. + syncRef.current = htmlToSave; + try { + await onSave(htmlToSave); + setSaveStatus('saved_db'); + if (editorId) { + // Once saved to DB, we can consider the local draft synced if we want, + // or just keep it there. It will be overwritten on next load. + } + } catch (err) { + console.error('Auto-save failed:', err); + setSaveStatus('saved_local'); // Revert to local save status on error + } }, 2000); // 2 seconds } } @@ -327,12 +362,12 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 18 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 340, + lineNumber: 377, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 327, + lineNumber: 364, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)); const hasSelection = savedRange.current && !savedRange.current.collapsed; @@ -350,7 +385,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p ` }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 348, + lineNumber: 385, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -362,7 +397,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Gras" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 359, + lineNumber: 396, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -371,7 +406,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Italique" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 360, + lineNumber: 397, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -380,14 +415,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Souligné" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 361, + lineNumber: 398, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 362, + lineNumber: 399, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -397,7 +432,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Titre 1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 363, + lineNumber: 400, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -407,14 +442,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Titre 2" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 364, + lineNumber: 401, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 365, + lineNumber: 402, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -423,7 +458,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Aligner à gauche" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 366, + lineNumber: 403, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -432,7 +467,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Centrer" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 367, + lineNumber: 404, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -441,14 +476,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Aligner à droite" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 368, + lineNumber: 405, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 369, + lineNumber: 406, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -457,14 +492,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p label: "Liste" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 370, + lineNumber: 407, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "flex-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 372, + lineNumber: 409, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -474,47 +509,84 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__["Loader2"], { size: 12, - className: "animate-spin" + className: "animate-spin text-blue-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 376, + lineNumber: 413, columnNumber: 41 }, ("TURBOPACK compile-time value", void 0)), - " Sauvegarde..." + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-blue-500 hidden sm:inline", + children: "Sauvegarde en cours..." + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 413, + columnNumber: 102 + }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true), - saveStatus === 'saved' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], { + saveStatus === 'saved_local' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Check$3e$__["Check"], { - size: 12, + size: 14, className: "text-green-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 377, - columnNumber: 40 + lineNumber: 414, + columnNumber: 46 }, ("TURBOPACK compile-time value", void 0)), - " Sauvegardé" + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-green-500 hidden sm:inline", + children: "Brouillon local" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 414, + columnNumber: 93 + }, ("TURBOPACK compile-time value", void 0)) + ] + }, void 0, true), + saveStatus === 'saved_db' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], { + children: [ + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$check$2d$check$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__CheckCheck$3e$__["CheckCheck"], { + size: 14, + className: "text-emerald-600" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 415, + columnNumber: 43 + }, ("TURBOPACK compile-time value", void 0)), + " ", + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { + className: "text-emerald-600 hidden sm:inline", + children: "Sauvegardé" + }, void 0, false, { + fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", + lineNumber: 415, + columnNumber: 97 + }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true), saveStatus === 'unsaved' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { className: "text-amber-500", - children: "Modifications non enregistrées..." + children: "Non sauvegardé..." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 378, + lineNumber: 416, columnNumber: 40 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 375, + lineNumber: 412, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "w-px h-6 bg-slate-300 mx-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 381, + lineNumber: 419, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(ToolbarButton, { @@ -524,13 +596,13 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p isActive: showHistoryMargin }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 382, + lineNumber: 420, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 358, + lineNumber: 395, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -560,7 +632,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p "data-placeholder": "Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 398, + lineNumber: 436, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)), showHistoryMargin && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -574,7 +646,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p className: "mx-auto mb-2 opacity-20" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 422, + lineNumber: 460, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -582,13 +654,13 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: "L'historique des modifications IA apparaîtra ici, aligné avec votre texte." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 423, + lineNumber: 461, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 421, + lineNumber: 459, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), versionGroups.map((group)=>{ @@ -607,7 +679,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p className: "absolute inset-0 bg-white border border-indigo-100 rounded-lg transform -translate-x-1 -translate-y-1 -z-10 shadow-sm" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 443, + lineNumber: 481, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -622,7 +694,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p className: "text-indigo-500" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 453, + lineNumber: 491, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -630,13 +702,13 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: latest.type }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 455, + lineNumber: 493, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 451, + lineNumber: 489, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -650,7 +722,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p }) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 463, + lineNumber: 501, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)), isStack && (isExpanded ? /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$up$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronUp$3e$__["ChevronUp"], { @@ -658,26 +730,26 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p className: "text-slate-400" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 467, + lineNumber: 505, columnNumber: 42 }, ("TURBOPACK compile-time value", void 0)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$down$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronDown$3e$__["ChevronDown"], { size: 14, className: "text-slate-400" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 467, + lineNumber: 505, columnNumber: 95 }, ("TURBOPACK compile-time value", void 0))) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 462, + lineNumber: 500, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 447, + lineNumber: 485, columnNumber: 23 }, ("TURBOPACK compile-time value", void 0)), !isExpanded && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -692,7 +764,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 475, + lineNumber: 513, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -703,20 +775,20 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 10 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 482, + lineNumber: 520, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0)), " Restaurer" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 478, + lineNumber: 516, columnNumber: 27 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 474, + lineNumber: 512, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)), isExpanded && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -732,7 +804,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: i === 0 ? 'Dernière version' : `Version -${i}` }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 493, + lineNumber: 531, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -744,13 +816,13 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p }) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 496, + lineNumber: 534, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 492, + lineNumber: 530, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -762,7 +834,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 500, + lineNumber: 538, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -773,54 +845,54 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 10 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 507, + lineNumber: 545, columnNumber: 33 }, ("TURBOPACK compile-time value", void 0)), " Restaurer cette version" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 503, + lineNumber: 541, columnNumber: 31 }, ("TURBOPACK compile-time value", void 0)) ] }, v.id, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 491, + lineNumber: 529, columnNumber: 29 }, ("TURBOPACK compile-time value", void 0))) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 489, + lineNumber: 527, columnNumber: 25 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 439, + lineNumber: 477, columnNumber: 21 }, ("TURBOPACK compile-time value", void 0)) }, group.id, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 434, + lineNumber: 472, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)); }) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 418, + lineNumber: 456, columnNumber: 13 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 395, + lineNumber: 433, columnNumber: 9 }, ("TURBOPACK compile-time value", void 0)) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 391, + lineNumber: 429, columnNumber: 7 }, ("TURBOPACK compile-time value", void 0)), contextMenu && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], { @@ -834,7 +906,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p } }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 525, + lineNumber: 563, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -851,7 +923,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 24 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 536, + lineNumber: 574, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -859,13 +931,13 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: "L'IA travaille..." }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 537, + lineNumber: 575, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 535, + lineNumber: 573, columnNumber: 15 }, ("TURBOPACK compile-time value", void 0)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Fragment"], { children: [ @@ -874,7 +946,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: "Outils IA" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 541, + lineNumber: 579, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -886,14 +958,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 550, + lineNumber: 588, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Corriger l'orthographe" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 545, + lineNumber: 583, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -905,14 +977,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 558, + lineNumber: 596, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Reformuler" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 553, + lineNumber: 591, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -924,14 +996,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 566, + lineNumber: 604, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Développer" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 561, + lineNumber: 599, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -942,21 +1014,21 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 573, + lineNumber: 611, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Continuer l'écriture" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 569, + lineNumber: 607, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "h-px bg-slate-100 my-1" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 576, + lineNumber: 614, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -964,7 +1036,7 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p children: "Édition" }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 578, + lineNumber: 616, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -976,14 +1048,14 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 587, + lineNumber: 625, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Copier" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 582, + lineNumber: 620, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("button", { @@ -994,21 +1066,21 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p size: 14 }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 594, + lineNumber: 632, columnNumber: 19 }, ("TURBOPACK compile-time value", void 0)), " Tout sélectionner" ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 590, + lineNumber: 628, columnNumber: 17 }, ("TURBOPACK compile-time value", void 0)) ] }, void 0, true) }, void 0, false, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 530, + lineNumber: 568, columnNumber: 11 }, ("TURBOPACK compile-time value", void 0)) ] @@ -1016,10 +1088,10 @@ const RichTextEditor = /*#__PURE__*/ _s((0, __TURBOPACK__imported__module__$5b$p ] }, void 0, true, { fileName: "[project]/Documents/00 - projet/plumeia/src/components/RichTextEditor.tsx", - lineNumber: 347, + lineNumber: 384, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)); -}, "1keE8cf732OZ6jTNRl46BlQ/eZo=")), "1keE8cf732OZ6jTNRl46BlQ/eZo="); +}, "cWpHoTw7wOYNa/FuW7N+8oRfoPQ=")), "cWpHoTw7wOYNa/FuW7N+8oRfoPQ="); _c1 = RichTextEditor; const __TURBOPACK__default__export__ = RichTextEditor; var _c, _c1; @@ -1056,6 +1128,7 @@ function WritePage() { const currentChapter = project.chapters?.find((c)=>c.id === currentChapterId); return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$components$2f$RichTextEditor$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], { ref: editorRef, + editorId: currentChapterId, initialContent: currentChapter?.content || '', onSave: (html)=>updateChapter(currentChapterId, { content: html diff --git a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js.map b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js.map index 4de26f9..826c7b2 100644 --- a/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js.map +++ b/.next/dev/static/chunks/Documents_00 - projet_plumeia_src_e45494cc._.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/components/RichTextEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useRef, useEffect, useState, useImperativeHandle, forwardRef, useMemo } from 'react';\nimport {\n Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight, List, Heading1, Heading2,\n Copy, Wand2, Check, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw,\n ChevronDown, ChevronUp, Layers\n} from 'lucide-react';\n\nexport interface RichTextEditorHandle {\n insertHtml: (html: string) => void;\n}\n\ninterface RichTextEditorProps {\n initialContent: string;\n onChange?: (html: string) => void;\n onSave?: (html: string) => void;\n onSelectionChange?: (text: string) => void;\n onAiTransform?: (text: string, mode: 'correct' | 'rewrite' | 'expand' | 'continue') => Promise;\n}\n\ninterface Version {\n id: string;\n timestamp: number;\n type: string;\n content: string; // Full HTML snapshot\n snippet: string; // Selected text snippet before change\n topOffset: number; // Y position relative to editor top\n}\n\ninterface VersionGroup {\n id: string;\n topOffset: number;\n versions: Version[];\n}\n\nconst RichTextEditor = forwardRef(({ initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => {\n const contentRef = useRef(null);\n const scrollContainerRef = useRef(null);\n const [isFocused, setIsFocused] = useState(false);\n\n // Auto-Save State\n const [saveStatus, setSaveStatus] = useState<'saved' | 'saving' | 'unsaved'>('saved');\n const saveTimeoutRef = useRef(null);\n\n // Track sync state to avoid autosave loopbacks wiping current edits\n // Start as null so the initial useEffect ALWAYS writes initialContent to the div\n const syncRef = useRef(null);\n const latestContentRef = useRef(initialContent);\n\n // Context Menu State\n const [contextMenu, setContextMenu] = useState<{ x: number; y: number } | null>(null);\n const [isAiLoading, setIsAiLoading] = useState(false);\n\n // History State\n const [versions, setVersions] = useState([]);\n const [showHistoryMargin, setShowHistoryMargin] = useState(true);\n const [expandedGroupIds, setExpandedGroupIds] = useState>(new Set());\n\n // Refs to track selection\n const savedRange = useRef(null);\n const lastCursorPosition = useRef(null);\n\n // --- Helpers ---\n\n // Group versions by proximity (within 60px) to stack them\n const versionGroups = useMemo(() => {\n const sortedVersions = [...versions].sort((a, b) => b.timestamp - a.timestamp);\n const groups: VersionGroup[] = [];\n\n sortedVersions.forEach(v => {\n // Find an existing group close to this version\n const existingGroup = groups.find(g => Math.abs(g.topOffset - v.topOffset) < 60);\n\n if (existingGroup) {\n existingGroup.versions.push(v);\n // Keep the group timestamp sorted\n existingGroup.versions.sort((a, b) => b.timestamp - a.timestamp);\n } else {\n groups.push({\n id: `group-${v.id}`,\n topOffset: v.topOffset,\n versions: [v]\n });\n }\n });\n\n return groups;\n }, [versions]);\n\n const toggleGroup = (groupId: string) => {\n const newSet = new Set(expandedGroupIds);\n if (newSet.has(groupId)) {\n newSet.delete(groupId);\n } else {\n newSet.add(groupId);\n }\n setExpandedGroupIds(newSet);\n };\n\n const getSelectionTopOffset = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current) {\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // We need offset relative to the content container (contentRef)\n // contentRef is the white page div.\n const containerRect = contentRef.current.getBoundingClientRect();\n return rect.top - containerRect.top;\n }\n return 0;\n };\n\n const saveVersion = (type: string, textSnippet: string) => {\n if (!contentRef.current) return;\n\n const topOffset = getSelectionTopOffset();\n\n const newVersion: Version = {\n id: Date.now().toString(),\n timestamp: Date.now(),\n type: type,\n content: contentRef.current.innerHTML,\n snippet: textSnippet.substring(0, 80) + (textSnippet.length > 80 ? '...' : ''),\n topOffset\n };\n\n setVersions(prev => [newVersion, ...prev]);\n setShowHistoryMargin(true);\n };\n\n const restoreVersion = (version: Version) => {\n if (!contentRef.current) return;\n if (confirm('Restaurer cette version ? Le contenu actuel sera remplacé.')) {\n contentRef.current.innerHTML = version.content;\n handleInput();\n }\n };\n\n // --- Exposed Methods ---\n\n useImperativeHandle(ref, () => ({\n insertHtml: (text: string) => {\n saveVersion('Insertion Chat', 'Insertion depuis le panneau IA');\n\n contentRef.current?.focus();\n\n const sel = window.getSelection();\n if (lastCursorPosition.current) {\n sel?.removeAllRanges();\n sel?.addRange(lastCursorPosition.current);\n } else if (contentRef.current) {\n const range = document.createRange();\n range.selectNodeContents(contentRef.current);\n range.collapse(false);\n sel?.removeAllRanges();\n sel?.addRange(range);\n }\n\n const htmlToInsert = text.includes('<') ? text : text.replace(/\\n/g, '
');\n document.execCommand('insertHTML', false, htmlToInsert);\n handleInput();\n }\n }));\n\n // --- Effects ---\n\n useEffect(() => {\n if (!contentRef.current || initialContent === undefined) return;\n\n // Ignore exact loopbacks from our own saves\n if (initialContent === syncRef.current) return;\n\n // Safety: never overwrite real content with an empty string from a stale/placeholder source\n const hasRealContent = latestContentRef.current && latestContentRef.current.trim().length > 0;\n if (!initialContent && hasRealContent) return;\n\n // We reached here, so initialContent is genuinely NEW data we didn't know about.\n // E.g. clicked another chapter, or data was modified in another tab/device.\n contentRef.current.innerHTML = initialContent;\n syncRef.current = initialContent;\n latestContentRef.current = initialContent;\n }, [initialContent]);\n\n // Flush pending save on unmount\n useEffect(() => {\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n if (latestContentRef.current !== syncRef.current && onSave) {\n onSave(latestContentRef.current);\n }\n }\n };\n }, [onSave]);\n\n // --- Event Handlers ---\n\n const execCommand = (command: string, value: string | undefined = undefined) => {\n document.execCommand(command, false, value);\n handleInput();\n contentRef.current?.focus();\n };\n\n const handleInput = () => {\n if (contentRef.current) {\n const currentHtml = contentRef.current.innerHTML;\n latestContentRef.current = currentHtml;\n\n if (onChange) onChange(currentHtml);\n\n // Auto-Save Debounce\n if (onSave) {\n setSaveStatus('unsaved');\n if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);\n\n saveTimeoutRef.current = setTimeout(async () => {\n setSaveStatus('saving');\n const htmlToSave = latestContentRef.current;\n await onSave(htmlToSave);\n syncRef.current = htmlToSave; // Record that we've synced this exact string to the server\n setSaveStatus('saved');\n }, 2000); // 2 seconds\n }\n }\n };\n\n const saveSelection = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current?.contains(sel.anchorNode)) {\n lastCursorPosition.current = sel.getRangeAt(0).cloneRange();\n }\n };\n\n const handleSelection = () => {\n const selection = window.getSelection();\n saveSelection();\n\n if (selection && selection.toString().length > 0 && onSelectionChange) {\n onSelectionChange(selection.toString());\n } else if (onSelectionChange) {\n onSelectionChange(\"\");\n }\n };\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault();\n const selection = window.getSelection();\n\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n if (contentRef.current?.contains(range.commonAncestorContainer)) {\n savedRange.current = range.cloneRange();\n setContextMenu({ x: e.clientX, y: e.clientY });\n return;\n }\n }\n\n savedRange.current = null;\n setContextMenu({ x: e.clientX, y: e.clientY });\n };\n\n const handleAiAction = async (mode: 'correct' | 'rewrite' | 'expand' | 'continue') => {\n if (!onAiTransform) return;\n\n const range = savedRange.current;\n const text = range?.toString() || \"\";\n\n if (!text && mode !== 'continue') return;\n\n const typeLabels: Record = {\n correct: 'Correction',\n rewrite: 'Reformulation',\n expand: 'Développement',\n continue: 'Continuation'\n };\n saveVersion(typeLabels[mode], text || \"Position curseur\");\n\n setIsAiLoading(true);\n try {\n const result = await onAiTransform(text, mode);\n\n if (result) {\n contentRef.current?.focus();\n const sel = window.getSelection();\n sel?.removeAllRanges();\n\n if (range) {\n sel?.addRange(range);\n }\n\n if (mode === 'continue') {\n sel?.collapseToEnd();\n document.execCommand('insertText', false, \" \" + result);\n } else {\n document.execCommand('insertText', false, result);\n }\n\n handleInput();\n }\n } catch (e) {\n console.error(\"AI Action failed\", e);\n } finally {\n setIsAiLoading(false);\n setContextMenu(null);\n }\n };\n\n const handleCopy = () => {\n if (savedRange.current) {\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(savedRange.current);\n document.execCommand('copy');\n }\n setContextMenu(null);\n };\n\n const handleSelectAll = () => {\n contentRef.current?.focus();\n document.execCommand('selectAll');\n handleSelection();\n setContextMenu(null);\n }\n\n const ToolbarButton = ({ icon: Icon, cmd, arg, label, onClick, isActive }: any) => (\n {\n if (onClick) {\n e.preventDefault();\n onClick();\n } else {\n e.preventDefault();\n execCommand(cmd, arg);\n }\n }}\n className={`p-1.5 rounded transition-colors ${isActive ? 'bg-indigo-100 text-indigo-700' : 'text-slate-500 hover:text-slate-800 hover:bg-slate-200'}`}\n title={label}\n >\n \n \n );\n\n const hasSelection = savedRange.current && !savedRange.current.collapsed;\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n\n
\n\n {/* Save Status Indicator */}\n
\n {saveStatus === 'saving' && <> Sauvegarde...}\n {saveStatus === 'saved' && <> Sauvegardé}\n {saveStatus === 'unsaved' && Modifications non enregistrées...}\n
\n\n
\n setShowHistoryMargin(!showHistoryMargin)}\n isActive={showHistoryMargin}\n />\n
\n\n {/* Main Container - Scrollable Area */}\n \n
\n\n {/* Editor Content Page */}\n { setIsFocused(false); saveSelection(); }}\n onFocus={() => setIsFocused(true)}\n onKeyUp={saveSelection}\n onMouseUp={saveSelection}\n onSelect={handleSelection}\n onClick={() => contentRef.current?.focus()}\n onContextMenu={handleContextMenu}\n data-placeholder=\"Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)\"\n />\n\n {/* History Track - Moving with the page */}\n {showHistoryMargin && (\n
\n {/* Placeholder for empty history */}\n {versionGroups.length === 0 && (\n
\n \n

L'historique des modifications IA apparaîtra ici, aligné avec votre texte.

\n
\n )}\n\n {/* Render Groups */}\n {versionGroups.map((group) => {\n const isExpanded = expandedGroupIds.has(group.id);\n const isStack = group.versions.length > 1;\n const latest = group.versions[0];\n\n return (\n \n
\n\n {/* Stack Effect Background Card */}\n {isStack && !isExpanded && (\n
\n )}\n\n {/* Main Card Header */}\n isStack && toggleGroup(group.id)}\n >\n
\n {isStack && (\n \n )}\n \n {latest.type}\n \n
\n
\n \n {new Date(latest.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}\n \n {isStack && (\n isExpanded ? : \n )}\n
\n
\n\n {/* Card Content (Latest) */}\n {!isExpanded && (\n
\n
\n \"{latest.snippet}\"\n
\n restoreVersion(latest)}\n className=\"mt-2 w-full flex items-center justify-center gap-1 text-[10px] bg-slate-50 hover:bg-indigo-50 text-slate-600 hover:text-indigo-700 py-1 rounded transition-colors\"\n >\n Restaurer\n \n
\n )}\n\n {/* Expanded Stack View */}\n {isExpanded && (\n
\n {group.versions.map((v, i) => (\n
\n
\n \n {i === 0 ? 'Dernière version' : `Version -${i}`}\n \n \n {new Date(v.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' })}\n \n
\n
\n \"{v.snippet}\"\n
\n restoreVersion(v)}\n className=\"w-full flex items-center justify-center gap-1 text-[10px] bg-white border border-slate-200 text-slate-600 hover:text-indigo-600 hover:border-indigo-200 py-1 rounded transition-colors\"\n >\n Restaurer cette version\n \n
\n ))}\n
\n )}\n
\n
\n );\n })}\n
\n )}\n
\n
\n\n {/* Context Menu Overlay */}\n {contextMenu && (\n <>\n setContextMenu(null)}\n onContextMenu={(e) => { e.preventDefault(); setContextMenu(null); }}\n />\n \n {isAiLoading ? (\n
\n \n L'IA travaille...\n
\n ) : (\n <>\n
\n Outils IA\n
\n\n handleAiAction('correct')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Corriger l'orthographe\n \n\n handleAiAction('rewrite')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Reformuler\n \n\n handleAiAction('expand')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Développer\n \n\n handleAiAction('continue')}\n className=\"flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-indigo-50 hover:text-indigo-700 text-left transition-colors\"\n >\n Continuer l'écriture\n \n\n
\n\n
\n Édition\n
\n\n \n Copier\n \n\n \n Tout sélectionner\n \n \n )}\n
\n \n )}\n
\n );\n});\n\nexport default RichTextEditor;\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 1034, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/project/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\r\n\r\nimport React, { useRef } from 'react';\r\nimport RichTextEditor, { RichTextEditorHandle } from '@/components/RichTextEditor';\r\nimport { useProjectContext } from '@/providers/ProjectProvider';\r\nimport api from '@/lib/api';\r\n\r\nexport default function WritePage() {\r\n const editorRef = useRef(null);\r\n const { project, user, currentChapterId, updateChapter, incrementUsage } = useProjectContext();\r\n\r\n if (!currentChapterId) return null;\r\n\r\n const currentChapter = project.chapters?.find(c => c.id === currentChapterId);\r\n\r\n return (\r\n updateChapter(currentChapterId, { content: html })}\r\n onAiTransform={async (text, mode) => {\r\n const result = await api.ai.transform(text, mode, currentChapter?.content || '', user);\r\n incrementUsage();\r\n return result;\r\n }}\r\n />\r\n );\r\n}\r\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;;;AALA;;;;;AAOe,SAAS;;IACpB,MAAM,YAAY,IAAA,mNAAM,EAAuB;IAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,wMAAiB;IAE5F,IAAI,CAAC,kBAAkB,OAAO;IAE9B,MAAM,iBAAiB,QAAQ,QAAQ,EAAE,KAAK,CAAA,IAAK,EAAE,EAAE,KAAK;IAE5D,qBACI,yOAAC,8LAAc;QACX,KAAK;QACL,gBAAgB,gBAAgB,WAAW;QAC3C,QAAQ,CAAC,OAAS,cAAc,kBAAkB;gBAAE,SAAS;YAAK;QAClE,eAAe,OAAO,MAAM;YACxB,MAAM,SAAS,MAAM,2KAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,MAAM,gBAAgB,WAAW,IAAI;YACjF;YACA,OAAO;QACX;;;;;;AAGZ;GApBwB;;QAEuD,wMAAiB;;;KAFxE"}}] + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/components/RichTextEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useRef, useEffect, useState, useImperativeHandle, forwardRef, useMemo } from 'react';\nimport {\n Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight, List, Heading1, Heading2,\n Copy, Wand2, Check, CheckCheck, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw,\n ChevronDown, ChevronUp, Layers\n} from 'lucide-react';\n\nexport interface RichTextEditorHandle {\n insertHtml: (html: string) => void;\n}\n\ninterface RichTextEditorProps {\n editorId?: string; // Used to uniquely identify the draft in localStorage\n initialContent: string;\n onChange?: (html: string) => void;\n onSave?: (html: string) => void;\n onSelectionChange?: (text: string) => void;\n onAiTransform?: (text: string, mode: 'correct' | 'rewrite' | 'expand' | 'continue') => Promise;\n}\n\ninterface Version {\n id: string;\n timestamp: number;\n type: string;\n content: string; // Full HTML snapshot\n snippet: string; // Selected text snippet before change\n topOffset: number; // Y position relative to editor top\n}\n\ninterface VersionGroup {\n id: string;\n topOffset: number;\n versions: Version[];\n}\n\nconst RichTextEditor = forwardRef(({ editorId, initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => {\n const contentRef = useRef(null);\n const scrollContainerRef = useRef(null);\n const [isFocused, setIsFocused] = useState(false);\n\n // Auto-Save State\n const [saveStatus, setSaveStatus] = useState<'saved_local' | 'saved_db' | 'saving' | 'unsaved'>('saved_db');\n const saveTimeoutRef = useRef(null);\n\n // Track sync state to avoid autosave loopbacks wiping current edits\n // Start as null so the initial useEffect ALWAYS writes initialContent to the div\n const syncRef = useRef(null);\n const latestContentRef = useRef(initialContent);\n\n // Context Menu State\n const [contextMenu, setContextMenu] = useState<{ x: number; y: number } | null>(null);\n const [isAiLoading, setIsAiLoading] = useState(false);\n\n // History State\n const [versions, setVersions] = useState([]);\n const [showHistoryMargin, setShowHistoryMargin] = useState(true);\n const [expandedGroupIds, setExpandedGroupIds] = useState>(new Set());\n\n // Refs to track selection\n const savedRange = useRef(null);\n const lastCursorPosition = useRef(null);\n\n // --- Helpers ---\n\n // Group versions by proximity (within 60px) to stack them\n const versionGroups = useMemo(() => {\n const sortedVersions = [...versions].sort((a, b) => b.timestamp - a.timestamp);\n const groups: VersionGroup[] = [];\n\n sortedVersions.forEach(v => {\n // Find an existing group close to this version\n const existingGroup = groups.find(g => Math.abs(g.topOffset - v.topOffset) < 60);\n\n if (existingGroup) {\n existingGroup.versions.push(v);\n // Keep the group timestamp sorted\n existingGroup.versions.sort((a, b) => b.timestamp - a.timestamp);\n } else {\n groups.push({\n id: `group-${v.id}`,\n topOffset: v.topOffset,\n versions: [v]\n });\n }\n });\n\n return groups;\n }, [versions]);\n\n const toggleGroup = (groupId: string) => {\n const newSet = new Set(expandedGroupIds);\n if (newSet.has(groupId)) {\n newSet.delete(groupId);\n } else {\n newSet.add(groupId);\n }\n setExpandedGroupIds(newSet);\n };\n\n const getSelectionTopOffset = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current) {\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // We need offset relative to the content container (contentRef)\n // contentRef is the white page div.\n const containerRect = contentRef.current.getBoundingClientRect();\n return rect.top - containerRect.top;\n }\n return 0;\n };\n\n const saveVersion = (type: string, textSnippet: string) => {\n if (!contentRef.current) return;\n\n const topOffset = getSelectionTopOffset();\n\n const newVersion: Version = {\n id: Date.now().toString(),\n timestamp: Date.now(),\n type: type,\n content: contentRef.current.innerHTML,\n snippet: textSnippet.substring(0, 80) + (textSnippet.length > 80 ? '...' : ''),\n topOffset\n };\n\n setVersions(prev => [newVersion, ...prev]);\n setShowHistoryMargin(true);\n };\n\n const restoreVersion = (version: Version) => {\n if (!contentRef.current) return;\n if (confirm('Restaurer cette version ? Le contenu actuel sera remplacé.')) {\n contentRef.current.innerHTML = version.content;\n handleInput();\n }\n };\n\n // --- Exposed Methods ---\n\n useImperativeHandle(ref, () => ({\n insertHtml: (text: string) => {\n saveVersion('Insertion Chat', 'Insertion depuis le panneau IA');\n\n contentRef.current?.focus();\n\n const sel = window.getSelection();\n if (lastCursorPosition.current) {\n sel?.removeAllRanges();\n sel?.addRange(lastCursorPosition.current);\n } else if (contentRef.current) {\n const range = document.createRange();\n range.selectNodeContents(contentRef.current);\n range.collapse(false);\n sel?.removeAllRanges();\n sel?.addRange(range);\n }\n\n const htmlToInsert = text.includes('<') ? text : text.replace(/\\n/g, '
');\n document.execCommand('insertHTML', false, htmlToInsert);\n handleInput();\n }\n }));\n\n // --- Effects ---\n\n useEffect(() => {\n if (!contentRef.current || initialContent === undefined) return;\n\n let contentToLoad = initialContent;\n let hasLocalDraft = false;\n\n // Check localStorage for a newer draft\n if (editorId) {\n const localDraft = localStorage.getItem(`draft_${editorId}`);\n if (localDraft && localDraft !== initialContent) {\n contentToLoad = localDraft;\n hasLocalDraft = true;\n setSaveStatus('saved_local');\n }\n }\n\n // 1. Si le contenu entrant est identique à ce qu'on a déjà, on ne touche à rien\n if (contentToLoad === contentRef.current.innerHTML) return;\n\n // 2. LOGIQUE CRUCIALE : On ne met à jour le DOM que si :\n // - L'éditeur est vide (premier chargement)\n // - OU le document a changé (si vous gérez des IDs de documents)\n // - OU si l'utilisateur n'est PAS en train de focus l'éditeur\n const isUserEditing = document.activeElement === contentRef.current;\n\n if (!isUserEditing || (contentRef.current.innerHTML === \"\" && contentToLoad !== \"\")) {\n contentRef.current.innerHTML = contentToLoad;\n syncRef.current = contentToLoad;\n latestContentRef.current = contentToLoad;\n }\n }, [initialContent, editorId]);\n\n // Flush pending save on unmount\n useEffect(() => {\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n // Always save if there are unsaved changes, regardless of timer\n if (latestContentRef.current !== syncRef.current && onSave) {\n syncRef.current = latestContentRef.current;\n onSave(latestContentRef.current);\n }\n };\n }, [onSave]);\n\n // --- Event Handlers ---\n\n const execCommand = (command: string, value: string | undefined = undefined) => {\n document.execCommand(command, false, value);\n handleInput();\n contentRef.current?.focus();\n };\n\n const handleInput = () => {\n if (contentRef.current) {\n const currentHtml = contentRef.current.innerHTML;\n latestContentRef.current = currentHtml;\n\n if (onChange) onChange(currentHtml);\n\n // 1. Save locally immediately\n if (editorId) {\n localStorage.setItem(`draft_${editorId}`, currentHtml);\n setSaveStatus('saved_local');\n } else {\n setSaveStatus('unsaved');\n }\n\n // 2. Auto-Save Debounce for DB\n if (onSave) {\n if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);\n\n saveTimeoutRef.current = setTimeout(async () => {\n setSaveStatus('saving');\n const htmlToSave = latestContentRef.current;\n // Update syncRef BEFORE calling onSave, because onSave triggers setProjects\n // which causes a re-render. The useEffect must see the updated syncRef\n // to avoid re-writing innerHTML unnecessarily.\n syncRef.current = htmlToSave;\n try {\n await onSave(htmlToSave);\n setSaveStatus('saved_db');\n if (editorId) {\n // Once saved to DB, we can consider the local draft synced if we want,\n // or just keep it there. It will be overwritten on next load.\n }\n } catch (err) {\n console.error('Auto-save failed:', err);\n setSaveStatus('saved_local'); // Revert to local save status on error\n }\n }, 2000); // 2 seconds\n }\n }\n };\n\n const saveSelection = () => {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0 && contentRef.current?.contains(sel.anchorNode)) {\n lastCursorPosition.current = sel.getRangeAt(0).cloneRange();\n }\n };\n\n const handleSelection = () => {\n const selection = window.getSelection();\n saveSelection();\n\n if (selection && selection.toString().length > 0 && onSelectionChange) {\n onSelectionChange(selection.toString());\n } else if (onSelectionChange) {\n onSelectionChange(\"\");\n }\n };\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault();\n const selection = window.getSelection();\n\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n if (contentRef.current?.contains(range.commonAncestorContainer)) {\n savedRange.current = range.cloneRange();\n setContextMenu({ x: e.clientX, y: e.clientY });\n return;\n }\n }\n\n savedRange.current = null;\n setContextMenu({ x: e.clientX, y: e.clientY });\n };\n\n const handleAiAction = async (mode: 'correct' | 'rewrite' | 'expand' | 'continue') => {\n if (!onAiTransform) return;\n\n const range = savedRange.current;\n const text = range?.toString() || \"\";\n\n if (!text && mode !== 'continue') return;\n\n const typeLabels: Record = {\n correct: 'Correction',\n rewrite: 'Reformulation',\n expand: 'Développement',\n continue: 'Continuation'\n };\n saveVersion(typeLabels[mode], text || \"Position curseur\");\n\n setIsAiLoading(true);\n try {\n const result = await onAiTransform(text, mode);\n\n if (result) {\n contentRef.current?.focus();\n const sel = window.getSelection();\n sel?.removeAllRanges();\n\n if (range) {\n sel?.addRange(range);\n }\n\n if (mode === 'continue') {\n sel?.collapseToEnd();\n document.execCommand('insertText', false, \" \" + result);\n } else {\n document.execCommand('insertText', false, result);\n }\n\n handleInput();\n }\n } catch (e) {\n console.error(\"AI Action failed\", e);\n } finally {\n setIsAiLoading(false);\n setContextMenu(null);\n }\n };\n\n const handleCopy = () => {\n if (savedRange.current) {\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(savedRange.current);\n document.execCommand('copy');\n }\n setContextMenu(null);\n };\n\n const handleSelectAll = () => {\n contentRef.current?.focus();\n document.execCommand('selectAll');\n handleSelection();\n setContextMenu(null);\n }\n\n const ToolbarButton = ({ icon: Icon, cmd, arg, label, onClick, isActive }: any) => (\n {\n if (onClick) {\n e.preventDefault();\n onClick();\n } else {\n e.preventDefault();\n execCommand(cmd, arg);\n }\n }}\n className={`p-1.5 rounded transition-colors ${isActive ? 'bg-indigo-100 text-indigo-700' : 'text-slate-500 hover:text-slate-800 hover:bg-slate-200'}`}\n title={label}\n >\n \n \n );\n\n const hasSelection = savedRange.current && !savedRange.current.collapsed;\n\n return (\n
\n \n\n {/* Toolbar */}\n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n\n
\n\n {/* Save Status Indicator */}\n
\n {saveStatus === 'saving' && <> }\n {saveStatus === 'saved_local' && <> }\n {saveStatus === 'saved_db' && <> }\n {saveStatus === 'unsaved' && Non sauvegardé...}\n
\n\n
\n setShowHistoryMargin(!showHistoryMargin)}\n isActive={showHistoryMargin}\n />\n
\n\n {/* Main Container - Scrollable Area */}\n \n
\n\n {/* Editor Content Page */}\n { setIsFocused(false); saveSelection(); }}\n onFocus={() => setIsFocused(true)}\n onKeyUp={saveSelection}\n onMouseUp={saveSelection}\n onSelect={handleSelection}\n onClick={() => contentRef.current?.focus()}\n onContextMenu={handleContextMenu}\n data-placeholder=\"Commencez à écrire votre chef-d'œuvre... (Clic droit pour outils IA)\"\n />\n\n {/* History Track - Moving with the page */}\n {showHistoryMargin && (\n
\n {/* Placeholder for empty history */}\n {versionGroups.length === 0 && (\n
\n \n

L'historique des modifications IA apparaîtra ici, aligné avec votre texte.

\n
\n )}\n\n {/* Render Groups */}\n {versionGroups.map((group) => {\n const isExpanded = expandedGroupIds.has(group.id);\n const isStack = group.versions.length > 1;\n const latest = group.versions[0];\n\n return (\n \n
\n\n {/* Stack Effect Background Card */}\n {isStack && !isExpanded && (\n
\n )}\n\n {/* Main Card Header */}\n isStack && toggleGroup(group.id)}\n >\n
\n {isStack && (\n \n )}\n \n {latest.type}\n \n
\n
\n \n {new Date(latest.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}\n \n {isStack && (\n isExpanded ? : \n )}\n
\n
\n\n {/* Card Content (Latest) */}\n {!isExpanded && (\n
\n
\n \"{latest.snippet}\"\n
\n restoreVersion(latest)}\n className=\"mt-2 w-full flex items-center justify-center gap-1 text-[10px] bg-slate-50 hover:bg-indigo-50 text-slate-600 hover:text-indigo-700 py-1 rounded transition-colors\"\n >\n Restaurer\n \n
\n )}\n\n {/* Expanded Stack View */}\n {isExpanded && (\n
\n {group.versions.map((v, i) => (\n
\n
\n \n {i === 0 ? 'Dernière version' : `Version -${i}`}\n \n \n {new Date(v.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' })}\n \n
\n
\n \"{v.snippet}\"\n
\n restoreVersion(v)}\n className=\"w-full flex items-center justify-center gap-1 text-[10px] bg-white border border-slate-200 text-slate-600 hover:text-indigo-600 hover:border-indigo-200 py-1 rounded transition-colors\"\n >\n Restaurer cette version\n \n
\n ))}\n
\n )}\n
\n
\n );\n })}\n
\n )}\n
\n
\n\n {/* Context Menu Overlay */}\n {contextMenu && (\n <>\n setContextMenu(null)}\n onContextMenu={(e) => { e.preventDefault(); setContextMenu(null); }}\n />\n \n {isAiLoading ? (\n
\n \n L'IA travaille...\n
\n ) : (\n <>\n
\n Outils IA\n
\n\n handleAiAction('correct')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Corriger l'orthographe\n \n\n handleAiAction('rewrite')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Reformuler\n \n\n handleAiAction('expand')}\n disabled={!hasSelection}\n className={`flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${!hasSelection ? 'text-slate-300 cursor-not-allowed' : 'text-slate-700 hover:bg-indigo-50 hover:text-indigo-700'}`}\n >\n Développer\n \n\n handleAiAction('continue')}\n className=\"flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-indigo-50 hover:text-indigo-700 text-left transition-colors\"\n >\n Continuer l'écriture\n \n\n
\n\n
\n Édition\n
\n\n \n Copier\n \n\n \n Tout sélectionner\n \n \n )}\n
\n \n )}\n
\n );\n});\n\nexport default RichTextEditor;\n"],"names":[],"mappings":";;;;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAHA;;;AAqCA,MAAM,+BAAiB,GAAA,IAAA,uNAAU,UAA4C,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE;;IAC9J,MAAM,aAAa,IAAA,mNAAM,EAAiB;IAC1C,MAAM,qBAAqB,IAAA,mNAAM,EAAiB;IAClD,MAAM,CAAC,WAAW,aAAa,GAAG,IAAA,qNAAQ,EAAC;IAE3C,kBAAkB;IAClB,MAAM,CAAC,YAAY,cAAc,GAAG,IAAA,qNAAQ,EAAoD;IAChG,MAAM,iBAAiB,IAAA,mNAAM,EAAwB;IAErD,oEAAoE;IACpE,iFAAiF;IACjF,MAAM,UAAU,IAAA,mNAAM,EAAgB;IACtC,MAAM,mBAAmB,IAAA,mNAAM,EAAS;IAExC,qBAAqB;IACrB,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,qNAAQ,EAAkC;IAChF,MAAM,CAAC,aAAa,eAAe,GAAG,IAAA,qNAAQ,EAAC;IAE/C,gBAAgB;IAChB,MAAM,CAAC,UAAU,YAAY,GAAG,IAAA,qNAAQ,EAAY,EAAE;IACtD,MAAM,CAAC,mBAAmB,qBAAqB,GAAG,IAAA,qNAAQ,EAAC;IAC3D,MAAM,CAAC,kBAAkB,oBAAoB,GAAG,IAAA,qNAAQ,EAAc,IAAI;IAE1E,0BAA0B;IAC1B,MAAM,aAAa,IAAA,mNAAM,EAAe;IACxC,MAAM,qBAAqB,IAAA,mNAAM,EAAe;IAEhD,kBAAkB;IAElB,0DAA0D;IAC1D,MAAM,gBAAgB,IAAA,oNAAO;iDAAC;YAC5B,MAAM,iBAAiB;mBAAI;aAAS,CAAC,IAAI;wEAAC,CAAC,GAAG,IAAM,EAAE,SAAS,GAAG,EAAE,SAAS;;YAC7E,MAAM,SAAyB,EAAE;YAEjC,eAAe,OAAO;yDAAC,CAAA;oBACrB,+CAA+C;oBAC/C,MAAM,gBAAgB,OAAO,IAAI;+EAAC,CAAA,IAAK,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,SAAS,IAAI;;oBAE7E,IAAI,eAAe;wBACjB,cAAc,QAAQ,CAAC,IAAI,CAAC;wBAC5B,kCAAkC;wBAClC,cAAc,QAAQ,CAAC,IAAI;qEAAC,CAAC,GAAG,IAAM,EAAE,SAAS,GAAG,EAAE,SAAS;;oBACjE,OAAO;wBACL,OAAO,IAAI,CAAC;4BACV,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BACnB,WAAW,EAAE,SAAS;4BACtB,UAAU;gCAAC;6BAAE;wBACf;oBACF;gBACF;;YAEA,OAAO;QACT;gDAAG;QAAC;KAAS;IAEb,MAAM,cAAc,CAAC;QACnB,MAAM,SAAS,IAAI,IAAI;QACvB,IAAI,OAAO,GAAG,CAAC,UAAU;YACvB,OAAO,MAAM,CAAC;QAChB,OAAO;YACL,OAAO,GAAG,CAAC;QACb;QACA,oBAAoB;IACtB;IAEA,MAAM,wBAAwB;QAC5B,MAAM,MAAM,OAAO,YAAY;QAC/B,IAAI,OAAO,IAAI,UAAU,GAAG,KAAK,WAAW,OAAO,EAAE;YACnD,MAAM,QAAQ,IAAI,UAAU,CAAC;YAC7B,MAAM,OAAO,MAAM,qBAAqB;YACxC,gEAAgE;YAChE,oCAAoC;YACpC,MAAM,gBAAgB,WAAW,OAAO,CAAC,qBAAqB;YAC9D,OAAO,KAAK,GAAG,GAAG,cAAc,GAAG;QACrC;QACA,OAAO;IACT;IAEA,MAAM,cAAc,CAAC,MAAc;QACjC,IAAI,CAAC,WAAW,OAAO,EAAE;QAEzB,MAAM,YAAY;QAElB,MAAM,aAAsB;YAC1B,IAAI,KAAK,GAAG,GAAG,QAAQ;YACvB,WAAW,KAAK,GAAG;YACnB,MAAM;YACN,SAAS,WAAW,OAAO,CAAC,SAAS;YACrC,SAAS,YAAY,SAAS,CAAC,GAAG,MAAM,CAAC,YAAY,MAAM,GAAG,KAAK,QAAQ,EAAE;YAC7E;QACF;QAEA,YAAY,CAAA,OAAQ;gBAAC;mBAAe;aAAK;QACzC,qBAAqB;IACvB;IAEA,MAAM,iBAAiB,CAAC;QACtB,IAAI,CAAC,WAAW,OAAO,EAAE;QACzB,IAAI,QAAQ,+DAA+D;YACzE,WAAW,OAAO,CAAC,SAAS,GAAG,QAAQ,OAAO;YAC9C;QACF;IACF;IAEA,0BAA0B;IAE1B,IAAA,gOAAmB,EAAC;8CAAK,IAAM,CAAC;gBAC9B,UAAU;0DAAE,CAAC;wBACX,YAAY,kBAAkB;wBAE9B,WAAW,OAAO,EAAE;wBAEpB,MAAM,MAAM,OAAO,YAAY;wBAC/B,IAAI,mBAAmB,OAAO,EAAE;4BAC9B,KAAK;4BACL,KAAK,SAAS,mBAAmB,OAAO;wBAC1C,OAAO,IAAI,WAAW,OAAO,EAAE;4BAC7B,MAAM,QAAQ,SAAS,WAAW;4BAClC,MAAM,kBAAkB,CAAC,WAAW,OAAO;4BAC3C,MAAM,QAAQ,CAAC;4BACf,KAAK;4BACL,KAAK,SAAS;wBAChB;wBAEA,MAAM,eAAe,KAAK,QAAQ,CAAC,OAAO,OAAO,KAAK,OAAO,CAAC,OAAO;wBACrE,SAAS,WAAW,CAAC,cAAc,OAAO;wBAC1C;oBACF;;YACF,CAAC;;IAED,kBAAkB;IAElB,IAAA,sNAAS;oCAAC;YACR,IAAI,CAAC,WAAW,OAAO,IAAI,mBAAmB,WAAW;YAEzD,IAAI,gBAAgB;YACpB,IAAI,gBAAgB;YAEpB,uCAAuC;YACvC,IAAI,UAAU;gBACZ,MAAM,aAAa,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU;gBAC3D,IAAI,cAAc,eAAe,gBAAgB;oBAC/C,gBAAgB;oBAChB,gBAAgB;oBAChB,cAAc;gBAChB;YACF;YAEA,gFAAgF;YAChF,IAAI,kBAAkB,WAAW,OAAO,CAAC,SAAS,EAAE;YAEpD,yDAAyD;YACzD,4CAA4C;YAC5C,iEAAiE;YACjE,8DAA8D;YAC9D,MAAM,gBAAgB,SAAS,aAAa,KAAK,WAAW,OAAO;YAEnE,IAAI,CAAC,iBAAkB,WAAW,OAAO,CAAC,SAAS,KAAK,MAAM,kBAAkB,IAAK;gBACnF,WAAW,OAAO,CAAC,SAAS,GAAG;gBAC/B,QAAQ,OAAO,GAAG;gBAClB,iBAAiB,OAAO,GAAG;YAC7B;QACF;mCAAG;QAAC;QAAgB;KAAS;IAE7B,gCAAgC;IAChC,IAAA,sNAAS;oCAAC;YACR;4CAAO;oBACL,IAAI,eAAe,OAAO,EAAE;wBAC1B,aAAa,eAAe,OAAO;oBACrC;oBACA,gEAAgE;oBAChE,IAAI,iBAAiB,OAAO,KAAK,QAAQ,OAAO,IAAI,QAAQ;wBAC1D,QAAQ,OAAO,GAAG,iBAAiB,OAAO;wBAC1C,OAAO,iBAAiB,OAAO;oBACjC;gBACF;;QACF;mCAAG;QAAC;KAAO;IAEX,yBAAyB;IAEzB,MAAM,cAAc,CAAC,SAAiB,QAA4B,SAAS;QACzE,SAAS,WAAW,CAAC,SAAS,OAAO;QACrC;QACA,WAAW,OAAO,EAAE;IACtB;IAEA,MAAM,cAAc;QAClB,IAAI,WAAW,OAAO,EAAE;YACtB,MAAM,cAAc,WAAW,OAAO,CAAC,SAAS;YAChD,iBAAiB,OAAO,GAAG;YAE3B,IAAI,UAAU,SAAS;YAEvB,8BAA8B;YAC9B,IAAI,UAAU;gBACZ,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE;gBAC1C,cAAc;YAChB,OAAO;gBACL,cAAc;YAChB;YAEA,+BAA+B;YAC/B,IAAI,QAAQ;gBACV,IAAI,eAAe,OAAO,EAAE,aAAa,eAAe,OAAO;gBAE/D,eAAe,OAAO,GAAG,WAAW;oBAClC,cAAc;oBACd,MAAM,aAAa,iBAAiB,OAAO;oBAC3C,4EAA4E;oBAC5E,uEAAuE;oBACvE,+CAA+C;oBAC/C,QAAQ,OAAO,GAAG;oBAClB,IAAI;wBACF,MAAM,OAAO;wBACb,cAAc;wBACd,IAAI,UAAU;wBACZ,uEAAuE;wBACvE,8DAA8D;wBAChE;oBACF,EAAE,OAAO,KAAK;wBACZ,QAAQ,KAAK,CAAC,qBAAqB;wBACnC,cAAc,gBAAgB,uCAAuC;oBACvE;gBACF,GAAG,OAAO,YAAY;YACxB;QACF;IACF;IAEA,MAAM,gBAAgB;QACpB,MAAM,MAAM,OAAO,YAAY;QAC/B,IAAI,OAAO,IAAI,UAAU,GAAG,KAAK,WAAW,OAAO,EAAE,SAAS,IAAI,UAAU,GAAG;YAC7E,mBAAmB,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,UAAU;QAC3D;IACF;IAEA,MAAM,kBAAkB;QACtB,MAAM,YAAY,OAAO,YAAY;QACrC;QAEA,IAAI,aAAa,UAAU,QAAQ,GAAG,MAAM,GAAG,KAAK,mBAAmB;YACrE,kBAAkB,UAAU,QAAQ;QACtC,OAAO,IAAI,mBAAmB;YAC5B,kBAAkB;QACpB;IACF;IAEA,MAAM,oBAAoB,CAAC;QACzB,EAAE,cAAc;QAChB,MAAM,YAAY,OAAO,YAAY;QAErC,IAAI,aAAa,UAAU,UAAU,GAAG,GAAG;YACzC,MAAM,QAAQ,UAAU,UAAU,CAAC;YACnC,IAAI,WAAW,OAAO,EAAE,SAAS,MAAM,uBAAuB,GAAG;gBAC/D,WAAW,OAAO,GAAG,MAAM,UAAU;gBACrC,eAAe;oBAAE,GAAG,EAAE,OAAO;oBAAE,GAAG,EAAE,OAAO;gBAAC;gBAC5C;YACF;QACF;QAEA,WAAW,OAAO,GAAG;QACrB,eAAe;YAAE,GAAG,EAAE,OAAO;YAAE,GAAG,EAAE,OAAO;QAAC;IAC9C;IAEA,MAAM,iBAAiB,OAAO;QAC5B,IAAI,CAAC,eAAe;QAEpB,MAAM,QAAQ,WAAW,OAAO;QAChC,MAAM,OAAO,OAAO,cAAc;QAElC,IAAI,CAAC,QAAQ,SAAS,YAAY;QAElC,MAAM,aAAqC;YACzC,SAAS;YACT,SAAS;YACT,QAAQ;YACR,UAAU;QACZ;QACA,YAAY,UAAU,CAAC,KAAK,EAAE,QAAQ;QAEtC,eAAe;QACf,IAAI;YACF,MAAM,SAAS,MAAM,cAAc,MAAM;YAEzC,IAAI,QAAQ;gBACV,WAAW,OAAO,EAAE;gBACpB,MAAM,MAAM,OAAO,YAAY;gBAC/B,KAAK;gBAEL,IAAI,OAAO;oBACT,KAAK,SAAS;gBAChB;gBAEA,IAAI,SAAS,YAAY;oBACvB,KAAK;oBACL,SAAS,WAAW,CAAC,cAAc,OAAO,MAAM;gBAClD,OAAO;oBACL,SAAS,WAAW,CAAC,cAAc,OAAO;gBAC5C;gBAEA;YACF;QACF,EAAE,OAAO,GAAG;YACV,QAAQ,KAAK,CAAC,oBAAoB;QACpC,SAAU;YACR,eAAe;YACf,eAAe;QACjB;IACF;IAEA,MAAM,aAAa;QACjB,IAAI,WAAW,OAAO,EAAE;YACtB,MAAM,MAAM,OAAO,YAAY;YAC/B,KAAK;YACL,KAAK,SAAS,WAAW,OAAO;YAChC,SAAS,WAAW,CAAC;QACvB;QACA,eAAe;IACjB;IAEA,MAAM,kBAAkB;QACtB,WAAW,OAAO,EAAE;QACpB,SAAS,WAAW,CAAC;QACrB;QACA,eAAe;IACjB;IAEA,MAAM,gBAAgB,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAO,iBAC5E,yOAAC;YACC,aAAa,CAAC;gBACZ,IAAI,SAAS;oBACX,EAAE,cAAc;oBAChB;gBACF,OAAO;oBACL,EAAE,cAAc;oBAChB,YAAY,KAAK;gBACnB;YACF;YACA,WAAW,CAAC,gCAAgC,EAAE,WAAW,kCAAkC,0DAA0D;YACrJ,OAAO;sBAEP,cAAA,yOAAC;gBAAK,MAAM;;;;;;;;;;;IAIhB,MAAM,eAAe,WAAW,OAAO,IAAI,CAAC,WAAW,OAAO,CAAC,SAAS;IAExE,qBACE,yOAAC;QAAI,WAAU;;0BACb,yOAAC;0BAAO,CAAC;;;;;;;MAOT,CAAC;;;;;;0BAGD,yOAAC;gBAAI,WAAU;;kCACb,yOAAC;wBAAc,MAAM,yPAAI;wBAAE,KAAI;wBAAO,OAAM;;;;;;kCAC5C,yOAAC;wBAAc,MAAM,+PAAM;wBAAE,KAAI;wBAAS,OAAM;;;;;;kCAChD,yOAAC;wBAAc,MAAM,wQAAS;wBAAE,KAAI;wBAAY,OAAM;;;;;;kCACtD,yOAAC;wBAAI,WAAU;;;;;;kCACf,yOAAC;wBAAc,MAAM,yQAAQ;wBAAE,KAAI;wBAAc,KAAI;wBAAK,OAAM;;;;;;kCAChE,yOAAC;wBAAc,MAAM,yQAAQ;wBAAE,KAAI;wBAAc,KAAI;wBAAK,OAAM;;;;;;kCAChE,yOAAC;wBAAI,WAAU;;;;;;kCACf,yOAAC;wBAAc,MAAM,qRAAS;wBAAE,KAAI;wBAAc,OAAM;;;;;;kCACxD,yOAAC;wBAAc,MAAM,0RAAW;wBAAE,KAAI;wBAAgB,OAAM;;;;;;kCAC5D,yOAAC;wBAAc,MAAM,qRAAU;wBAAE,KAAI;wBAAe,OAAM;;;;;;kCAC1D,yOAAC;wBAAI,WAAU;;;;;;kCACf,yOAAC;wBAAc,MAAM,yPAAI;wBAAE,KAAI;wBAAsB,OAAM;;;;;;kCAE3D,yOAAC;wBAAI,WAAU;;;;;;kCAGf,yOAAC;wBAAI,WAAU;;4BACZ,eAAe,0BAAY;;kDAAE,yOAAC,2QAAO;wCAAC,MAAM;wCAAI,WAAU;;;;;;oCAA+B;kDAAC,yOAAC;wCAAK,WAAU;kDAAiC;;;;;;;;4BAC3I,eAAe,+BAAiB;;kDAAE,yOAAC,4PAAK;wCAAC,MAAM;wCAAI,WAAU;;;;;;oCAAmB;kDAAC,yOAAC;wCAAK,WAAU;kDAAkC;;;;;;;;4BACnI,eAAe,4BAAc;;kDAAE,yOAAC,+QAAU;wCAAC,MAAM;wCAAI,WAAU;;;;;;oCAAqB;kDAAC,yOAAC;wCAAK,WAAU;kDAAoC;;;;;;;;4BACzI,eAAe,2BAAa,yOAAC;gCAAK,WAAU;0CAAiB;;;;;;;;;;;;kCAGhE,yOAAC;wBAAI,WAAU;;;;;;kCACf,yOAAC;wBACC,MAAM,kQAAO;wBACb,OAAM;wBACN,SAAS,IAAM,qBAAqB,CAAC;wBACrC,UAAU;;;;;;;;;;;;0BAKd,yOAAC;gBACC,WAAU;gBACV,KAAK;0BAEL,cAAA,yOAAC;oBAAI,WAAU;;sCAGb,yOAAC;4BACC,KAAK;4BACL,eAAe;4BACf,8BAA8B;4BAC9B,YAAY;4BACZ,MAAK;4BACL,WAAU;4BACV,SAAS;4BACT,QAAQ;gCAAQ,aAAa;gCAAQ;4BAAiB;4BACtD,SAAS,IAAM,aAAa;4BAC5B,SAAS;4BACT,WAAW;4BACX,UAAU;4BACV,SAAS,IAAM,WAAW,OAAO,EAAE;4BACnC,eAAe;4BACf,oBAAiB;;;;;;wBAIlB,mCACC,yOAAC;4BAAI,WAAU;;gCAEZ,cAAc,MAAM,KAAK,mBACxB,yOAAC;oCAAI,WAAU;;sDACb,yOAAC,kQAAO;4CAAC,MAAM;4CAAI,WAAU;;;;;;sDAC7B,yOAAC;4CAAE,WAAU;sDAAU;;;;;;;;;;;;gCAK1B,cAAc,GAAG,CAAC,CAAC;oCAClB,MAAM,aAAa,iBAAiB,GAAG,CAAC,MAAM,EAAE;oCAChD,MAAM,UAAU,MAAM,QAAQ,CAAC,MAAM,GAAG;oCACxC,MAAM,SAAS,MAAM,QAAQ,CAAC,EAAE;oCAEhC,qBACE,yOAAC;wCAEC,WAAU;wCACV,OAAO;4CAAE,KAAK,GAAG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;wCAAC;kDAE1C,cAAA,yOAAC;4CAAI,WAAW,CAAC,0EAA0E,EAAE,WAAW,CAAC,aAAa,4DAA4D,oBAAoB;;gDAGnM,WAAW,CAAC,4BACX,yOAAC;oDAAI,WAAU;;;;;;8DAIjB,yOAAC;oDACC,WAAU;oDACV,SAAS,IAAM,WAAW,YAAY,MAAM,EAAE;;sEAE9C,yOAAC;4DAAI,WAAU;;gEACZ,yBACC,yOAAC,+PAAM;oEAAC,MAAM;oEAAI,WAAU;;;;;;8EAE9B,yOAAC;oEAAK,WAAW,CAAC,oEAAoE,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,gCAC3H,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,8BAClC,iCACA;8EACD,OAAO,IAAI;;;;;;;;;;;;sEAGhB,yOAAC;4DAAI,WAAU;;8EACb,yOAAC;oEAAK,WAAU;8EACb,IAAI,KAAK,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE;wEAAE,MAAM;wEAAW,QAAQ;oEAAU;;;;;;gEAEzF,WAAW,CACV,2BAAa,yOAAC,4QAAS;oEAAC,MAAM;oEAAI,WAAU;;;;;6HAAsB,yOAAC,kRAAW;oEAAC,MAAM;oEAAI,WAAU;;;;;4GACrG;;;;;;;;;;;;;gDAKH,CAAC,4BACA,yOAAC;oDAAI,WAAU;;sEACb,yOAAC;4DAAI,WAAU;;gEAA6C;gEACxD,OAAO,OAAO;gEAAC;;;;;;;sEAEnB,yOAAC;4DACC,SAAS,IAAM,eAAe;4DAC9B,WAAU;;8EAEV,yOAAC,4QAAS;oEAAC,MAAM;;;;;;gEAAM;;;;;;;;;;;;;gDAM5B,4BACC,yOAAC;oDAAI,WAAU;8DACZ,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,kBACtB,yOAAC;4DAAe,WAAU;;8EACxB,yOAAC;oEAAI,WAAU;;sFACb,yOAAC;4EAAK,WAAU;sFACb,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,GAAG;;;;;;sFAEjD,yOAAC;4EAAK,WAAU;sFACb,IAAI,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE;gFAAE,MAAM;gFAAW,QAAQ;gFAAW,QAAQ;4EAAU;;;;;;;;;;;;8EAG1G,yOAAC;oEAAI,WAAU;;wEAAuF;wEAClG,EAAE,OAAO;wEAAC;;;;;;;8EAEd,yOAAC;oEACC,SAAS,IAAM,eAAe;oEAC9B,WAAU;;sFAEV,yOAAC,4QAAS;4EAAC,MAAM;;;;;;wEAAM;;;;;;;;2DAhBjB,EAAE,EAAE;;;;;;;;;;;;;;;;uCAxDjB,MAAM,EAAE;;;;;gCAiFnB;;;;;;;;;;;;;;;;;;YAOP,6BACC;;kCACE,yOAAC;wBACC,WAAU;wBACV,SAAS,IAAM,eAAe;wBAC9B,eAAe,CAAC;4BAAQ,EAAE,cAAc;4BAAI,eAAe;wBAAO;;;;;;kCAEpE,yOAAC;wBACC,WAAU;wBACV,OAAO;4BAAE,KAAK,KAAK,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,WAAW,GAAG;4BAAM,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,UAAU,GAAG;wBAAK;kCAEvH,4BACC,yOAAC;4BAAI,WAAU;;8CACb,yOAAC,2QAAO;oCAAC,WAAU;oCAAe,MAAM;;;;;;8CACxC,yOAAC;oCAAK,WAAU;8CAAsB;;;;;;;;;;;qFAGxC;;8CACE,yOAAC;oCAAI,WAAU;8CAA0E;;;;;;8CAIzF,yOAAC;oCACC,SAAS,IAAM,eAAe;oCAC9B,UAAU,CAAC;oCACX,WAAW,CAAC,sEAAsE,EAAE,CAAC,eAAe,sCAAsC,2DAA2D;;sDAErM,yOAAC,4PAAK;4CAAC,MAAM;;;;;;wCAAM;;;;;;;8CAGrB,yOAAC;oCACC,SAAS,IAAM,eAAe;oCAC9B,UAAU,CAAC;oCACX,WAAW,CAAC,sEAAsE,EAAE,CAAC,eAAe,sCAAsC,2DAA2D;;sDAErM,yOAAC,4QAAS;4CAAC,MAAM;;;;;;wCAAM;;;;;;;8CAGzB,yOAAC;oCACC,SAAS,IAAM,eAAe;oCAC9B,UAAU,CAAC;oCACX,WAAW,CAAC,sEAAsE,EAAE,CAAC,eAAe,sCAAsC,2DAA2D;;sDAErM,yOAAC,4QAAS;4CAAC,MAAM;;;;;;wCAAM;;;;;;;8CAGzB,yOAAC;oCACC,SAAS,IAAM,eAAe;oCAC9B,WAAU;;sDAEV,yOAAC,uQAAK;4CAAC,MAAM;;;;;;wCAAM;;;;;;;8CAGrB,yOAAC;oCAAI,WAAU;;;;;;8CAEf,yOAAC;oCAAI,WAAU;8CAA0E;;;;;;8CAIzF,yOAAC;oCACC,SAAS;oCACT,UAAU,CAAC;oCACX,WAAW,CAAC,sEAAsE,EAAE,CAAC,eAAe,sCAAsC,oCAAoC;;sDAE9K,yOAAC,yPAAI;4CAAC,MAAM;;;;;;wCAAM;;;;;;;8CAGpB,yOAAC;oCACC,SAAS;oCACT,WAAU;;sDAEV,yOAAC,wSAAiB;4CAAC,MAAM;;;;;;wCAAM;;;;;;;;;;;;;;;;;;;;;;AASjD;;uCAEe"}}, + {"offset": {"line": 1106, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/project/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\r\n\r\nimport React, { useRef } from 'react';\r\nimport RichTextEditor, { RichTextEditorHandle } from '@/components/RichTextEditor';\r\nimport { useProjectContext } from '@/providers/ProjectProvider';\r\nimport api from '@/lib/api';\r\n\r\nexport default function WritePage() {\r\n const editorRef = useRef(null);\r\n const { project, user, currentChapterId, updateChapter, incrementUsage } = useProjectContext();\r\n\r\n if (!currentChapterId) return null;\r\n\r\n const currentChapter = project.chapters?.find(c => c.id === currentChapterId);\r\n\r\n return (\r\n updateChapter(currentChapterId, { content: html })}\r\n onAiTransform={async (text, mode) => {\r\n const result = await api.ai.transform(text, mode, currentChapter?.content || '', user);\r\n incrementUsage();\r\n return result;\r\n }}\r\n />\r\n );\r\n}\r\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;;;AALA;;;;;AAOe,SAAS;;IACpB,MAAM,YAAY,IAAA,mNAAM,EAAuB;IAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,wMAAiB;IAE5F,IAAI,CAAC,kBAAkB,OAAO;IAE9B,MAAM,iBAAiB,QAAQ,QAAQ,EAAE,KAAK,CAAA,IAAK,EAAE,EAAE,KAAK;IAE5D,qBACI,yOAAC,8LAAc;QACX,KAAK;QACL,UAAU;QACV,gBAAgB,gBAAgB,WAAW;QAC3C,QAAQ,CAAC,OAAS,cAAc,kBAAkB;gBAAE,SAAS;YAAK;QAClE,eAAe,OAAO,MAAM;YACxB,MAAM,SAAS,MAAM,2KAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,MAAM,gBAAgB,WAAW,IAAI;YACjF;YACA,OAAO;QACX;;;;;;AAGZ;GArBwB;;QAEuD,wMAAiB;;;KAFxE"}}] } \ No newline at end of file diff --git a/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css b/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css index 81b6e40..218e0d5 100644 --- a/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css +++ b/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css @@ -405,6 +405,7 @@ --color-green-500: #00c758; --color-green-700: #008138; --color-green-800: #016630; + --color-emerald-600: #009767; --color-blue-50: #eff6ff; --color-blue-100: #dbeafe; --color-blue-200: #bedbff; @@ -427,8 +428,10 @@ --color-indigo-900: #312c85; --color-purple-100: #f3e8ff; --color-purple-200: #e9d5ff; + --color-purple-500: #ac4bff; --color-purple-600: #9810fa; --color-purple-700: #8200da; + --color-pink-500: #f6339a; --color-rose-100: #ffe4e6; --color-rose-200: #ffccd3; --color-rose-800: #a30037; @@ -544,6 +547,7 @@ --color-green-500: lab(70.5521% -66.5147 45.8072); --color-green-700: lab(47.0329% -47.0239 31.4788); --color-green-800: lab(37.4616% -36.7971 22.9692); + --color-emerald-600: lab(55.0481% -49.9246 15.93); --color-blue-50: lab(96.492% -1.14647 -5.11479); --color-blue-100: lab(92.0301% -2.24757 -11.6453); --color-blue-200: lab(86.15% -4.04379 -21.0797); @@ -566,8 +570,10 @@ --color-indigo-900: lab(23.3911% 24.6978 -50.4719); --color-purple-100: lab(93.3333% 6.9744 -9.83434); --color-purple-200: lab(87.8405% 13.4282 -18.7159); + --color-purple-500: lab(52.0183% 66.11 -78.2316); --color-purple-600: lab(43.0295% 75.21 -86.5669); --color-purple-700: lab(36.1758% 69.8525 -80.0381); + --color-pink-500: lab(56.9303% 76.8162 -8.07021); --color-rose-100: lab(92.8221% 9.86832 2.60077); --color-rose-200: lab(86.806% 19.1909 4.07754); --color-rose-800: lab(34.6481% 60.802 20.1957); @@ -945,6 +951,10 @@ right: calc(var(--spacing) * 4); } + .right-6 { + right: calc(var(--spacing) * 6); + } + .right-10 { right: calc(var(--spacing) * 10); } @@ -965,6 +975,10 @@ bottom: calc(var(--spacing) * 2); } + .bottom-6 { + bottom: calc(var(--spacing) * 6); + } + .bottom-10 { bottom: calc(var(--spacing) * 10); } @@ -981,6 +995,10 @@ left: calc(var(--spacing) * 0); } + .left-2 { + left: calc(var(--spacing) * 2); + } + .left-3 { left: calc(var(--spacing) * 3); } @@ -1617,10 +1635,6 @@ grid-template-columns: repeat(2, minmax(0, 1fr)); } - .grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } @@ -1890,6 +1904,11 @@ border-style: dashed; } + .border-none { + --tw-border-style: none; + border-style: none; + } + .border-\[\#dfcdae\] { border-color: #dfcdae; } @@ -2010,6 +2029,14 @@ border-color: var(--color-theme-border); } + .border-theme-panel { + border-color: var(--color-theme-panel); + } + + .border-theme-text { + border-color: var(--color-theme-text); + } + .border-transparent { border-color: #0000; } @@ -2288,6 +2315,10 @@ background-color: var(--color-theme-panel); } + .bg-theme-text { + background-color: var(--color-theme-text); + } + .bg-transparent { background-color: #0000; } @@ -2346,6 +2377,11 @@ background-image: linear-gradient(var(--tw-gradient-stops)); } + .bg-gradient-to-tr { + --tw-gradient-position: to top right in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .from-blue-500 { --tw-gradient-from: var(--color-blue-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -2375,6 +2411,11 @@ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-pink-500 { + --tw-gradient-from: var(--color-pink-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-red-200 { --tw-gradient-from: var(--color-red-200); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -2397,6 +2438,12 @@ --tw-gradient-stops: var(--tw-gradient-via-stops); } + .via-purple-500 { + --tw-gradient-via: var(--color-purple-500); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-yellow-100 { --tw-gradient-via: var(--color-yellow-100); --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); @@ -2869,6 +2916,10 @@ color: var(--color-blue-900); } + .text-emerald-600 { + color: var(--color-emerald-600); + } + .text-gray-800 { color: var(--color-gray-800); } @@ -2969,6 +3020,10 @@ color: var(--color-slate-900); } + .text-theme-bg { + color: var(--color-theme-bg); + } + .text-theme-editor-text { color: var(--color-theme-editor-text); } @@ -3127,6 +3182,16 @@ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .shadow-\[\#dfcdae\] { + --tw-shadow-color: #dfcdae; + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-\[\#dfcdae\] { + --tw-shadow-color: color-mix(in oklab, #dfcdae var(--tw-shadow-alpha), transparent); + } + } + .shadow-blue-200 { --tw-shadow-color: #bedbff; } @@ -3159,6 +3224,48 @@ } } + .shadow-slate-200 { + --tw-shadow-color: #e2e8f0; + } + + @supports (color: lab(0% 0 0)) { + .shadow-slate-200 { + --tw-shadow-color: lab(91.7353% -.998765 -4.76968); + } + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-slate-200 { + --tw-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-shadow-alpha), transparent); + } + } + + .shadow-slate-900 { + --tw-shadow-color: #0f172b; + } + + @supports (color: lab(0% 0 0)) { + .shadow-slate-900 { + --tw-shadow-color: lab(7.78673% 1.82346 -15.0537); + } + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-slate-900 { + --tw-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-shadow-alpha), transparent); + } + } + + .shadow-theme-border { + --tw-shadow-color: var(--color-theme-border); + } + + @supports (color: color-mix(in lab, red, red)) { + .shadow-theme-border { + --tw-shadow-color: color-mix(in oklab, var(--color-theme-border) var(--tw-shadow-alpha), transparent); + } + } + .ring-amber-200 { --tw-ring-color: var(--color-amber-200); } @@ -3334,6 +3441,13 @@ background-color: var(--color-blue-200); } + @media (hover: hover) { + .hover\:-translate-y-1:hover { + --tw-translate-y: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media (hover: hover) { .hover\:scale-105:hover { --tw-scale-x: 105%; @@ -3388,6 +3502,12 @@ } } + @media (hover: hover) { + .hover\:border-red-200:hover { + border-color: var(--color-red-200); + } + } + @media (hover: hover) { .hover\:border-slate-200:hover { border-color: var(--color-slate-200); @@ -3406,6 +3526,18 @@ } } + @media (hover: hover) { + .hover\:border-theme-text:hover { + border-color: var(--color-theme-text); + } + } + + @media (hover: hover) { + .hover\:bg-\[\#433422\]:hover { + background-color: #433422; + } + } + @media (hover: hover) { .hover\:bg-\[\#eaddc4\]:hover { background-color: #eaddc4; @@ -3442,12 +3574,6 @@ } } - @media (hover: hover) { - .hover\:bg-blue-500:hover { - background-color: var(--color-blue-500); - } - } - @media (hover: hover) { .hover\:bg-blue-500\/10:hover { background-color: #3080ff1a; diff --git a/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css.map b/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css.map index 8f913a1..4f62a05 100644 --- a/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css.map +++ b/.next/dev/static/chunks/[root-of-the-server]__c391f813._.css.map @@ -4,5 +4,5 @@ "sections": [ {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/internal/font/google/inter_b2991b2.module.css"],"sourcesContent":["/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@font-face {\n font-family: 'Inter Fallback';\n src: local(\"Arial\");\n ascent-override: 90.44%;\ndescent-override: 22.52%;\nline-gap-override: 0.00%;\nsize-adjust: 107.12%;\n\n}\n.className {\n font-family: 'Inter', 'Inter Fallback';\n font-style: normal;\n\n}\n.variable {\n --font-sans: 'Inter', 'Inter Fallback';\n}\n"],"names":[],"mappings":"AACA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AAQA;;;;;;;;;AASA;;;;;AAKA","ignoreList":[0]}}, {"offset": {"line": 83, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/internal/font/google/merriweather_6ee6941f.module.css"],"sourcesContent":["/* cyrillic-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 300;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqnJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 300;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSequJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 300;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqlJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 300;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqkJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;\n}\n/* latin */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 300;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqqJ-mXq1Gi.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqnJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSequJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqlJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqkJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;\n}\n/* latin */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqqJ-mXq1Gi.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqnJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSequJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqlJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqkJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;\n}\n/* latin */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqqJ-mXq1Gi.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 900;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqnJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 900;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSequJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 900;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqlJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 900;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqkJ-mXq1Gi3iE.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;\n}\n/* latin */\n@font-face {\n font-family: 'Merriweather';\n font-style: normal;\n font-weight: 900;\n font-stretch: 100%;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/merriweather/v33/u-4e0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiSeqqJ-mXq1Gi.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@font-face {\n font-family: 'Merriweather Fallback';\n src: local(\"Times New Roman\");\n ascent-override: 80.59%;\ndescent-override: 22.36%;\nline-gap-override: 0.00%;\nsize-adjust: 122.09%;\n\n}\n.className {\n font-family: 'Merriweather', 'Merriweather Fallback';\n font-style: normal;\n\n}\n.variable {\n --font-serif: 'Merriweather', 'Merriweather Fallback';\n}\n"],"names":[],"mappings":"AACA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AAUA;;;;;;;;;;AASA;;;;;;;;;AASA;;;;;AAKA","ignoreList":[0]}}, - {"offset": {"line": 302, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: 'Inter', sans-serif;\n --font-serif: 'Merriweather', serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-relaxed: 1.625;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-3xl: 64px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-theme-bg: var(--theme-bg);\n --color-theme-panel: var(--theme-panel);\n --color-theme-text: var(--theme-text);\n --color-theme-muted: var(--theme-muted);\n --color-theme-border: var(--theme-border);\n --color-theme-editor-bg: var(--theme-editor-bg);\n --color-theme-editor-text: var(--theme-editor-text);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .-inset-4 {\n inset: calc(var(--spacing) * -4);\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .start {\n inset-inline-start: var(--spacing);\n }\n .end {\n inset-inline-end: var(--spacing);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .top-10 {\n top: calc(var(--spacing) * 10);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-3 {\n right: calc(var(--spacing) * -3);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-10 {\n right: calc(var(--spacing) * 10);\n }\n .right-\\[-10px\\] {\n right: -10px;\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-10 {\n bottom: calc(var(--spacing) * 10);\n }\n .bottom-full {\n bottom: 100%;\n }\n .-left-2 {\n left: calc(var(--spacing) * -2);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-10 {\n left: calc(var(--spacing) * 10);\n }\n .left-\\[calc\\(50\\%\\+420px\\)\\] {\n left: calc(50% + 420px);\n }\n .-z-1 {\n z-index: calc(1 * -1);\n }\n .-z-10 {\n z-index: calc(10 * -1);\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-3 {\n grid-column: span 3 / span 3;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-8 {\n margin: calc(var(--spacing) * -8);\n }\n .m-1 {\n margin: calc(var(--spacing) * 1);\n }\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .-mt-20 {\n margin-top: calc(var(--spacing) * -20);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-12 {\n margin-top: calc(var(--spacing) * 12);\n }\n .mt-20 {\n margin-top: calc(var(--spacing) * 20);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n .mr-6 {\n margin-right: calc(var(--spacing) * 6);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-12 {\n margin-bottom: calc(var(--spacing) * 12);\n }\n .mb-16 {\n margin-bottom: calc(var(--spacing) * 16);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-24 {\n height: calc(var(--spacing) * 24);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-96 {\n height: calc(var(--spacing) * 96);\n }\n .h-\\[4000px\\] {\n height: 4000px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n .max-h-64 {\n max-height: calc(var(--spacing) * 64);\n }\n .max-h-\\[90\\%\\] {\n max-height: 90%;\n }\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[120px\\] {\n min-height: 120px;\n }\n .min-h-\\[1000px\\] {\n min-height: 1000px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n .w-1\\/2 {\n width: calc(1 / 2 * 100%);\n }\n .w-1\\/3 {\n width: calc(1 / 3 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-80 {\n width: calc(var(--spacing) * 80);\n }\n .w-96 {\n width: calc(var(--spacing) * 96);\n }\n .w-\\[600px\\] {\n width: 600px;\n }\n .w-\\[800px\\] {\n width: 800px;\n }\n .w-\\[4000px\\] {\n width: 4000px;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[85\\%\\] {\n max-width: 85%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-105 {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-\\[1\\.01\\] {\n scale: 1.01;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .resize-none {\n resize: none;\n }\n .list-disc {\n list-style-type: disc;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-slate-50 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-50);\n }\n }\n .divide-slate-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-100);\n }\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2\\.5rem\\] {\n border-radius: 2.5rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[2rem\\] {\n border-radius: 2rem;\n }\n .rounded-\\[3rem\\] {\n border-radius: 3rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n .rounded-br-none {\n border-bottom-right-radius: 0;\n }\n .rounded-bl-none {\n border-bottom-left-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-2 {\n border-right-style: var(--tw-border-style);\n border-right-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-\\[\\#dfcdae\\] {\n border-color: #dfcdae;\n }\n .border-\\[\\#eaddc4\\] {\n border-color: #eaddc4;\n }\n .border-\\[\\#f4ecd8\\] {\n border-color: #f4ecd8;\n }\n .border-amber-100 {\n border-color: var(--color-amber-100);\n }\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n .border-blue-100 {\n border-color: var(--color-blue-100);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-400 {\n border-color: var(--color-blue-400);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-100 {\n border-color: var(--color-green-100);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-indigo-50 {\n border-color: var(--color-indigo-50);\n }\n .border-indigo-100 {\n border-color: var(--color-indigo-100);\n }\n .border-indigo-200 {\n border-color: var(--color-indigo-200);\n }\n .border-indigo-300 {\n border-color: var(--color-indigo-300);\n }\n .border-indigo-400 {\n border-color: var(--color-indigo-400);\n }\n .border-indigo-600 {\n border-color: var(--color-indigo-600);\n }\n .border-red-100 {\n border-color: var(--color-red-100);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-rose-200 {\n border-color: var(--color-rose-200);\n }\n .border-slate-50 {\n border-color: var(--color-slate-50);\n }\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-700 {\n border-color: var(--color-slate-700);\n }\n .border-slate-800 {\n border-color: var(--color-slate-800);\n }\n .border-theme-border {\n border-color: var(--color-theme-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-100 {\n border-color: var(--color-yellow-100);\n }\n .bg-\\[\\#5c4731\\] {\n background-color: #5c4731;\n }\n .bg-\\[\\#eaddc4\\] {\n background-color: #eaddc4;\n }\n .bg-\\[\\#eef2ff\\] {\n background-color: #eef2ff;\n }\n .bg-\\[\\#f4ecd8\\] {\n background-color: #f4ecd8;\n }\n .bg-\\[\\#fbf8f1\\] {\n background-color: #fbf8f1;\n }\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n .bg-amber-400 {\n background-color: var(--color-amber-400);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-blue-500\\/10 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n .bg-blue-500\\/20 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n .bg-blue-900 {\n background-color: var(--color-blue-900);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-500\\/10 {\n background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);\n }\n }\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n .bg-indigo-50\\/30 {\n background-color: color-mix(in srgb, oklch(96.2% 0.018 272.314) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-50) 30%, transparent);\n }\n }\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n .bg-indigo-500\\/10 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n .bg-indigo-500\\/20 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n }\n .bg-indigo-600 {\n background-color: var(--color-indigo-600);\n }\n .bg-indigo-900 {\n background-color: var(--color-indigo-900);\n }\n .bg-indigo-900\\/50 {\n background-color: color-mix(in srgb, oklch(35.9% 0.144 278.697) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-900) 50%, transparent);\n }\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-rose-100 {\n background-color: var(--color-rose-100);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-slate-200 {\n background-color: var(--color-slate-200);\n }\n .bg-slate-300 {\n background-color: var(--color-slate-300);\n }\n .bg-slate-700 {\n background-color: var(--color-slate-700);\n }\n .bg-slate-800 {\n background-color: var(--color-slate-800);\n }\n .bg-slate-900 {\n background-color: var(--color-slate-900);\n }\n .bg-theme-bg {\n background-color: var(--color-theme-bg);\n }\n .bg-theme-bg\\/50 {\n background-color: var(--color-theme-bg);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-bg) 50%, transparent);\n }\n }\n .bg-theme-border {\n background-color: var(--color-theme-border);\n }\n .bg-theme-editor-bg {\n background-color: var(--color-theme-editor-bg);\n }\n .bg-theme-panel {\n background-color: var(--color-theme-panel);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-white\\/10 {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .bg-white\\/50 {\n background-color: color-mix(in srgb, #fff 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n .bg-white\\/70 {\n background-color: color-mix(in srgb, #fff 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 70%, transparent);\n }\n }\n .bg-white\\/80 {\n background-color: color-mix(in srgb, #fff 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 80%, transparent);\n }\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-500\\/20 {\n --tw-gradient-from: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-orange-200 {\n --tw-gradient-from: var(--color-orange-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-red-200 {\n --tw-gradient-from: var(--color-red-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-slate-300 {\n --tw-gradient-from: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-indigo-200 {\n --tw-gradient-via: var(--color-indigo-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-200 {\n --tw-gradient-via: var(--color-purple-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-yellow-100 {\n --tw-gradient-via: var(--color-yellow-100);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-200 {\n --tw-gradient-to: var(--color-blue-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-green-200 {\n --tw-gradient-to: var(--color-green-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500 {\n --tw-gradient-to: var(--color-indigo-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500\\/20 {\n --tw-gradient-to: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-600 {\n --tw-gradient-to: var(--color-indigo-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-slate-300 {\n --tw-gradient-to: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-clip-text {\n background-clip: text;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * 0.5);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .py-16 {\n padding-block: calc(var(--spacing) * 16);\n }\n .py-20 {\n padding-block: calc(var(--spacing) * 20);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-12 {\n padding-top: calc(var(--spacing) * 12);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pt-32 {\n padding-top: calc(var(--spacing) * 32);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pb-32 {\n padding-bottom: calc(var(--spacing) * 32);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-12 {\n padding-left: calc(var(--spacing) * 12);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .font-serif {\n font-family: var(--font-serif);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-6xl {\n font-size: var(--text-6xl);\n line-height: var(--tw-leading, var(--text-6xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .leading-\\[1\\.1\\] {\n --tw-leading: 1.1;\n line-height: 1.1;\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#735e44\\] {\n color: #735e44;\n }\n .text-\\[\\#332616\\] {\n color: #332616;\n }\n .text-\\[\\#433422\\] {\n color: #433422;\n }\n .text-amber-500 {\n color: var(--color-amber-500);\n }\n .text-amber-600 {\n color: var(--color-amber-600);\n }\n .text-amber-800 {\n color: var(--color-amber-800);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-blue-900 {\n color: var(--color-blue-900);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n .text-indigo-800 {\n color: var(--color-indigo-800);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .text-orange-600 {\n color: var(--color-orange-600);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-rose-800 {\n color: var(--color-rose-800);\n }\n .text-slate-300 {\n color: var(--color-slate-300);\n }\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-900 {\n color: var(--color-slate-900);\n }\n .text-theme-editor-text {\n color: var(--color-theme-editor-text);\n }\n .text-theme-muted {\n color: var(--color-theme-muted);\n }\n .text-theme-text {\n color: var(--color-theme-text);\n }\n .text-transparent {\n color: transparent;\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-500 {\n color: var(--color-yellow-500);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-blue-500 {\n text-decoration-color: var(--color-blue-500);\n }\n .decoration-indigo-300 {\n text-decoration-color: var(--color-indigo-300);\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .accent-blue-600 {\n accent-color: var(--color-blue-600);\n }\n .accent-indigo-600 {\n accent-color: var(--color-indigo-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(59,130,246,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(99\\,102\\,241\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(99,102,241,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0px_2px_0px_0px_rgba\\(203\\,213\\,225\\,1\\)\\] {\n --tw-shadow: 0px 2px 0px 0px var(--tw-shadow-color, rgba(203,213,225,1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-blue-200 {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-indigo-100 {\n --tw-shadow-color: oklch(93% 0.034 272.788);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-shadow-alpha), transparent);\n }\n }\n .ring-amber-200 {\n --tw-ring-color: var(--color-amber-200);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-indigo-200 {\n --tw-ring-color: var(--color-indigo-200);\n }\n .ring-indigo-400 {\n --tw-ring-color: var(--color-indigo-400);\n }\n .ring-indigo-500 {\n --tw-ring-color: var(--color-indigo-500);\n }\n .ring-offset-1 {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n .blur-3xl {\n --tw-blur: blur(var(--blur-3xl));\n 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,);\n }\n .blur-\\[1px\\] {\n --tw-blur: blur(1px);\n 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,);\n }\n .blur-\\[60px\\] {\n --tw-blur: blur(60px);\n 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,);\n }\n .blur-\\[100px\\] {\n --tw-blur: blur(100px);\n 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,);\n }\n .blur-\\[120px\\] {\n --tw-blur: blur(120px);\n 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,);\n }\n .blur-\\[150px\\] {\n --tw-blur: blur(150px);\n 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,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n 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,);\n }\n .sepia {\n --tw-sepia: sepia(100%);\n 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,);\n }\n .filter {\n 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,);\n }\n .backdrop-blur-md {\n --tw-backdrop-blur: blur(var(--blur-md));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .group-hover\\:translate-x-1 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .group-hover\\:bg-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-white {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .selection\\:bg-blue-200 {\n & *::selection {\n background-color: var(--color-blue-200);\n }\n &::selection {\n background-color: var(--color-blue-200);\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-110 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-\\[1\\.02\\] {\n &:hover {\n @media (hover: hover) {\n scale: 1.02;\n }\n }\n }\n .hover\\:border-\\[\\#cfbd9e\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #cfbd9e;\n }\n }\n }\n .hover\\:border-blue-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-300);\n }\n }\n }\n .hover\\:border-indigo-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:border-indigo-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-400);\n }\n }\n }\n .hover\\:border-indigo-500 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-500);\n }\n }\n }\n .hover\\:border-slate-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:border-slate-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-300);\n }\n }\n }\n .hover\\:border-slate-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-600);\n }\n }\n }\n .hover\\:bg-\\[\\#eaddc4\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #eaddc4;\n }\n }\n }\n .hover\\:bg-amber-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-50);\n }\n }\n }\n .hover\\:bg-amber-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-100);\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-50);\n }\n }\n }\n .hover\\:bg-blue-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-500);\n }\n }\n }\n .hover\\:bg-blue-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-600 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-blue-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-800);\n }\n }\n }\n .hover\\:bg-indigo-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-50);\n }\n }\n }\n .hover\\:bg-indigo-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-100);\n }\n }\n }\n .hover\\:bg-indigo-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:bg-indigo-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-indigo-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-red-900\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-900) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-slate-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-50);\n }\n }\n }\n .hover\\:bg-slate-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-100);\n }\n }\n }\n .hover\\:bg-slate-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:bg-slate-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n .hover\\:bg-slate-900 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-900);\n }\n }\n }\n .hover\\:bg-theme-border {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-border);\n }\n }\n }\n .hover\\:bg-theme-panel {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n }\n }\n }\n .hover\\:bg-theme-panel\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-panel) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-white {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n .hover\\:bg-white\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n }\n }\n }\n .hover\\:text-\\[\\#332616\\] {\n &:hover {\n @media (hover: hover) {\n color: #332616;\n }\n }\n }\n .hover\\:text-blue-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-400);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-indigo-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:text-indigo-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:text-indigo-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-800);\n }\n }\n }\n .hover\\:text-red-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-400);\n }\n }\n }\n .hover\\:text-red-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-500);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-slate-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-500);\n }\n }\n }\n .hover\\:text-slate-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-800);\n }\n }\n }\n .hover\\:text-slate-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-900);\n }\n }\n }\n .hover\\:text-theme-text {\n &:hover {\n @media (hover: hover) {\n color: var(--color-theme-text);\n }\n }\n }\n .hover\\:text-white {\n &:hover {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:decoration-indigo-600 {\n &:hover {\n @media (hover: hover) {\n text-decoration-color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:opacity-80 {\n &:hover {\n @media (hover: hover) {\n opacity: 80%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-2xl {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-blue-200 {\n &:hover {\n @media (hover: hover) {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n }\n }\n .focus\\:border-b {\n &:focus {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .focus\\:border-blue-500 {\n &:focus {\n border-color: var(--color-blue-500);\n }\n }\n .focus\\:border-indigo-400 {\n &:focus {\n border-color: var(--color-indigo-400);\n }\n }\n .focus\\:border-indigo-500 {\n &:focus {\n border-color: var(--color-indigo-500);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-4 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-blue-300 {\n &:focus {\n --tw-ring-color: var(--color-blue-300);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-indigo-500 {\n &:focus {\n --tw-ring-color: var(--color-indigo-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:cursor-grabbing {\n &:active {\n cursor: grabbing;\n }\n }\n .disabled\\:opacity-30 {\n &:disabled {\n opacity: 30%;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:inline {\n @media (width >= 40rem) {\n display: inline;\n }\n }\n .sm\\:h-\\[400px\\] {\n @media (width >= 40rem) {\n height: 400px;\n }\n }\n .sm\\:w-auto {\n @media (width >= 40rem) {\n width: auto;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:p-12 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .sm\\:px-5 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .sm\\:py-2\\.5 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:h-\\[500px\\] {\n @media (width >= 48rem) {\n height: 500px;\n }\n }\n .md\\:w-1\\/3 {\n @media (width >= 48rem) {\n width: calc(1 / 3 * 100%);\n }\n }\n .md\\:w-64 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 64);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-4 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-6 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 6);\n }\n }\n .md\\:gap-12 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 12);\n }\n }\n .md\\:p-6 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .md\\:p-8 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 8);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-5 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-2\\.5 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .md\\:py-24 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 24);\n }\n }\n .md\\:text-4xl {\n @media (width >= 48rem) {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n }\n .md\\:text-5xl {\n @media (width >= 48rem) {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n }\n .md\\:text-7xl {\n @media (width >= 48rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:text-xl {\n @media (width >= 48rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .lg\\:relative {\n @media (width >= 64rem) {\n position: relative;\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-1\\/2 {\n @media (width >= 64rem) {\n width: calc(1 / 2 * 100%);\n }\n }\n .lg\\:w-96 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 96);\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:shadow-none {\n @media (width >= 64rem) {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .dark\\:border-slate-700 {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-slate-700);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-slate-800);\n }\n }\n .dark\\:text-blue-400 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-slate-300 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-slate-300);\n }\n }\n .dark\\:hover\\:bg-slate-700 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-700);\n }\n }\n }\n }\n .dark\\:hover\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n }\n}\n:root,\r\n.theme-light {\n --theme-bg: #eef2ff;\n --theme-panel: #ffffff;\n --theme-text: #0f172a;\n --theme-muted: #64748b;\n --theme-border: #e2e8f0;\n --theme-editor-bg: #ffffff;\n --theme-editor-text: #0f172a;\n}\n.theme-dark {\n --theme-bg: #0f172a;\n --theme-panel: #1e293b;\n --theme-text: #f8fafc;\n --theme-muted: #94a3b8;\n --theme-border: #334155;\n --theme-editor-bg: #1e293b;\n --theme-editor-text: #e2e8f0;\n}\n.theme-sepia {\n --theme-bg: #eaddc4;\n --theme-panel: #fbf8f1;\n --theme-text: #332616;\n --theme-muted: #735e44;\n --theme-border: #dfcdae;\n --theme-editor-bg: #fbf8f1;\n --theme-editor-text: #332616;\n}\n.editor-content:empty:before {\n content: attr(placeholder);\n color: #9ca3af;\n pointer-events: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n@media print {\n @page {\n margin: 2cm;\n size: auto;\n }\n html,\r\n body {\n height: auto !important;\n overflow: visible !important;\n margin: 0 !important;\n padding: 0 !important;\n background: white !important;\n color: black !important;\n }\n #__next {\n height: auto !important;\n overflow: visible !important;\n display: block !important;\n position: relative !important;\n }\n .no-print {\n display: none !important;\n }\n .print-only {\n display: block !important;\n }\n .break-before-page {\n page-break-before: always;\n break-before: page;\n }\n .break-after-page {\n page-break-after: always;\n break-after: page;\n }\n p {\n text-align: justify;\n widows: 3;\n orphans: 3;\n color: black !important;\n }\n h1,\r\n h2,\r\n h3,\r\n h4 {\n color: black !important;\n page-break-after: avoid;\n }\n a {\n text-decoration: none;\n color: black !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}"],"names":[],"mappings":"AACA;EAm0GE;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAn0GJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAiJE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;;AAhSF;;AAAA;EAqSE;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;;EASA;;;;EAKA;;;;EAIF;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;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"}}] + {"offset": {"line": 302, "column": 0}, "map": {"version":3,"sources":["file:///C:/Users/streaper2/Documents/00%20-%20projet/plumeia/src/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: 'Inter', sans-serif;\n --font-serif: 'Merriweather', serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-emerald-600: oklch(59.6% 0.145 163.225);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-relaxed: 1.625;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-3xl: 64px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-theme-bg: var(--theme-bg);\n --color-theme-panel: var(--theme-panel);\n --color-theme-text: var(--theme-text);\n --color-theme-muted: var(--theme-muted);\n --color-theme-border: var(--theme-border);\n --color-theme-editor-bg: var(--theme-editor-bg);\n --color-theme-editor-text: var(--theme-editor-text);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .-inset-4 {\n inset: calc(var(--spacing) * -4);\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .start {\n inset-inline-start: var(--spacing);\n }\n .end {\n inset-inline-end: var(--spacing);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .top-10 {\n top: calc(var(--spacing) * 10);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-3 {\n right: calc(var(--spacing) * -3);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-10 {\n right: calc(var(--spacing) * 10);\n }\n .right-\\[-10px\\] {\n right: -10px;\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-6 {\n bottom: calc(var(--spacing) * 6);\n }\n .bottom-10 {\n bottom: calc(var(--spacing) * 10);\n }\n .bottom-full {\n bottom: 100%;\n }\n .-left-2 {\n left: calc(var(--spacing) * -2);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-10 {\n left: calc(var(--spacing) * 10);\n }\n .left-\\[calc\\(50\\%\\+420px\\)\\] {\n left: calc(50% + 420px);\n }\n .-z-1 {\n z-index: calc(1 * -1);\n }\n .-z-10 {\n z-index: calc(10 * -1);\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-3 {\n grid-column: span 3 / span 3;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-8 {\n margin: calc(var(--spacing) * -8);\n }\n .m-1 {\n margin: calc(var(--spacing) * 1);\n }\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .-mt-20 {\n margin-top: calc(var(--spacing) * -20);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-12 {\n margin-top: calc(var(--spacing) * 12);\n }\n .mt-20 {\n margin-top: calc(var(--spacing) * 20);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n .mr-6 {\n margin-right: calc(var(--spacing) * 6);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-12 {\n margin-bottom: calc(var(--spacing) * 12);\n }\n .mb-16 {\n margin-bottom: calc(var(--spacing) * 16);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-24 {\n height: calc(var(--spacing) * 24);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-96 {\n height: calc(var(--spacing) * 96);\n }\n .h-\\[4000px\\] {\n height: 4000px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n .max-h-64 {\n max-height: calc(var(--spacing) * 64);\n }\n .max-h-\\[90\\%\\] {\n max-height: 90%;\n }\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[120px\\] {\n min-height: 120px;\n }\n .min-h-\\[1000px\\] {\n min-height: 1000px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n .w-1\\/2 {\n width: calc(1 / 2 * 100%);\n }\n .w-1\\/3 {\n width: calc(1 / 3 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-80 {\n width: calc(var(--spacing) * 80);\n }\n .w-96 {\n width: calc(var(--spacing) * 96);\n }\n .w-\\[600px\\] {\n width: 600px;\n }\n .w-\\[800px\\] {\n width: 800px;\n }\n .w-\\[4000px\\] {\n width: 4000px;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[85\\%\\] {\n max-width: 85%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-1 {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-105 {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-\\[1\\.01\\] {\n scale: 1.01;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .resize-none {\n resize: none;\n }\n .list-disc {\n list-style-type: disc;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-slate-50 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-50);\n }\n }\n .divide-slate-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-slate-100);\n }\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2\\.5rem\\] {\n border-radius: 2.5rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[2rem\\] {\n border-radius: 2rem;\n }\n .rounded-\\[3rem\\] {\n border-radius: 3rem;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n .rounded-br-none {\n border-bottom-right-radius: 0;\n }\n .rounded-bl-none {\n border-bottom-left-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-2 {\n border-right-style: var(--tw-border-style);\n border-right-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\[\\#dfcdae\\] {\n border-color: #dfcdae;\n }\n .border-\\[\\#eaddc4\\] {\n border-color: #eaddc4;\n }\n .border-\\[\\#f4ecd8\\] {\n border-color: #f4ecd8;\n }\n .border-amber-100 {\n border-color: var(--color-amber-100);\n }\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n .border-blue-100 {\n border-color: var(--color-blue-100);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-400 {\n border-color: var(--color-blue-400);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-100 {\n border-color: var(--color-green-100);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-indigo-50 {\n border-color: var(--color-indigo-50);\n }\n .border-indigo-100 {\n border-color: var(--color-indigo-100);\n }\n .border-indigo-200 {\n border-color: var(--color-indigo-200);\n }\n .border-indigo-300 {\n border-color: var(--color-indigo-300);\n }\n .border-indigo-400 {\n border-color: var(--color-indigo-400);\n }\n .border-indigo-600 {\n border-color: var(--color-indigo-600);\n }\n .border-red-100 {\n border-color: var(--color-red-100);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-rose-200 {\n border-color: var(--color-rose-200);\n }\n .border-slate-50 {\n border-color: var(--color-slate-50);\n }\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-700 {\n border-color: var(--color-slate-700);\n }\n .border-slate-800 {\n border-color: var(--color-slate-800);\n }\n .border-theme-border {\n border-color: var(--color-theme-border);\n }\n .border-theme-panel {\n border-color: var(--color-theme-panel);\n }\n .border-theme-text {\n border-color: var(--color-theme-text);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-100 {\n border-color: var(--color-yellow-100);\n }\n .bg-\\[\\#5c4731\\] {\n background-color: #5c4731;\n }\n .bg-\\[\\#eaddc4\\] {\n background-color: #eaddc4;\n }\n .bg-\\[\\#eef2ff\\] {\n background-color: #eef2ff;\n }\n .bg-\\[\\#f4ecd8\\] {\n background-color: #f4ecd8;\n }\n .bg-\\[\\#fbf8f1\\] {\n background-color: #fbf8f1;\n }\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n .bg-amber-400 {\n background-color: var(--color-amber-400);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-blue-500\\/10 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n .bg-blue-500\\/20 {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n .bg-blue-900 {\n background-color: var(--color-blue-900);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-500\\/10 {\n background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);\n }\n }\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n .bg-indigo-50\\/30 {\n background-color: color-mix(in srgb, oklch(96.2% 0.018 272.314) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-50) 30%, transparent);\n }\n }\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n .bg-indigo-500\\/10 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n .bg-indigo-500\\/20 {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n }\n .bg-indigo-600 {\n background-color: var(--color-indigo-600);\n }\n .bg-indigo-900 {\n background-color: var(--color-indigo-900);\n }\n .bg-indigo-900\\/50 {\n background-color: color-mix(in srgb, oklch(35.9% 0.144 278.697) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-900) 50%, transparent);\n }\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-rose-100 {\n background-color: var(--color-rose-100);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-slate-200 {\n background-color: var(--color-slate-200);\n }\n .bg-slate-300 {\n background-color: var(--color-slate-300);\n }\n .bg-slate-700 {\n background-color: var(--color-slate-700);\n }\n .bg-slate-800 {\n background-color: var(--color-slate-800);\n }\n .bg-slate-900 {\n background-color: var(--color-slate-900);\n }\n .bg-theme-bg {\n background-color: var(--color-theme-bg);\n }\n .bg-theme-bg\\/50 {\n background-color: var(--color-theme-bg);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-bg) 50%, transparent);\n }\n }\n .bg-theme-border {\n background-color: var(--color-theme-border);\n }\n .bg-theme-editor-bg {\n background-color: var(--color-theme-editor-bg);\n }\n .bg-theme-panel {\n background-color: var(--color-theme-panel);\n }\n .bg-theme-text {\n background-color: var(--color-theme-text);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-white\\/10 {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .bg-white\\/50 {\n background-color: color-mix(in srgb, #fff 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n .bg-white\\/70 {\n background-color: color-mix(in srgb, #fff 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 70%, transparent);\n }\n }\n .bg-white\\/80 {\n background-color: color-mix(in srgb, #fff 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 80%, transparent);\n }\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-tr {\n --tw-gradient-position: to top right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-500\\/20 {\n --tw-gradient-from: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--color-blue-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-orange-200 {\n --tw-gradient-from: var(--color-orange-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-red-200 {\n --tw-gradient-from: var(--color-red-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-slate-300 {\n --tw-gradient-from: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-indigo-200 {\n --tw-gradient-via: var(--color-indigo-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-200 {\n --tw-gradient-via: var(--color-purple-200);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-yellow-100 {\n --tw-gradient-via: var(--color-yellow-100);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-200 {\n --tw-gradient-to: var(--color-blue-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-green-200 {\n --tw-gradient-to: var(--color-green-200);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500 {\n --tw-gradient-to: var(--color-indigo-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-500\\/20 {\n --tw-gradient-to: color-mix(in srgb, oklch(58.5% 0.233 277.117) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--color-indigo-500) 20%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-indigo-600 {\n --tw-gradient-to: var(--color-indigo-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-slate-300 {\n --tw-gradient-to: var(--color-slate-300);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-clip-text {\n background-clip: text;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * 0.5);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .py-16 {\n padding-block: calc(var(--spacing) * 16);\n }\n .py-20 {\n padding-block: calc(var(--spacing) * 20);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-12 {\n padding-top: calc(var(--spacing) * 12);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pt-32 {\n padding-top: calc(var(--spacing) * 32);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pb-32 {\n padding-bottom: calc(var(--spacing) * 32);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-12 {\n padding-left: calc(var(--spacing) * 12);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .font-serif {\n font-family: var(--font-serif);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-6xl {\n font-size: var(--text-6xl);\n line-height: var(--tw-leading, var(--text-6xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .leading-\\[1\\.1\\] {\n --tw-leading: 1.1;\n line-height: 1.1;\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#735e44\\] {\n color: #735e44;\n }\n .text-\\[\\#332616\\] {\n color: #332616;\n }\n .text-\\[\\#433422\\] {\n color: #433422;\n }\n .text-amber-500 {\n color: var(--color-amber-500);\n }\n .text-amber-600 {\n color: var(--color-amber-600);\n }\n .text-amber-800 {\n color: var(--color-amber-800);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-blue-900 {\n color: var(--color-blue-900);\n }\n .text-emerald-600 {\n color: var(--color-emerald-600);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n .text-indigo-800 {\n color: var(--color-indigo-800);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .text-orange-600 {\n color: var(--color-orange-600);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-rose-800 {\n color: var(--color-rose-800);\n }\n .text-slate-300 {\n color: var(--color-slate-300);\n }\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-900 {\n color: var(--color-slate-900);\n }\n .text-theme-bg {\n color: var(--color-theme-bg);\n }\n .text-theme-editor-text {\n color: var(--color-theme-editor-text);\n }\n .text-theme-muted {\n color: var(--color-theme-muted);\n }\n .text-theme-text {\n color: var(--color-theme-text);\n }\n .text-transparent {\n color: transparent;\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-500 {\n color: var(--color-yellow-500);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-blue-500 {\n text-decoration-color: var(--color-blue-500);\n }\n .decoration-indigo-300 {\n text-decoration-color: var(--color-indigo-300);\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .accent-blue-600 {\n accent-color: var(--color-blue-600);\n }\n .accent-indigo-600 {\n accent-color: var(--color-indigo-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-80 {\n opacity: 80%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(59,130,246,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_10px_rgba\\(99\\,102\\,241\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 10px var(--tw-shadow-color, rgba(99,102,241,0.5));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0px_2px_0px_0px_rgba\\(203\\,213\\,225\\,1\\)\\] {\n --tw-shadow: 0px 2px 0px 0px var(--tw-shadow-color, rgba(203,213,225,1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[\\#dfcdae\\] {\n --tw-shadow-color: #dfcdae;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, #dfcdae var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-blue-200 {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-indigo-100 {\n --tw-shadow-color: oklch(93% 0.034 272.788);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-slate-200 {\n --tw-shadow-color: oklch(92.9% 0.013 255.508);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-slate-900 {\n --tw-shadow-color: oklch(20.8% 0.042 265.755);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-shadow-alpha), transparent);\n }\n }\n .shadow-theme-border {\n --tw-shadow-color: var(--color-theme-border);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-theme-border) var(--tw-shadow-alpha), transparent);\n }\n }\n .ring-amber-200 {\n --tw-ring-color: var(--color-amber-200);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-indigo-200 {\n --tw-ring-color: var(--color-indigo-200);\n }\n .ring-indigo-400 {\n --tw-ring-color: var(--color-indigo-400);\n }\n .ring-indigo-500 {\n --tw-ring-color: var(--color-indigo-500);\n }\n .ring-offset-1 {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n .blur-3xl {\n --tw-blur: blur(var(--blur-3xl));\n 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,);\n }\n .blur-\\[1px\\] {\n --tw-blur: blur(1px);\n 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,);\n }\n .blur-\\[60px\\] {\n --tw-blur: blur(60px);\n 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,);\n }\n .blur-\\[100px\\] {\n --tw-blur: blur(100px);\n 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,);\n }\n .blur-\\[120px\\] {\n --tw-blur: blur(120px);\n 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,);\n }\n .blur-\\[150px\\] {\n --tw-blur: blur(150px);\n 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,);\n }\n .grayscale {\n --tw-grayscale: grayscale(100%);\n 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,);\n }\n .sepia {\n --tw-sepia: sepia(100%);\n 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,);\n }\n .filter {\n 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,);\n }\n .backdrop-blur-md {\n --tw-backdrop-blur: blur(var(--blur-md));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .group-hover\\:translate-x-1 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .group-hover\\:bg-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\:text-white {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .selection\\:bg-blue-200 {\n & *::selection {\n background-color: var(--color-blue-200);\n }\n &::selection {\n background-color: var(--color-blue-200);\n }\n }\n .hover\\:-translate-y-1 {\n &:hover {\n @media (hover: hover) {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-110 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:scale-\\[1\\.02\\] {\n &:hover {\n @media (hover: hover) {\n scale: 1.02;\n }\n }\n }\n .hover\\:border-\\[\\#cfbd9e\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #cfbd9e;\n }\n }\n }\n .hover\\:border-blue-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-300);\n }\n }\n }\n .hover\\:border-indigo-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:border-indigo-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-400);\n }\n }\n }\n .hover\\:border-indigo-500 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-indigo-500);\n }\n }\n }\n .hover\\:border-red-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-red-200);\n }\n }\n }\n .hover\\:border-slate-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:border-slate-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-300);\n }\n }\n }\n .hover\\:border-slate-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-600);\n }\n }\n }\n .hover\\:border-theme-text {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-theme-text);\n }\n }\n }\n .hover\\:bg-\\[\\#433422\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #433422;\n }\n }\n }\n .hover\\:bg-\\[\\#eaddc4\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #eaddc4;\n }\n }\n }\n .hover\\:bg-amber-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-50);\n }\n }\n }\n .hover\\:bg-amber-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-amber-100);\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-50);\n }\n }\n }\n .hover\\:bg-blue-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-600 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-blue-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-800);\n }\n }\n }\n .hover\\:bg-indigo-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-50);\n }\n }\n }\n .hover\\:bg-indigo-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-100);\n }\n }\n }\n .hover\\:bg-indigo-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-200);\n }\n }\n }\n .hover\\:bg-indigo-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(58.5% 0.233 277.117) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-indigo-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-indigo-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-500\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-red-900\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-900) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-slate-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-50);\n }\n }\n }\n .hover\\:bg-slate-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-100);\n }\n }\n }\n .hover\\:bg-slate-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-200);\n }\n }\n }\n .hover\\:bg-slate-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n .hover\\:bg-slate-900 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-900);\n }\n }\n }\n .hover\\:bg-theme-border {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-border);\n }\n }\n }\n .hover\\:bg-theme-panel {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n }\n }\n }\n .hover\\:bg-theme-panel\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-theme-panel);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-theme-panel) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-white {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n .hover\\:bg-white\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n }\n }\n }\n .hover\\:text-\\[\\#332616\\] {\n &:hover {\n @media (hover: hover) {\n color: #332616;\n }\n }\n }\n .hover\\:text-blue-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-400);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-indigo-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:text-indigo-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-700);\n }\n }\n }\n .hover\\:text-indigo-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-indigo-800);\n }\n }\n }\n .hover\\:text-red-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-400);\n }\n }\n }\n .hover\\:text-red-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-500);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-slate-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-500);\n }\n }\n }\n .hover\\:text-slate-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-800);\n }\n }\n }\n .hover\\:text-slate-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-slate-900);\n }\n }\n }\n .hover\\:text-theme-text {\n &:hover {\n @media (hover: hover) {\n color: var(--color-theme-text);\n }\n }\n }\n .hover\\:text-white {\n &:hover {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:decoration-indigo-600 {\n &:hover {\n @media (hover: hover) {\n text-decoration-color: var(--color-indigo-600);\n }\n }\n }\n .hover\\:opacity-80 {\n &:hover {\n @media (hover: hover) {\n opacity: 80%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-2xl {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-blue-200 {\n &:hover {\n @media (hover: hover) {\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\n }\n }\n }\n }\n .focus\\:border-b {\n &:focus {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .focus\\:border-blue-500 {\n &:focus {\n border-color: var(--color-blue-500);\n }\n }\n .focus\\:border-indigo-400 {\n &:focus {\n border-color: var(--color-indigo-400);\n }\n }\n .focus\\:border-indigo-500 {\n &:focus {\n border-color: var(--color-indigo-500);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-4 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-blue-300 {\n &:focus {\n --tw-ring-color: var(--color-blue-300);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-indigo-500 {\n &:focus {\n --tw-ring-color: var(--color-indigo-500);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:cursor-grabbing {\n &:active {\n cursor: grabbing;\n }\n }\n .disabled\\:opacity-30 {\n &:disabled {\n opacity: 30%;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:inline {\n @media (width >= 40rem) {\n display: inline;\n }\n }\n .sm\\:h-\\[400px\\] {\n @media (width >= 40rem) {\n height: 400px;\n }\n }\n .sm\\:w-auto {\n @media (width >= 40rem) {\n width: auto;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:p-12 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .sm\\:px-5 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .sm\\:py-2\\.5 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:h-\\[500px\\] {\n @media (width >= 48rem) {\n height: 500px;\n }\n }\n .md\\:w-1\\/3 {\n @media (width >= 48rem) {\n width: calc(1 / 3 * 100%);\n }\n }\n .md\\:w-64 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 64);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-4 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-6 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 6);\n }\n }\n .md\\:gap-12 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 12);\n }\n }\n .md\\:p-6 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .md\\:p-8 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 8);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-5 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 5);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-2\\.5 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 2.5);\n }\n }\n .md\\:py-24 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 24);\n }\n }\n .md\\:text-4xl {\n @media (width >= 48rem) {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n }\n .md\\:text-5xl {\n @media (width >= 48rem) {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n }\n .md\\:text-7xl {\n @media (width >= 48rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:text-xl {\n @media (width >= 48rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .lg\\:relative {\n @media (width >= 64rem) {\n position: relative;\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-1\\/2 {\n @media (width >= 64rem) {\n width: calc(1 / 2 * 100%);\n }\n }\n .lg\\:w-96 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 96);\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:shadow-none {\n @media (width >= 64rem) {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .dark\\:border-slate-700 {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-slate-700);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-slate-800);\n }\n }\n .dark\\:text-blue-400 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-slate-300 {\n @media (prefers-color-scheme: dark) {\n color: var(--color-slate-300);\n }\n }\n .dark\\:hover\\:bg-slate-700 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-700);\n }\n }\n }\n }\n .dark\\:hover\\:bg-slate-800 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-800);\n }\n }\n }\n }\n}\n:root,\r\n.theme-light {\n --theme-bg: #eef2ff;\n --theme-panel: #ffffff;\n --theme-text: #0f172a;\n --theme-muted: #64748b;\n --theme-border: #e2e8f0;\n --theme-editor-bg: #ffffff;\n --theme-editor-text: #0f172a;\n}\n.theme-dark {\n --theme-bg: #0f172a;\n --theme-panel: #1e293b;\n --theme-text: #f8fafc;\n --theme-muted: #94a3b8;\n --theme-border: #334155;\n --theme-editor-bg: #1e293b;\n --theme-editor-text: #e2e8f0;\n}\n.theme-sepia {\n --theme-bg: #eaddc4;\n --theme-panel: #fbf8f1;\n --theme-text: #332616;\n --theme-muted: #735e44;\n --theme-border: #dfcdae;\n --theme-editor-bg: #fbf8f1;\n --theme-editor-text: #332616;\n}\n.editor-content:empty:before {\n content: attr(placeholder);\n color: #9ca3af;\n pointer-events: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n@media print {\n @page {\n margin: 2cm;\n size: auto;\n }\n html,\r\n body {\n height: auto !important;\n overflow: visible !important;\n margin: 0 !important;\n padding: 0 !important;\n background: white !important;\n color: black !important;\n }\n #__next {\n height: auto !important;\n overflow: visible !important;\n display: block !important;\n position: relative !important;\n }\n .no-print {\n display: none !important;\n }\n .print-only {\n display: block !important;\n }\n .break-before-page {\n page-break-before: always;\n break-before: page;\n }\n .break-after-page {\n page-break-after: always;\n break-after: page;\n }\n p {\n text-align: justify;\n widows: 3;\n orphans: 3;\n color: black !important;\n }\n h1,\r\n h2,\r\n h3,\r\n h4 {\n color: black !important;\n page-break-after: avoid;\n }\n a {\n text-decoration: none;\n color: black !important;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}"],"names":[],"mappings":"AACA;EA05GE;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA15GJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAoJE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;;AAnSF;;AAAA;EAwSE;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;;EASA;;;;EAKA;;;;EAIF;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAGA;;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAAA;IAAA;;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAMI;IAAuB;;;;;;EAQvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAMzB;;;;EASE;IAAuB;;;;;;EAQvB;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAOpD;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAqC;;;;;EAKrC;IAAqC;;;;IAEnC;MAAgD;;;;;;EAMlD;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAAqC;;;;;EAKrC;IAEI;MAAuB;;;;;;EAO3B;IAEI;MAAuB;;;;;;;AAO/B;;;;;;;;;;AAUA;;;;;;;;;;AASA;;;;;;;;;;AASA;;;;;;AAKA;;;;;AAIA;;;;AAGA;;;;;AAIA;;;;AAGA;EACE;;;;;EAIA;;;;;;;;;EASA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;EAMA;;;;;EAOA;;;;;;AAKF;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA"}}] } \ No newline at end of file diff --git a/src/app/project/[id]/page.tsx b/src/app/project/[id]/page.tsx index 25edc97..75bbc5b 100644 --- a/src/app/project/[id]/page.tsx +++ b/src/app/project/[id]/page.tsx @@ -16,6 +16,7 @@ export default function WritePage() { return ( updateChapter(currentChapterId, { content: html })} onAiTransform={async (text, mode) => { diff --git a/src/components/RichTextEditor.tsx b/src/components/RichTextEditor.tsx index c6c8d87..a2118df 100644 --- a/src/components/RichTextEditor.tsx +++ b/src/components/RichTextEditor.tsx @@ -3,7 +3,7 @@ import React, { useRef, useEffect, useState, useImperativeHandle, forwardRef, useMemo } from 'react'; import { Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight, List, Heading1, Heading2, - Copy, Wand2, Check, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw, + Copy, Wand2, Check, CheckCheck, RefreshCw, Maximize2, Loader2, MousePointerClick, History, RotateCcw, ChevronDown, ChevronUp, Layers } from 'lucide-react'; @@ -12,6 +12,7 @@ export interface RichTextEditorHandle { } interface RichTextEditorProps { + editorId?: string; // Used to uniquely identify the draft in localStorage initialContent: string; onChange?: (html: string) => void; onSave?: (html: string) => void; @@ -34,13 +35,13 @@ interface VersionGroup { versions: Version[]; } -const RichTextEditor = forwardRef(({ initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => { +const RichTextEditor = forwardRef(({ editorId, initialContent, onChange, onSave, onSelectionChange, onAiTransform }, ref) => { const contentRef = useRef(null); const scrollContainerRef = useRef(null); const [isFocused, setIsFocused] = useState(false); // Auto-Save State - const [saveStatus, setSaveStatus] = useState<'saved' | 'saving' | 'unsaved'>('saved'); + const [saveStatus, setSaveStatus] = useState<'saved_local' | 'saved_db' | 'saving' | 'unsaved'>('saved_db'); const saveTimeoutRef = useRef(null); // Track sync state to avoid autosave loopbacks wiping current edits @@ -168,8 +169,21 @@ const RichTextEditor = forwardRef(({ useEffect(() => { if (!contentRef.current || initialContent === undefined) return; + let contentToLoad = initialContent; + let hasLocalDraft = false; + + // Check localStorage for a newer draft + if (editorId) { + const localDraft = localStorage.getItem(`draft_${editorId}`); + if (localDraft && localDraft !== initialContent) { + contentToLoad = localDraft; + hasLocalDraft = true; + setSaveStatus('saved_local'); + } + } + // 1. Si le contenu entrant est identique à ce qu'on a déjà, on ne touche à rien - if (initialContent === contentRef.current.innerHTML) return; + if (contentToLoad === contentRef.current.innerHTML) return; // 2. LOGIQUE CRUCIALE : On ne met à jour le DOM que si : // - L'éditeur est vide (premier chargement) @@ -177,12 +191,12 @@ const RichTextEditor = forwardRef(({ // - OU si l'utilisateur n'est PAS en train de focus l'éditeur const isUserEditing = document.activeElement === contentRef.current; - if (!isUserEditing || (contentRef.current.innerHTML === "" && initialContent !== "")) { - contentRef.current.innerHTML = initialContent; - syncRef.current = initialContent; - latestContentRef.current = initialContent; + if (!isUserEditing || (contentRef.current.innerHTML === "" && contentToLoad !== "")) { + contentRef.current.innerHTML = contentToLoad; + syncRef.current = contentToLoad; + latestContentRef.current = contentToLoad; } - }, [initialContent]); + }, [initialContent, editorId]); // Flush pending save on unmount useEffect(() => { @@ -213,9 +227,16 @@ const RichTextEditor = forwardRef(({ if (onChange) onChange(currentHtml); - // Auto-Save Debounce - if (onSave) { + // 1. Save locally immediately + if (editorId) { + localStorage.setItem(`draft_${editorId}`, currentHtml); + setSaveStatus('saved_local'); + } else { setSaveStatus('unsaved'); + } + + // 2. Auto-Save Debounce for DB + if (onSave) { if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current); saveTimeoutRef.current = setTimeout(async () => { @@ -227,10 +248,15 @@ const RichTextEditor = forwardRef(({ syncRef.current = htmlToSave; try { await onSave(htmlToSave); + setSaveStatus('saved_db'); + if (editorId) { + // Once saved to DB, we can consider the local draft synced if we want, + // or just keep it there. It will be overwritten on next load. + } } catch (err) { console.error('Auto-save failed:', err); + setSaveStatus('saved_local'); // Revert to local save status on error } - setSaveStatus('saved'); }, 2000); // 2 seconds } } @@ -384,9 +410,10 @@ const RichTextEditor = forwardRef(({ {/* Save Status Indicator */}
- {saveStatus === 'saving' && <> Sauvegarde...} - {saveStatus === 'saved' && <> Sauvegardé} - {saveStatus === 'unsaved' && Modifications non enregistrées...} + {saveStatus === 'saving' && <> Sauvegarde en cours...} + {saveStatus === 'saved_local' && <> Brouillon local} + {saveStatus === 'saved_db' && <> Sauvegardé} + {saveStatus === 'unsaved' && Non sauvegardé...}
diff --git a/src/components/UserProfileSettings.tsx b/src/components/UserProfileSettings.tsx index 877963e..83634a5 100644 --- a/src/components/UserProfileSettings.tsx +++ b/src/components/UserProfileSettings.tsx @@ -1,7 +1,7 @@ 'use client'; -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { UserProfile, UserPreferences } from '@/lib/types'; import { User, Settings, Globe, Shield, Bell, Save, Camera, Target, Flame, Layout } from 'lucide-react'; import { useLanguage } from '@/providers/LanguageProvider'; @@ -30,9 +30,38 @@ const UserProfileSettings: React.FC = ({ user, onUpdat bio: user.bio || '', email: user.email, theme: user.preferences.theme, - dailyWordGoal: user.preferences.dailyWordGoal + dailyWordGoal: user.preferences.dailyWordGoal, + customColors: user.preferences.customColors || { + bg: '#1a1b26', + panel: '#24283b', + text: '#c0caf5', + accent: '#7aa2f7' + } }); + // Handle Live Preview of Theme Changes + useEffect(() => { + const root = document.documentElement; + root.classList.remove('theme-light', 'theme-dark', 'theme-sepia', 'theme-custom'); + root.classList.add(`theme-${formData.theme}`); + + if (formData.theme === 'custom') { + root.style.setProperty('--theme-bg', formData.customColors.bg); + root.style.setProperty('--theme-panel', formData.customColors.panel); + root.style.setProperty('--theme-text', formData.customColors.text); + root.style.setProperty('--theme-border', formData.customColors.text + '20'); + root.style.setProperty('--theme-muted', formData.customColors.text + '99'); + root.style.setProperty('--theme-accent', formData.customColors.accent); + } else { + root.style.removeProperty('--theme-bg'); + root.style.removeProperty('--theme-panel'); + root.style.removeProperty('--theme-text'); + root.style.removeProperty('--theme-border'); + root.style.removeProperty('--theme-muted'); + root.style.removeProperty('--theme-accent'); + } + }, [formData.theme, formData.customColors]); + const fileInputRef = React.useRef(null); const handleImageUpload = (event: React.ChangeEvent) => { @@ -83,22 +112,29 @@ const UserProfileSettings: React.FC = ({ user, onUpdat preferences: { ...user.preferences, theme: formData.theme, - dailyWordGoal: formData.dailyWordGoal + dailyWordGoal: formData.dailyWordGoal, + customColors: formData.customColors } }); + + localStorage.setItem('plumeia_theme', formData.theme); + if (formData.theme === 'custom') { + localStorage.setItem('plumeia_custom_colors', JSON.stringify(formData.customColors)); + } alert(t('profile.saved_success') || "Profil mis à jour !"); }; const isDark = formData.theme === 'dark'; const isSepia = formData.theme === 'sepia'; + const isCustom = formData.theme === 'custom'; - const themeOuterClass = isDark ? 'bg-slate-900 text-white' : isSepia ? 'bg-[#eaddc4] text-[#433422]' : 'bg-slate-50 text-slate-900'; - const themeInnerClass = isDark ? 'bg-slate-800 border-slate-700' : isSepia ? 'bg-[#f4ecd8] border-[#dfcdae]' : 'bg-white border-slate-200'; - const themeTextHeading = isDark ? 'text-white' : isSepia ? 'text-[#332616]' : 'text-slate-900'; - const themeTextMuted = isDark ? 'text-slate-400' : isSepia ? 'text-[#735e44]' : 'text-slate-500'; - const themeInputBg = isDark ? 'bg-slate-900 border-slate-700 text-white' : isSepia ? 'bg-[#fbf8f1] border-[#eaddc4] text-[#433422]' : 'bg-slate-50 border-slate-200 text-slate-900'; - const themeTabActive = isDark ? 'bg-white text-slate-900 shadow-lg' : isSepia ? 'bg-[#5c4731] text-white shadow-lg' : 'bg-slate-900 text-white shadow-lg'; - const themeTabInactive = isDark ? 'text-slate-400 hover:bg-slate-800 hover:text-white' : isSepia ? 'text-[#735e44] hover:bg-[#eaddc4] hover:text-[#332616]' : 'text-slate-500 hover:bg-white hover:text-slate-900'; + const themeOuterClass = isCustom ? 'bg-theme-bg text-theme-text' : isDark ? 'bg-slate-900 text-white' : isSepia ? 'bg-[#eaddc4] text-[#433422]' : 'bg-slate-50 text-slate-900'; + const themeInnerClass = isCustom ? 'bg-theme-panel border-theme-border' : isDark ? 'bg-slate-800 border-slate-700' : isSepia ? 'bg-[#f4ecd8] border-[#dfcdae]' : 'bg-white border-slate-200'; + const themeTextHeading = isCustom ? 'text-theme-text' : isDark ? 'text-white' : isSepia ? 'text-[#332616]' : 'text-slate-900'; + const themeTextMuted = isCustom ? 'text-theme-muted' : isDark ? 'text-slate-400' : isSepia ? 'text-[#735e44]' : 'text-slate-500'; + const themeInputBg = isCustom ? 'bg-theme-bg border-theme-border text-theme-text' : isDark ? 'bg-slate-900 border-slate-700 text-white' : isSepia ? 'bg-[#fbf8f1] border-[#eaddc4] text-[#433422]' : 'bg-slate-50 border-slate-200 text-slate-900'; + const themeTabActive = isCustom ? 'bg-theme-text text-theme-bg shadow-lg' : isDark ? 'bg-white text-slate-900 shadow-lg' : isSepia ? 'bg-[#5c4731] text-white shadow-lg' : 'bg-slate-900 text-white shadow-lg'; + const themeTabInactive = isCustom ? 'text-theme-muted hover:bg-theme-panel hover:text-theme-text' : isDark ? 'text-slate-400 hover:bg-slate-800 hover:text-white' : isSepia ? 'text-[#735e44] hover:bg-[#eaddc4] hover:text-[#332616]' : 'text-slate-500 hover:bg-white hover:text-slate-900'; return (
@@ -141,7 +177,7 @@ const UserProfileSettings: React.FC = ({ user, onUpdat
{activeTab === 'profile' && (
-
+
fileInputRef.current?.click()}> = ({ user, onUpdat accept="image/*" className="hidden" /> - Avatar + Avatar
@@ -212,18 +248,42 @@ const UserProfileSettings: React.FC = ({ user, onUpdat -
- {['light', 'sepia', 'dark'].map((t) => ( +
+ {['light', 'sepia', 'dark', 'custom'].map((t) => ( ))}
+ + {formData.theme === 'custom' && ( +
+

Couleurs Personnalisées

+
+
+ + setFormData({ ...formData, customColors: { ...formData.customColors, bg: e.target.value } })} className="w-8 h-8 rounded shrink-0 cursor-pointer" /> +
+
+ + setFormData({ ...formData, customColors: { ...formData.customColors, panel: e.target.value } })} className="w-8 h-8 rounded shrink-0 cursor-pointer" /> +
+
+ + setFormData({ ...formData, customColors: { ...formData.customColors, text: e.target.value } })} className="w-8 h-8 rounded shrink-0 cursor-pointer" /> +
+
+ + setFormData({ ...formData, customColors: { ...formData.customColors, accent: e.target.value } })} className="w-8 h-8 rounded shrink-0 cursor-pointer" /> +
+
+
+ )}
@@ -255,10 +315,10 @@ const UserProfileSettings: React.FC = ({ user, onUpdat
)} -
+
diff --git a/src/lib/types.ts b/src/lib/types.ts index a72cc57..230611f 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -155,7 +155,13 @@ export interface UserUsage { } export interface UserPreferences { - theme: 'light' | 'dark' | 'sepia'; + theme: 'light' | 'dark' | 'sepia' | 'custom'; + customColors?: { + bg: string; + panel: string; + text: string; + accent: string; + }; dailyWordGoal: number; language: 'fr' | 'en'; } diff --git a/src/providers/ThemeProvider.tsx b/src/providers/ThemeProvider.tsx index 257c92f..8feb42f 100644 --- a/src/providers/ThemeProvider.tsx +++ b/src/providers/ThemeProvider.tsx @@ -7,14 +7,50 @@ export function ThemeProvider({ children }: { children: React.ReactNode }) { const { user } = useAuthContext(); useEffect(() => { - if (!user) return; + // Read from localStorage to apply theme instantly across reloads + const savedTheme = localStorage.getItem('plumeia_theme'); + const savedColorsStr = localStorage.getItem('plumeia_custom_colors'); - const theme = user.preferences?.theme || 'light'; + const theme = savedTheme || user?.preferences?.theme || 'light'; const root = document.documentElement; - root.classList.remove('theme-light', 'theme-dark', 'theme-sepia'); + root.classList.remove('theme-light', 'theme-dark', 'theme-sepia', 'theme-custom'); root.classList.add(`theme-${theme}`); - }, [user?.preferences?.theme]); + + if (theme === 'custom') { + let colors = user?.preferences?.customColors || { + bg: '#ffffff', + panel: '#f8fafc', + text: '#0f172a', + accent: '#3b82f6' + }; + + if (savedColorsStr) { + try { + colors = JSON.parse(savedColorsStr); + } catch (e) { + console.error("Failed to parse custom colors", e); + } + } + + root.style.setProperty('--theme-bg', colors.bg); + root.style.setProperty('--theme-panel', colors.panel); + root.style.setProperty('--theme-text', colors.text); + + // To ensure UI remains legible, we compute a translucent border by default if not strictly provided + root.style.setProperty('--theme-border', colors.text + '20'); // 20% opacity of text color + root.style.setProperty('--theme-muted', colors.text + '99'); // 60% opacity of text color + + root.style.setProperty('--theme-accent', colors.accent); + } else { + root.style.removeProperty('--theme-bg'); + root.style.removeProperty('--theme-panel'); + root.style.removeProperty('--theme-text'); + root.style.removeProperty('--theme-border'); + root.style.removeProperty('--theme-muted'); + root.style.removeProperty('--theme-accent'); + } + }, [user?.preferences?.theme, user?.preferences?.customColors]); return <>{children}; }