From f8fd597ee1a91db7529a6dfb62617524bdcb02f1 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Mon, 31 Aug 2026 22:42:38 +0000 Subject: [PATCH 01/44] Remove unused assets --- public/assets/images/bw-logo-old.png | Bin 87491 -> 0 bytes public/assets/images/bw-logo-white-old.png | Bin 72889 -> 0 bytes public/assets/images/icon-old.png | Bin 21679 -> 0 bytes .../vendor/bladewind/css/bladewind-ui.min.css | 2 +- public/vendor/bladewind/js/helpers.js | 71 ++++++++++++++---- public/vendor/bladewind/js/select.js | 10 ++- 6 files changed, 63 insertions(+), 20 deletions(-) delete mode 100644 public/assets/images/bw-logo-old.png delete mode 100644 public/assets/images/bw-logo-white-old.png delete mode 100644 public/assets/images/icon-old.png diff --git a/public/assets/images/bw-logo-old.png b/public/assets/images/bw-logo-old.png deleted file mode 100644 index 469e24eaf7ac46587fff5b357b1fada3c91fb56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87491 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 Vw0*R;Igh|UX$b}KLNQ&R{{!C-3!wl2 diff --git a/public/assets/images/icon-old.png b/public/assets/images/icon-old.png deleted file mode 100644 index 3d9eebd4ed56f1f4c6fd6b8cf62a52caccd35222..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21679 zcmYhj1yq#V_dg872s7jW64Kq>AdPf~bc={cw{$m%z>w12h#(~`ASvA?CEcCx!}s3% zd;hF?mP^*0^PIDLfA-!)sHwLH?D5mWT0v2HF=xY4~HA-8;Ita3~ep`1t2ny3!N0e{v|wm43NM zQH*nsJ~LEz@?(i8CCuPF37i2iRY zQ)S@WyGQK;|F=60vo6yAy}BGqp=U-)Mu_s?Y5XmoefaOi;{LpdG|c5)NNfLhmbh|L zjQ?H?siyO{2yyi=CHcRz#N(C!cLxN-DR5kQH6~UxQot6};$6}bBaSus_D3(YKdP@4 z_Gk+hj2OPA<5<_goZ=JBbJceAC^wuH!vAh9PknwXeFOTa#`rNy;a8ZKcI^UrOWg=S ztQ9KYIBYVcqAwM*^YVlxTDQm*`+l`C6<`*wubFHqno8=5Gc-2JGBt*-S5#hE4-FGf zwy(Y{v_VxAT?bCxAdk=&neG@ijfp+;B|97oniHEx8gH{#$?QtL--8}^z^mX<){7Nm z@U7u7%Q$=ylL3qf<48h?$9p4%(j~DH19kZ>c5F;3JFKOVDMx;0)Nqu`l|be7padNx zl7L26O{5V_1~=c_ES<0r5SyU@WMK!GOj;&36Nm;Q%0ejg9BD=z#%(~h zw$=;j=>u(rST;qonJH!>wCvOq2PfhqC~GJ$IVMJSKP4lHi1fu+dLS@Mw6g&m+>50D z@ing9F-)}eRM9?up!o9z1Z|PKuRy^86oHcppZGO@d8f8(U*dh1E05W(4dZ|V7t^Fh zY0jV+nfz{7v;4!6)<+G?q0{X2%U)j8p3_71kJciwYxmQ^ux<)dWI(Phe?ql|*ratQi*iCZ~t6+ZX>3IR4AO#3$$hCwd|{CAN4C4vt(nVgLt}#3S2U zp`~C#aeBBugpr`eoFe-t+Qi|>+Mk@w$EK3Utjur;YAt{Nb3h+;$;}0V!WWMIQ8QDujk?%Xdo@3n`39GzTc}e+))ng5GjCN zoHS}2<948QV(S6FLgtmrnt4qR0$6tNhMA`gXS2oI9aRcIhB){D;=SSSguueTAlztC z$quSW9I0TxI8XJq-<{lx4wCr)#q0n(#aYYoF*v@g?=;wJsp}2xI@U=G>$|aS_I{Hm zi(D-NT)di1T%0>#*k#*}=}~Fg26^HGjW~U15(d5gUp50elQAn~tsn#g;EOY%$f1qm z2t|H|;ZCli$n0WeW`e}i7dpLYc?(nkMJhbH3}nDEmQg;q4;uGwKf zLpLus?3eF9##oB;LaM0&Z8wrLjbjEEm$)JNAh0`hn_TIUA~t>6Nb;tf)Lyg#besQ4 zf~kjdnT@^}V@JqWHI?1y3{+$?Tsmd zENI&O^1E+vo>?^%>;e<7$qn)h77EJ$nQZQ-!I?3PuT*tSDO?Z;wiK72t@7rKBmBD< zL_>Gy?^-ZGuBl-}&}t!98{*IYvp}S!!sL55`4u842H0i{B7*GPJU69$kQh8}Z&sCEo-9BG;_^saQDfY5B%Ng#-KAf~L$=&S8ZVf64QPxUCha;Wx*Ng5& zk2^dEf0qJGxx_&3?p8-htBGJ#|I1UVS&0&Oh{nAJE!)p7o4SC3!hvM@5>bTzq=ouOscdd zpPd`p-K>te`hr9kPXrLnQSM4TsS%#CG(KZ9rTChHFbVF;Bm8x=KIRW@3jt6DL_yek zxMBVSeEu|Ks*4&2>nlZj+LKxQ^TPJaYjet|%tV|Rj&)Dh*O#IQ1|ofiJE&nZoWN<(wNc>6!||OargwJzvARrOiwy%i}BRCShb}sM+$HNtT;6J-Q-yLvhplh zMD{1zKSQqPwJ;Gw4?Le0l?u<#rWBApe*~lMM`%;zBNGA$Q3rTigy5LUexVJ&nfmVg z(IJ*}w}8O?Iu3{71+s^7kJC$jU=#^t8xfU^|I#VXU%W{;YWIw$`|9*ne)|S-)c5Du^GuFEIay@=SchYz z)DwkbGtSrNdue6JA~aAenw9;Rpq>#+(78Ta)T1T0r^Vq%TXvDMmxU0{y2w9-I5>#J zvE1&p$zppSccv*R0|;R=Yyp3;1?{Nc%Rj$s!7P=s|F!AmkON~ z!FfynWhyLQZzTf*G_9H~_ciHxBi)YP@p*{@g%qXsw3X0(l$!3XWl>y)_iLPPq z9A5kEZH^bhUcKp{5D z?Tt@6Zu)_}O)?k9lMR2(CR|*+qfqevP8xVnjK(TbpGs<7B zwox{+Uzy9;eH_rQG^L%dR*!!7y9Y_c}pAoiwKV!wP&xqKc?~h%EzLf=Z@w z-QfspPO$xQ@6T@9t$pG6N?()PD-z4SM~p95UO;p`79Tbj6Hyn_spes(C=d=-lu=UV zth|@nZ0-~w2X$`5Qjk&dp>js~EP63YfE-k}4mf_I+%&4eACdtH((SP}FO9oERvto2 zEJWJjZMIr-g5R0poeBG}YAQV_8M)RFaTVpG17dR2z!x(?hIB?hHPjFt2P4BzoVQ9k z`|q|&?ZGiRyfXi1r0VWEIbZD1tbk2$i0SfaOp|RhW!Sa zzm-?R#4)$5j3ZhxCCGr>U;+;hih*fR2DlhJp-fAW*tU<({$noC-?6XXDtD~**m5Bw z(DjEANC92#+aGjH7om6XIcdr4WPd3Rn>vXIG^>`ixAq2WXl;WmNPqgh%NML6BPQtt zVWw2S>|k#}&`CqEjDzQWp#- z>d+ZS+4qP12$oBRs(r$5`BYan09k2%37(;6X6GMYQl?DZQPEv_PY7;E3=-m2{b3T` zf7p2hOb8FM5?NN9slFS!AX(BoKW}!Aa82a1*be1t+TU|Mk+8P1}D~juNl~tya_?Dbnyc z;;7*RDU>juhD_YeS%!!;QELj1;X1v&il-c<1SPv(et#&Edgy%J3$0er78>jRn3*^& zK!)2uPKmhf#qI3FdXHUNtiW?#WvFt`oK2>)(9S zPfR9#-3u=$8v0%5WYvkjxRKrN)x>fjdV|nvKn!KzOY&!5Z}#*|zWxCeoJ>irg zN8Im2T`a4?r1w8#MXKQb#%=bE@zIK!;7<`f!R-X zJ|Wsk?hD(5Q4oA$R(`Z#a7- zKni#HK%m>CnE5+Xq`_-kZsScYlAq9h>x@p=;n|N4p`3LL$%w;^Tm8c+v!Gp}I$Gwu zJS0Sw{5*9V_GO~A%flI^6=`7|5SV`- zWjhy-_XSk*7CO6ulH~+ri~9EAZOCfOs)Y3(b_(C!D~OCIFjDvP02@WnEd!$nD=!6hwMFTA1bdJD@8X!@Lyz_0P$a7HB8hO z3_p1l{MlGu1{xbYw8?C2Ws1=oec6CsJ2PGH<;*8BoNLY=2%3~&v9jiC%aruu&3eYe zT^uQ0J+n4YEw0|P0QaK!g30A}A8hS$dioID?XEQYymW*x#P&e>g}z*yi%N`oh2853 zFXrJK<2?IqzMn4lP4RGF1?^Z4QnJ1JEQDkyH9n)(@FhXP-@dCy4qo6bU%1#4l{w%l zvQ1x(^V@#aEG3q9Nk9jFGn!pnP2zGKxq@qHm>bSenMVmh(ftzaA_fm4KBib4p`_>- zF$jy>$7S9*=fNZ39vTJ@T?cy3ljVu@lfD!!F6}&D540V6^JKkOWR&RGBIi_oVldlxTHONw95-hL~t25`D5cgwn@T!)f#*fR40Jv zSQg>W&Qya@#jn$=q*@ctR#{{qNdNjBl}rEv^%GxaU5@!(p0$S&js`HQ!_-zm)|D*` zsG~8zY(8kdY-xNSXDq9IDjz!?&f@-;iD|!YyVm)lp&7mO)KIZT(xj&0T|v{8>2p~S z1BzpGWF6nNr0dyPVUm-R!|>+%Rp^zZyhxW*n*qGf7u zaIK2JMghVFAiL6ddU>JH=B*pp`b$dPukJrV@!4NfEEDuX* zStDG5n|GS6Xmf5>y{}5!?%gf!;p-ZW>igpk>yNLvR3eIG_>>ned*6(Ud;&*f?bj?InyhPFJ-A0+vD7cD-K6ntyxRgJR$?t-~ zzfc(K+%-M-V_Q({4DpxvUIxE}<} z!#{1w-R(7^L@Y_N3+uS2Y8NuJ_K5s$QIOXnynH%=hv9{QNYNhr#QA&5Bkmj1te;@C z!QupeoSjW?`<-7xMf^M!)J9+a%70XrlH_Ql1S#}=+CY;(%V|+kH>e40g@;aY(mB%r zEK3yG+csMNnM_ug&S@ZE9;iHtoo%9>JkDOmuEj4jsNTOjm^dB(lhI5eqQ(F5QvS4pttbKkr_~uaEYZhXzN3Z{dUcY2(7MjvLqc$Z zFqirg?#pS2SECzV7KE^0$(pxV_hu)>dhvNhAF5GvTO8Xrp#h;%hhOhOK+v&qIPSQ~ z{RK0$WBAjRQycMZJXX&>$cOzgvo#qj)`0zN-`}5IW&hxVYb#9=uimx-K@l_KVGq?a z#4-p6Bg#-_MGya{MDm`4f{$fUZd-g~=esUd5z*%p>zuZ#`?C|m!d7IQUaXk?5^ENx zt^DOPi`xxAP!YHxP5KvU!m+ijMG+&jQSK>#u7q467_IpbXTZiD^xPduc~(yCw`rHU zh*C_ZwdP)5Ki@CC%dYH8dHw>iV4@U&aG1HCAw#Afo`qIABWXjG%A*j{oz$AV8xwb& zT?GT=^&x73*G8W7o7|4fy>J{y+$!TN_I1CrGde%5d-P@*YgO$g0DRRRB0k0sG}=X7 z0)vZ5Xu{|R2hR_ijQL^KmRS7~haT4jM(hFLa`tjKLKcT6lk&P_zcngg<3M`btjQ>UCO+!y; zth(UV>62!0LKt|Je)C6vYHs{aE#eVO@3X)Ae0MDd07Sg$mZxuwrUkwNFnsgsT#fVa z@_)fO5|);7MKhc%+j!pROO(GJW>w+lT+k|CDqG+!%OqP>G{Emk8GpAACTH+VmFa#7 zn|Qpv%8Bo$oO3LI*-XV_ub5&w#+}m>6tN>NZoFW+330Gq@XV=l1FaS7QHf87 zd8pn~0_7kSembUpqPZBd{`k|DiqyF+%7u)u-gv7l+5g7S-M&Bd@>~}P0_lU&_(t&V zoHSbgbP2;umHedv(XMGw*!JCtm`Uek4pUbACt^DWsl~^`3EnI7^p+9K?a;y!gP45B zoBwAEcHw4Y!rFZb2$+|ZDYf3FA1a=b!s6Kr3hVC}zLcJIH~z<;agMS`6=Dw$lc_&j z&&qiG1I`tJ@x|z{vkw!*Mz*srdl#cCg0Pz{X#K_O87{_IBW1S`Kp7M;UPRH2>{Z$` z!CR+^2T5NH0LQFqj`Os~;Ff%$aL+`ZV}jgnLToM z8!Ves8^i)QP|_kCsoep;{DIXays}HR?{7c~_lfcFPrWh4)S5TQwqG-F0s5c?`4gRl z)Qc_J-Kr6eHT0XNmPa2{S}36XYCvlU3^Jk^fgtj2Wb3IuL>4x7g@%MDm%D|etBM~YtsofZ}HZ-Gf);&(1*fQu>rhQ z@u~4_T8+)Hq)stU44o~TJ@8rG@1N1tPzK6R+0#jn>^6;W`truSA`}AqzV`fCzQzHn zM?V15x9iPnGsrd7CxOc{n2*InZE=7I0!ixC)Bi^x^wg zHGxiXOLbWL*tp_?4Cd{Y;YGH0?4ubk9`Wky&U#nsCJc#hq4^E>E^=8_Oly|wItPwb z%A&-d%fan0=LSwiR0W;us+FVATeYMCSuSSQ6pi~HAM|1R7?(RBQe$5ctpv_lhL^ED zwm4D6BVyMwLO_W~OU5Fau;6!YEl84+q$^FFP!85|&@(LmfYfhJ*Ir1H$mpkx>S{N5 z@UqH|;p=$*+W|K(He(n-MdPL8_opEZwMF%lX^P}A3feLzmX%t_M{a7~Xk=;TH0@<1 z!2_%2=prThiuX+8tFIYfJ;euj#@(e(5)0@rc2D8)hrbEpwf7Q<;N{>b&;~^hIYtUT z@>7n%!WM-_o%DJjJ3*X(L_Ql!M}#sz;7n#hwxr~yh%zFG&<#96-R)P~IuPm<=hz4E ze@_&HgTdk{qL>(P5IyHIB&_j*)suo+<4yJ%Y1ku(Ffn1TjYjXl5Drl~~kRgGg3xRgbH$uLPZ zB&)A-`ShCo9!IXXg5YMATD)lRxlz}n==gvHu$M%NI%cH(SE&SKkiz+RkQ+Cz)sn(n z*}@-H^mkrc1C@I9tbDuEoS(Af(ru@n1Z!zXE=4B^C``Tc#K3vbXGkM20p5<07^GzAR^4d*zes%8^JE`tf90#7 z>sC7FhF%_t!26u#*X8$~rC&<-Opo$y2CKa$wW^Vdw3HM$dP(>7|K1{Kmv`I^5p4l)rQBg{ zr`)~ptSB~W22vB9`KG?o_g(si_&T?sc6202H6zM1Kf*-2g5*>ze*ZL1I;P2mH1<8? z*m+ay%7UoJb+6SaG@lzN!!~KE$*9veU&Ye;_DBm_hh!C2myeRHB}=YAgF(tm1etwq1(_8uVDx)W*`=@-Eg*XUQa)Jmm~1!mLl9w)CB@%8Y$x8$Qkd zK?kU8Z6#EhBYC zhJKzB*OHB6&;#b`XV3BN=2PwZpi(!v9N568ucK84I-)*}wq3j%D6_#MBnH69dZ>7} zUVJfgL+^dNlf78?6(3mb(i!yhr28T-h~w8Th;P12iI-$)FrKU}%<888Z=>0#jpPa} z*HKFXp7zO7LAei5K_Q(eCZYe!e2isX=~ITe>^Rhlx#R7+-Xd5;Uvzu-)NYhM(ZYZ-Nd}#xWFEoPE4)aJ8A^FdQ*hUenfU0QecPwXMo!Pt z@nUa%(@$6FtCtSgKu4kQ-I^dHGZ=tBb+V3~OOF$*j%6-Qu}||iKj>v_cf1KcvoALR zSE_ni_n-dMTt!58?|f# z^VSHEx_A7b`_QDd5HDBQ$m_K79)|FQ!V-bGS|BG;Xhi0OF`9i$;KN5|&{ipQ5J>bO~qxqrh2$73~QVo0i0AArk^23!& z589qb^3&|PBNPIyWjyek50%Y7Kr8^0Ddd0 z1BezvmndGsgHVP6?DPHj!NoGNjjn|}R)@JZRmJpY^6lbGvbS12Ij|4nU8Rd-Q~ZhDVt~Id zEIb?`3IG|xs+L_Bf(afZ+gO%yK4-~<7c5pTk3yrQTnQClGW+Fb!2PCjh=qn|#Xnr2 z>wgoQ*bg}EQ-C4t#F>awu#J$SZ=nP*KpYrRTx*ksL{!&vk4B%Tx^%930nfPOyw^g` zr$gb|sCrJoB)$_x)c^LV_~ByN)hp0qV*@fmZG*&svTYnYLJn|cgW_iQq3CS-UN-L} zq1mwX{)>!zxglwN2I+pcl(6a&HW2xK3-D)hyDTi+x&Zg}4`7Q6%3W#%KZHLq<}H?& zCjsZ5f-nX%d6_+S#p5PB!ULt`$DlcjTKkP}=%~>|3F6M2g1$gUmDOMXHl}z@%`?Nq zAS%Q6u!<~yoT%c))8~t!7N3Z|Fv8mu>Pf%uPR|&o4<)v-hX_%-W#x>Zg8B(i)^GLe zF5IZ}W-S?WNG!VFp{eWv`S1Ed=2HGeEA~y-itO2jbCY5~?%bo1)~%Rs*l!o2UAM7Y zM8GhNdxKi5RJOJi?-h#Z<+Q)&d~%8#-heEA{=aZ|ULti67uQ`Ie!DI7&_Z>Y8U-qN zC<6K+5;2_}o=oz^mX>4&P>b|2Dv||ukRsop$WX*-dP5PHSO0#qC;KnP>k*UN4wIV> zlRK5Wk;*AQ;Q6%b_I>vk{iXJr%+`#6uXwg7s7d9k?R(aEIO$K!jqDqIUdvPoe`P@i zqZ>>kMDkm8V^Vbu1+p*fG>4G}{Jhh{1)FokPYxO%+jQhG)Z#75E_8z;O4Q0>;~bol z7-acddo5kIAM2$W=E;8l?J_^S{EUO-g7ZNp`0GNBm9T4eP}5r>cvHkpMeO7@yu}2QQoTU2 z{AODvoLUkGg_EK^^2sW-7@RJ<;62WkuLN768zH;%0*`(;RT;i?73(7$r{n!=)pl{% zOp?FGePa3G1QfZipYW{tf8}I2BIO26MnIq)EIjzhxEiF-Z4V6dObi+;W;F(}5# zD$IZ%cH1KV&p;R4B{Zsc5G^;60lDy( zeEJ5?w(pu;=v+ZQ(_EPj^mZTxL#da{MLiX6iatPNME)lyHF!41pwjsi@bF0?qNYzuC^-{Cf|5>N8_JcqZQ5-m4Ck+f{6IyhZmJg;}xD^|JelV@gxE z2$cXtTRUq~2VxW`=6E#46TR!Je53q*Iv`f_obhQN$N_-E$8{zP&~v&FA)PS0t=h=; zH7$^5y4@$>?Joi?DLv_cpo|2dlon1H^j`vifcr7>cc0y@7Xc=l zXchE3)fpe8F&=*im1&0j`qt!?uspSo3-tF;i~F^#L(Ja= znRAeWb#b1G#J(A6wr%}5W5k37`R*1^g*nIh#ifVA{D`H(^Cwqw3(?9?Yju&{AzK6# z@I42B)9^xI;~$?YPC^F)a6RhEFGU!+hzRx>5&M!PQ{0NI(&@kGG<*=KB z6n=~t$+f0FsAXR;w}{DUORfOY2!T-s{_iUPm1xCjuR7<(xXvMyH+8~;GpUSzNh%ue z8|S;DXWIL%A!@%TtBU{b1Y7sWh#>bV$OWroqC#nYR?~?4X&cEE>EmzlRRTyyDE&{t zru||WvGX#PLSOh=*$d(e!W+@1$kv6r)(xERs&NEjh-~(u&oZg?po|X;C?Q}R^BJ5K z2Tm;qp<>tiF(eH+)|dEo&t!d5iE!B~Y*hsEN*ejBW1z8i*Lrau!^xU4G zvL&3y`$9Ima>);i39AG`E>cCLV5|Ej>D^0Hm8GZtH6j5%LPV|bb*U%NcPinL>c{8F zGq(`|Q3vDiuSy=b+44mTx+;NYTa6u=yZ9#sMM1R26w6HOB5*zdxbSK;yFLhijN1I2 zG!2=#ggEmPmNj;L7IiII!SOxs%LCVbew)&%&|WTS(c80b-`b}wo(0rR5UMl>-W+Pr z#?t}qcT-cFP9r^tH&lzvRCq8nkUkXX=ZG=JzqELiKBG}!zX92&vM*u*^wNt+x`*Y6(1-79}Z0z`>a$mqv&PiKDyEB<<>z|=g( zdrIV&c*VCUomZg~^B{0T0(6*7%OR91(`LWIs#s*vIsIJz6ZRr8$lM@=(p!H(w8a5QrOUh5~?=eVeNUE4ypmvP-6QO`@F8J2IwfA=Se zZCS((JxAGM47_)pLs*o-F`dE|I*q*j*ABg<6-~Fb5 zKDp;T3N5oqZsFWxq~_mU*FR}KEq54`l@rP?^dnyvDr9SL-UI`Oz~aYG1 zNDLx@*5=tc0oni6%YWKPUJ;?viYiC+Us6q~7dUvX9Os?2uc?-i#F|l1FpYUVj^VMk z@gqKq$HP#UG}1$IDUObLV&;kipXLKahIUiHg^n8l|2`D>8|ZqANkiu5Avua zG}Wxxg^+kfw_o^Wy!uPrvk~6gma~vdOg)yLdUE~;vO=uO^PY9`m6Up;&slHG^~8_Z zNAk(6B`7pNU-~7g1caVSZOYUS1Y6FRk5)w+%5?}3WA#Eov7=DByOb{M{r%acRJO{f z+vi%W=$uJV!~(XQ(77tEuZ7m!aphVuOm_i*?fLy2=Nh)6g*lhhZ}qLYm_(*+L994m zAh8wVK5HF~W{2;)I(5)0^7t!kZ1 z!#t@LX@%Y|fgKQ{%Ldkk2Q5KRGxBG<6ty()7)|!{MxDe6{3qu|XN^S_Jgh&~t#J;s zf@-!t}$Pfr33Y-780$xIDVnMiPu~eRNHYmr*WCx9NP>U=vAd z7|(d7TvpevR6?-?3}Dzu{p$!PSP)PS`vtj@9Nynn-lWn*=m@NQb;ZbwHNMDo_0;^Q zM!kPJmfY)lNvo4G{HzZ(2$DkdjR7B(!2ei?e|C057rszw8?0@9mH@|@Bzd{Z1@BRf3TVI`oHvCiOH8s|_tA7qXJ z0Di}IYA-*M?{3T6@eH1krbStVsMDxpnm{P80E~zcYVYhF77ag86Q&_2h-aHUIqGN!phu~^JlEo_WrGIg5DZk- z5-9|<=S^gxf33IU{#-s0!`2jGB#Wi;8s3l4FEPp)Y7z6)X@MtNIg5o?MA9X23bQz(S5C@%$B`q(56;i>x*dy<3&d z$97nP6en(<0s~6btTL+PfJ|BF;z(HuOe7QOE&d?F5aIY1wb zuqp=#;Euh2pHTTam8lg%pu5?0n<&yLj_qWG7!BaqPG|Ioi``Dk&iqKV)tXI>le=!L zUzE7$v0XAW%#Lc95-5PD7Y~NC0)#FVoDX)Bz*bZMft{n8NM-YplsjIVvozz;1i1*P7#}Y<3^clo(R(D~ zh|L2{=H?^uTh<2rdc3x}Q3I>!s60N!0^*Cz=u(Cf>z_ULeT z3jh6vzunP7e1$$kj|lX~L0Sx%dZ8ZvU4rhs%%a4kU>@0oaEonCn& z)2*bp_fr=%>+h~h{62*%r8n?!C$;j192Pr(dbY_Pe42OPo;zhVbRqii!qm(^&&}M; z-t9MwnRKzBFCqdR{`f2a3eN(eGMu3V$o5^v`9JsrTQQU#(K^>hfOoWnz8fxI&4~#9`B^74>xDwO-vNg5mCF-mhCakSM?=Fb6L!eE z*8DV4^LN=M;-v!;_&Xgy@iJkc*s3{Uc#Fh>Eed9k|Cr{RnkjQxcy{!)pG^@MNqeq( zgJU3PV*XBV9mfzcKnI#lQu{(0aH*}&chFfd$iT&Wr)9~)kI{I{g~DB3R4*$4=~Fl4 zPY&Y499gsU(p$&>cNvf8(8E4>9Z46z3Cf_LvM#(=_!Ad}hWXebRvDtPs`QjmmM>_Qh%nJ zOIFO-0oLxtunNyBwbwbpGQggR3z?BuvWot(ePXhY*M_S0yRS#B1JA6Xrtb>$H9}*h z1b>aRckEe11vD``d2c7#B9MC-C$o-vvciFB4Z%=hAVdEpE*L2#7!Hi1YU+XwfwqbF z?Btn86BTBTL0@cvF(MG}=mR|*-w(of2aK%zAxMy8$<@(E*@92qQ)6T1P-Lh2qis-F zSBfO0eP}CtQ3v1IUP_z~3!9WpIxmXU7P1P^l+$K`nDer^6hw`~6Ww*V@!yEIi-V?; zg8y({#fznApMavS+hm_3ovg?AX7u1!n+t(!Le9*`bqm-;p0eu>y;3!Lt@Y$)nA zCpfgsL$M(|-tO?ZR|X7!frJ??=+xp5v;R+qr#YNJrZ=ho_zIxF4d2M#8ytK2Ho=1d zT|9O`msPeWBkrluG1i%5*oTI>C#2jlNFCGq3nk4Ft+*erNy?$EQTue~9P6$XJK5pK zlbgAB<}%{`D%U?~5{1P~rjfaPx`(5HD+!J$9gbp<^oLHQ`!PqNIX`=#`k#{wThzl0mxujSj{O3B6Q-lg5T!tQ& ztws_#QOw&J5SeZlsF@>hn{~bmBha`#S$)LubjU^YdA$ zJfriqnJ?`yFGe@)s9hYFx_@KPwk<8Q%L>eZi90F%Eoez%dla^XJRM3)wUCR+MEi8< zO$C4nFMka8suiEAog{u1tg|(#}OVdR8ryD-62)Eg{V*h<9>?-|gl@cFZ zi^I_}3ru}w(H7*slsNi^1j5Ui;E(!U%ck3+j~Nu70j!#NF`d?u+lzTykSIGL3{=GZ z1rf(TagC>o>uA1Td%l@cmm>SsXNDY`p3P{o2|PtsfPnB^<>~JN$V4Hk5k1XCea+dd zfNW4K9S68#z&L)mhYjc~mO0-h^tHBM^Z-)-K02%Jn>r>Jb!~@o#+mDq>g9U0F;Ss+ zqbTLNxU_cR*mh+}dQ0}Bw(n6}hS>fFnqYkqe=0Y1lcbvSKG#jW=-hKJsqd$b@t4>N z9Dc+#hT+_C0ELi(@Wc9mdbva+CaHpOVZQGAwXt7iRY99Jv?E=uHPI+>%0-^?vdXn} zdkr2pz3G*3s&t&kt;wQUGix5%k~3Q}@n{pjCb~S|{5N#OLNaa?pbQ~tt5wXQ9Kqj@ z8pgO4_;Tb4{u;lTwl{<~*az`6klw^rIf=)`-N5_3Z*Wrn4r25m^UgJS42doZ7-~~F znycn)Brzp(h6+jobEVV)mD9>|p~It8+vV<}o4hg<0#3Ua%DRLbw|qvnyL7ih#D5hF zHk;#WQ%>5={+4Sr%Y{q6VgB`Hb|T9OJ~QL(_HeP7#oueKOGE(h*zq%;mg-TI5)div zcCvG-Q0CGU%%A?aZrot~uvYWId93Dr&hwr12A7=?-0Gpr?;4EJmssa9KAAVsY-_e} z*QV6tPx9F(MgwKfM+SXQR+D| z&S6|dI;kNYm3~n;zcKjnC&GxNwL#WhFO6^AMnuA*GlO|n$q|oN;&-{zH6bs{j52oX zmt>%u!7lL+hxU`U%#EZM5N>2!t#zL#D)4C*GPNVIX!!3o-26tsNx zW_gYWiS5&Wu=(zfSTO+$3uRP-78y{akupByocgm&+ny`HvIvZ7dFG>>)EW?1GK*)vRF7;Iy)YwthUNZt zB*a0RmU)MtUE#d%DR{u;qyOa`1c)I2DoI*0kY9wxvt{z`26D~2={8(exD-aUnWsKe7!6p0T({Qa+gV)jA*Y^ zt9n&yNin&8*Jk?CCgI~iEk7N_4gn7JaCi{r9i-*;A+|p(z{E5oat|y2+&6-h8#Kd0 zn$ky0RljHmbt%b3Oz&F1rDX-xW1RcPAl@M8Qg|Kt8+mX;eeJpjo^B=gkT(0hV5Q35 zAZ`Ku?NLliLLhwo(GCfvlN}@Vvdmf`rNU-HVT+JG1H{AcpSoj7OSBk#+_3-a8Rsa` z(b0idJ_*Xpl=c3Ra2;QVd>`|(aZkvL%Rd;g0nARAOGR6HxAqR&vIL8C-5ubi;V#dr zbeiEQ!tfgjK%D4B)fVTO%U?D=_SPo%WZ^{V->s1+Bual2&G`2<_h#jc?@)>rkAI{h zZcJ?kv#u@BbjCroN7cto!O(Qx7T*O;pv}=J>_B2J-*%A?w?(vstJhvV z{MNoyG*X1dWq5z-YMmL#;JI8*okCV#^Nx_|$&BfJ-} zMfFm=82k+f?ODTHfIw<3ZfidMTk~=-efGX5eCI=-Q$dzVhvd|`Ry z)39~SJNQR1_v*vMuZj|L-HRV5jBR^}mhgu};Pi-x*q7OmhtHnH^1f#LizC=ARz{C= zJE3js<4DIvi5utYoBtK{7JZs}D=Trk>uO(k$E?<}mDbmdwJuDsy#w@NB3ZJz=QE?>Xz!U^(Ejd+Akq+rb4Z zOBusGgQX@X1k9 z;$oMMTFO5TzCK7>8Y7l7LU!f4;%Dixl6p?(OrRK4E=X`F(T?uCWRnbS143e%V>~23$b&ypPw@0&&Xs3PO9dcHgISRl$F+S@uD(Xr~LXdg@Az=i& zTIhjDNzx!|$BeZjA>lIE*YO&l2v+K%;Q9Ozq?;wMV3$cey)DAONa*5anVv0#O;x=! z6)N@5fYQY{ps)j0G!)RDPLGwF6Zut7s+T7M`LFuio<{EK(TWKTt%#~A37RWzs-JN^ zCJQa6Jbz!T%x>K88B&y_F`QUYpChG`1E3zZN^UH$CffAd;kZ1EdYYrgBdjyQndCM* z84cw~I;xROhl2y>Fw={f#2dF{1P(fSFXmw*jEj3K<^7&I`kEha--8&jz&-;VIl<2- z@9_&#VER%_|70zz=l4ddmr;o=*ekSrK)u#e+w{ zLhlrL`_4MlsYQtm(gs)~61rLG+z9%HMsXDD<3CRX=ynd;dTIeMg85wj&}&kz`sw>( zMVs-Cx##K);%o%jlbPtJfmuGMrrjR%-KS8o<=cKxnNjPQ@c~tdo{{1}b_v-{%jz(B zov5FpY|X>K5gSVjS6kh5ygo!Es_5+;b6rP-riJ{nV(q=QDeFlDDfUSTMf1}Y#;-Ue zH@JX_A&-i&=sOcFX^~D{Y_+nj=zN;(Elssd0*fes$7BG=5JJmc`XM>?&$)au7q6D? ztj|?Fc{@qj2YUrg>NB}{_UjWJx^Oz&H5#3PtWi6PZn+aUI3MqUWC>v*zP_U&EWSg2 z^UAVut!9&uH#wa9Vw5VRECfL!xqy#yT8w?SA$c;;6iIpS=9A55g7?LaS;0xx{k6P8 z*3;7}?HO~+2G{wS87zU%un1Uo^BbQ}7B^Too6A|{1E5!9V}pRtvl3fkVNG18fpfduY{i0mmzlzwA46Y}z=9psNIE?$%R5T}B}zx#j3; zsRDrPcFyz&) zDS^t87ztET)35;XSV(5*P{UF|n<8q8I4R;ro7j#K-}piU8q1GtbT0`*@oap~QhGV2}W@9#kpVBv5=w43(*3uXZXPmnv~DMJw!aJKvTEO)x#$hJ0v zv*@$C-7sD}a)cJytoXmAh{T>T(rxE%y1&Y9y=wHQ!oY5eEc`|i$d0IJLwLnYx0?AvYL?y`$;_RfVDmRop5CKD)3_kZpu18q{@L>!^qB;)WVL_v zIok+c@G6ko@kF{aTZ^4giV!|EoFKGTBg9$oN3jVsjWfcSYktxR-dtxO{(fUt<#sU zK~M~L0u_ykaV!&zY6%8b-w<(~{V+srdU(*^%BogQ&AP7Zr;quT+|MEoTH|633}nX$ zQ$^F6_odROx{xaotbqUx!0z4^3`mH-2ED)D1qQUE%ZJ1h5^w7mFN?g>26tIeNw+Jk zjT{3e3W0PT|8==O;Okx_U!4o%!4oW|;{G{TwtORYvAJ>C5+wd_Lu)pKf|@Wf#5HCuG*@)Uo56SA$BgKO$3-X0T@V$jl~iG34ekp zucd%%l`;ML^j~Pm-+w^X;MM4UGbj)FS7Wod05HIRzQLT03Apv=`*&>o-{)br96+6- V$Z89#k2&eU%iI)WQeotV{|_sa!x{hp diff --git a/public/vendor/bladewind/css/bladewind-ui.min.css b/public/vendor/bladewind/css/bladewind-ui.min.css index 1e649aab..b33ca26e 100644 --- a/public/vendor/bladewind/css/bladewind-ui.min.css +++ b/public/vendor/bladewind/css/bladewind-ui.min.css @@ -1 +1 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:10.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:7px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:11.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:23px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-transparent::placeholder{color:#0000}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:#d2d4d7}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:#a7aaad}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){color:#f0f1f2;background:#4a4e53}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{opacity:0;pointer-events:auto;background:#00000080;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border-radius:.75rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #00000059}.bw-command-palette-panel:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.625rem;padding:.875rem 1rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;color:inherit;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;border-radius:9999px;flex:none;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-command-palette-close:hover{color:#0f172a;background:#f1f5f9}.bw-command-palette-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.5rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .625rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:#d2d4d7}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{color:#64748b;text-align:center;margin:0;padding:1.5rem 1rem;font-size:.875rem}.bw-command-palette-empty:is(.dark,.dark *),.bw-command-palette-loading:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:#a7aaad}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{border:1px solid #e2e8f0;border-radius:.375rem;flex:1;align-items:center;gap:.5rem;min-width:12rem;max-width:22rem;padding:.375rem .625rem;display:flex}.bw-data-grid-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search:focus-within{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-search-icon{color:#94a3b8;flex:none}.bw-data-grid-search-input{min-width:0;color:inherit;background:0 0;border:0;outline:none;flex:1;font-size:.875rem}.bw-data-grid-search-input::placeholder{color:#94a3b8}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:#f0f1f2}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:#d2d4d7}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:#a7aaad;background:#22262b;border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:#22262b}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-align-center{text-align:center}.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:#a7aaad;border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:#22262b}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:#a7aaad}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:#a7aaad}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:#a7aaad;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:#f0f1f2;background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:#6c7075}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.1875rem;min-height:0;margin-top:.25rem;display:flex;overflow-y:auto}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:.0625rem .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:.0625rem .375rem;font-size:.6875rem;font-weight:600;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:#a7aaad}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-time{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:#a7aaad}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:#d2d4d7}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{color:#fff;box-shadow:none;background:#1b1c1d;border-color:#1b1c1d}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:12.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:9px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:13.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:25px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-transparent::placeholder{color:#0000}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.backdrop-filter{-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:#d2d4d7}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:#a7aaad}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){color:#f0f1f2;background:#4a4e53}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#020617b3;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:1.5rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #02061740}.bw-command-palette-panel:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;min-height:2.5rem;color:inherit;box-shadow:none;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;background:#f1f5f9;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;transition:background-color .15s,color .15s;display:grid}.bw-command-palette-close:is(.dark,.dark *){color:#a7aaad;background:#262a2f}.bw-command-palette-close:hover{color:#0f172a;background:#e2e8f0}.bw-command-palette-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.75rem .875rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:#d2d4d7}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:12rem;padding:1.5rem;display:flex}.bw-command-palette-empty[hidden],.bw-command-palette-loading[hidden]{display:none}.bw-command-palette-empty-icon{color:#94a3b8;background:#f1f5f9;border-radius:1rem;place-items:center;width:3rem;height:3rem;display:grid}.bw-command-palette-empty-icon:is(.dark,.dark *){color:#a7aaad;background:#262a2f}.bw-command-palette-empty-title{color:#1e293b;margin-top:1rem;font-size:.875rem;font-weight:600}.bw-command-palette-empty-title:is(.dark,.dark *){color:#f0f1f2}.bw-command-palette-empty-description{color:#64748b;margin-top:.25rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-empty-description:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-loading{color:#64748b;font-size:.75rem}.bw-command-palette-loading:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-loading-icon{color:#94a3b8;animation:1s linear infinite bw-command-palette-spin}.bw-command-palette-loading p{margin-top:.75rem}@keyframes bw-command-palette-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bw-command-palette-loading-icon{animation-duration:2.4s}}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:#a7aaad}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{flex:1;min-width:12rem;max-width:22rem;position:relative}.bw-data-grid-search-input{width:100%;padding-left:3rem!important}.bw-data-grid-search-prefix{z-index:20;color:#1e3a8a80;pointer-events:none;inset-block:0;align-items:center;padding-left:.875rem;padding-right:.5rem;display:inline-flex;position:absolute;left:0}.bw-data-grid-search-prefix:is(.dark,.dark *){color:#a7aaad}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:#f0f1f2}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;cursor:pointer;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:#d2d4d7}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:#a7aaad;background:#22262b;border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td,.bw-data-grid-table tbody tr:not([hidden]):not(:has(~tr:not([hidden]))) td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:#22262b}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-table th.bw-data-grid-align-center,.bw-data-grid-table td.bw-data-grid-align-center{text-align:center}.bw-data-grid-table th.bw-data-grid-align-right,.bw-data-grid-table td.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-align-center .bw-data-grid-sort-button{justify-content:center;width:100%}.bw-data-grid-table th.bw-data-grid-align-right .bw-data-grid-sort-button{justify-content:flex-end;width:100%}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-checkbox{color:var(--color-primary-600, oklch(47% .2 250));cursor:pointer;border-width:2px;border-color:#94a3b899}.bw-data-grid-checkbox:is(.dark,.dark *){background-color:#22262b;border-color:#64748b80}.bw-data-grid-checkbox[type=checkbox]{border-radius:.25rem}.bw-data-grid-checkbox[type=radio]{border-radius:100%}.bw-data-grid-checkbox:focus,.bw-data-grid-checkbox:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:#a7aaad;border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:#22262b}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:#a7aaad}.bw-data-grid-loading-overlay{display:none}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));z-index:2;inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));z-index:2;inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}.bw-data-grid[data-loading=true] .bw-data-grid-loading-overlay{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:#a7aaad}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:#a7aaad;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:#f0f1f2;background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:#6c7075}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.125rem;min-height:0;margin-top:.1875rem;display:flex;overflow-y:auto}.bw-calendar-cell-events>.bw-calendar-event,.bw-calendar-cell-events>.bw-calendar-event-more{flex-shrink:0}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:0 .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:0 .375rem;font-size:.6875rem;font-weight:600;line-height:1.3;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:#a7aaad}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-date{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-date:is(.dark,.dark *){color:#a7aaad}.bw-calendar-event-drawer-time{color:#64748b;margin-top:.25rem;font-size:.8125rem}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:#a7aaad}.bw-calendar-event-drawer-time:empty{display:none}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:#d2d4d7}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{color:#fff;box-shadow:none;background:#1b1c1d;border-color:#1b1c1d}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} diff --git a/public/vendor/bladewind/js/helpers.js b/public/vendor/bladewind/js/helpers.js index d7d461e5..febe3953 100644 --- a/public/vendor/bladewind/js/helpers.js +++ b/public/vendor/bladewind/js/helpers.js @@ -51,6 +51,35 @@ const domEls = (element, scope = null) => { */ const dom_els = domEls; +/** + * A position:fixed element is normally positioned against the viewport, but an + * ancestor with transform, filter, perspective, contain, or backdrop-filter + * becomes its containing block instead (CSS Transforms / Filter Effects spec). + * The library's popups compute their fixed left/top from getBoundingClientRect(), + * which is always viewport-relative — inside a hijacked containing block that + * math is off by exactly that ancestor's own position. modal's content wrapper + * carries drop-shadow-2xl (a filter), so any select/dropmenu/popover opened + * from inside a modal lands away from its trigger. See #614. + * @param {Element} el - the popup's trigger, or another element inside it + * @return {{top: number, left: number}} the hijacking ancestor's rect offset, or {0,0} if none + */ +const fixedPositioningOffset = (el) => { + let node = el?.parentElement; + while (node && node !== document.body && node !== document.documentElement) { + let cs = getComputedStyle(node); + let hijacks = (cs.transform !== 'none') || (cs.perspective !== 'none') || (cs.filter !== 'none') + || (cs.backdropFilter && cs.backdropFilter !== 'none') + || ['layout', 'paint', 'strict', 'content'].includes(cs.contain) + || /transform|perspective|filter/.test(cs.willChange || ''); + if (hijacks) { + let rect = node.getBoundingClientRect(); + return {top: rect.top, left: rect.left}; + } + node = node.parentElement; + } + return {top: 0, left: 0}; +}; + /** * Check to see if val is empty * @param {string} val - The string to test emptiness for @@ -2340,12 +2369,10 @@ const calendarFormatHourLabel = (hour) => { /** e.g. "Tuesday, August 11, 2026" — mirrors the PHP side's Carbon 'l, F j, Y' format. */ const calendarFormatFullDate = (date, dayNames, monthNames) => `${dayNames[date.getDay()]}, ${monthNames[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}`; -/** The event details drawer's date/time line: a single date, a date range, or a date with a start-end time, depending on what kind of event it is. */ -const calendarFormatEventDateTime = (detail, dayNames, monthNames) => { +/** The event details drawer's date line: a single date, or a date range for a multi-day all-day event. Never includes a time — see calendarFormatEventTime for that. */ +const calendarFormatEventDate = (detail, dayNames, monthNames) => { if (isCalendarTimedEvent(detail.date)) { - const start = new Date(detail.date.replace(' ', 'T')); - const end = detail.end && isCalendarTimedEvent(detail.end) ? new Date(detail.end.replace(' ', 'T')) : calendarAddMinutes(start, 60); - return `${calendarFormatFullDate(start, dayNames, monthNames)}, ${calendarFormatHourMinute(start)} to ${calendarFormatHourMinute(end)}`; + return calendarFormatFullDate(new Date(detail.date.replace(' ', 'T')), dayNames, monthNames); } const start = new Date(`${detail.date}T00:00:00`); if (detail.end && detail.end !== detail.date) { @@ -2354,6 +2381,14 @@ const calendarFormatEventDateTime = (detail, dayNames, monthNames) => { return calendarFormatFullDate(start, dayNames, monthNames); }; +/** The event details drawer's time line: a start-end range for a timed event, or '' for an all-day event (no specific time to show — the element is hidden via CSS :empty when this is blank). */ +const calendarFormatEventTime = (detail) => { + if (!isCalendarTimedEvent(detail.date)) return ''; + const start = new Date(detail.date.replace(' ', 'T')); + const end = detail.end && isCalendarTimedEvent(detail.end) ? new Date(detail.end.replace(' ', 'T')) : calendarAddMinutes(start, 60); + return `${calendarFormatHourMinute(start)} to ${calendarFormatHourMinute(end)}`; +}; + /** Populates the (single, reused) event details drawer from one event's data and opens it. Content is set via textContent throughout, never innerHTML — description is arbitrary text a consumer supplied, not markup this component trusts. */ const openCalendarEventDetails = (calendar, eventIndex) => { const name = calendar.getAttribute('data-name'); @@ -2362,14 +2397,17 @@ const openCalendarEventDetails = (calendar, eventIndex) => { const drawer = calendar.querySelector('[data-bw-calendar-event-drawer]'); if (!detail || !drawer) return false; + const title = drawer.querySelector('[data-bw-calendar-event-drawer-title]'); + if (title) title.textContent = detail.label || ''; + const dot = drawer.querySelector('[data-bw-calendar-event-drawer-type]'); if (dot) dot.className = `bw-calendar-event-drawer-dot bw-calendar-event-${detail.type || 'info'}`; - const time = drawer.querySelector('[data-bw-calendar-event-drawer-time]'); - if (time) time.textContent = calendarFormatEventDateTime(detail, registry.dayNames, registry.monthNames); + const date = drawer.querySelector('[data-bw-calendar-event-drawer-date]'); + if (date) date.textContent = calendarFormatEventDate(detail, registry.dayNames, registry.monthNames); - const title = drawer.querySelector('[data-bw-calendar-event-drawer-title]'); - if (title) title.textContent = detail.label || ''; + const time = drawer.querySelector('[data-bw-calendar-event-drawer-time]'); + if (time) time.textContent = calendarFormatEventTime(detail); const description = drawer.querySelector('[data-bw-calendar-event-drawer-description]'); if (description) description.textContent = detail.description || ''; @@ -2621,7 +2659,7 @@ const scrollCalendarWeekBodyToHour = (calendar, hour = CALENDAR_WEEK_SCROLL_TO_H /** Builds one week's hour grid (day headers, all-day banners, and the scrollable hour body) fresh into `scroll`. Returns the previously-focused date's iso if it's still on screen, else null. */ const renderCalendarWeekGrid = (calendar, scroll, weekDays, registry, previouslyFocused, ctx) => { - const {selectable, min, max, disabled, selected, showWeekNumbers} = ctx; + const {selectable, min, max, disabled, selected, showWeekNumbers, highlightToday} = ctx; const week = document.createElement('div'); week.className = 'bw-calendar-week'; @@ -2656,7 +2694,7 @@ const renderCalendarWeekGrid = (calendar, scroll, weekDays, registry, previously if (day.isToday) header.setAttribute('aria-current', 'date'); if (isDisabled) header.setAttribute('aria-disabled', 'true'); header.className = 'bw-calendar-week-day-header' - + (day.isToday ? ' bw-calendar-cell-today' : '') + + (day.isToday && highlightToday ? ' bw-calendar-cell-today' : '') + (isSelected ? ' bw-calendar-cell-selected' : '') + (isDisabled ? ' bw-calendar-cell-disabled' : ''); @@ -2739,7 +2777,7 @@ const renderCalendarWeekGrid = (calendar, scroll, weekDays, registry, previously days.className = 'bw-calendar-week-days'; weekDays.forEach((day) => { const column = document.createElement('div'); - column.className = 'bw-calendar-week-day-column' + (day.isToday ? ' bw-calendar-week-day-column-today' : ''); + column.className = 'bw-calendar-week-day-column' + (day.isToday && highlightToday ? ' bw-calendar-week-day-column-today' : ''); column.setAttribute('data-date', day.iso); for (let h = 1; h < CALENDAR_WEEK_HOURS_IN_DAY; h++) { const line = document.createElement('div'); @@ -2789,7 +2827,7 @@ const renderCalendarWeekGrid = (calendar, scroll, weekDays, registry, previously /** Builds one month's `` fresh into `scroll`, including the weekday header row. Returns the previously-focused date's iso if it's still on screen, else null. */ const renderCalendarMonthTable = (calendar, scroll, weeks, registry, previouslyFocused, ctx) => { - const {selectable, maxEventsPerDay, showOtherMonthDays, showWeekNumbers, min, max, disabled, selected} = ctx; + const {selectable, maxEventsPerDay, showOtherMonthDays, showWeekNumbers, highlightToday, min, max, disabled, selected} = ctx; const weekStarts = calendar.getAttribute('data-week-starts'); const table = document.createElement('table'); @@ -2858,7 +2896,7 @@ const renderCalendarMonthTable = (calendar, scroll, weeks, registry, previouslyF if (isDisabled) cell.setAttribute('aria-disabled', 'true'); cell.className = 'bw-calendar-cell' + (!day.inPeriod ? ' bw-calendar-cell-outside' : '') - + (day.isToday ? ' bw-calendar-cell-today' : '') + + (day.isToday && highlightToday ? ' bw-calendar-cell-today' : '') + (isSelected ? ' bw-calendar-cell-selected' : '') + (isDisabled ? ' bw-calendar-cell-disabled' : ''); if (!day.inPeriod && !showOtherMonthDays) cell.hidden = true; @@ -2926,6 +2964,7 @@ const renderCalendarGrid = (calendar, anchor) => { const maxEventsPerDay = parseInt(calendar.getAttribute('data-max-events-per-day'), 10) || 0; const showOtherMonthDays = calendar.getAttribute('data-show-other-month-days') === 'true'; const showWeekNumbers = calendar.getAttribute('data-show-week-numbers') === 'true'; + const highlightToday = calendar.getAttribute('data-highlight-today') === 'true'; const {min, max, disabled} = calendarConstraints(calendar); const selected = new Set(calendarSelectedDates(name)); const previouslyFocused = calendar.querySelector('[data-bw-calendar-day][tabindex="0"]')?.getAttribute('data-date'); @@ -2936,7 +2975,7 @@ const renderCalendarGrid = (calendar, anchor) => { scroll.innerHTML = ''; const isTimelineView = view === 'week' || view === 'day'; - const ctx = {selectable, maxEventsPerDay, showOtherMonthDays, showWeekNumbers, min, max, disabled, selected}; + const ctx = {selectable, maxEventsPerDay, showOtherMonthDays, showWeekNumbers, highlightToday, min, max, disabled, selected}; let focusIso = isTimelineView ? renderCalendarWeekGrid(calendar, scroll, weeks[0], registry, previouslyFocused, ctx) : renderCalendarMonthTable(calendar, scroll, weeks, registry, previouslyFocused, ctx); @@ -3166,7 +3205,7 @@ bwOn('click', '[data-bw-calendar-more]', (button) => { if (!cell) return; const expanded = button.getAttribute('aria-expanded') === 'true'; if (!button.dataset.moreLabel) button.dataset.moreLabel = button.textContent; - cell.querySelectorAll('[data-bw-calendar-overflow-event]').forEach((el) => { el.hidden = expanded; }); + cell.querySelectorAll('[data-bw-calendar-overflow-event="true"]').forEach((el) => { el.hidden = expanded; }); button.setAttribute('aria-expanded', expanded ? 'false' : 'true'); button.textContent = expanded ? button.dataset.moreLabel : 'Show less'; }); diff --git a/public/vendor/bladewind/js/select.js b/public/vendor/bladewind/js/select.js index 987aea5f..8bf7ecf9 100644 --- a/public/vendor/bladewind/js/select.js +++ b/public/vendor/bladewind/js/select.js @@ -114,11 +114,15 @@ if (!root || !container) return; let rect = root.getBoundingClientRect(); + // an ancestor with transform/filter/etc. (e.g. modal's drop-shadow-2xl) + // becomes the containing block for position:fixed instead of the + // viewport — offset our viewport-relative rect by its position too. + let offset = fixedPositioningOffset(root); container.classList.remove('absolute'); container.classList.add('fixed'); container.style.width = `${rect.width}px`; - container.style.left = `${rect.left}px`; + container.style.left = `${rect.left - offset.left}px`; container.style.zIndex = '9999'; // flip above the trigger when the space below cannot hold the list @@ -126,10 +130,10 @@ let below = window.innerHeight - rect.bottom; if (height > below && rect.top > below) { - container.style.top = `${Math.max(0, rect.top - height)}px`; + container.style.top = `${Math.max(0, rect.top - height) - offset.top}px`; } else { // -mt-1.5 in the markup tucks the list under the trigger's border - container.style.top = `${rect.bottom - 6}px`; + container.style.top = `${rect.bottom - 6 - offset.top}px`; } } From 2b36fd59120e50c2f89feb4671100ea28e34fccb Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Mon, 31 Aug 2026 22:52:59 +0000 Subject: [PATCH 02/44] Point the README at bladewindui/ui instead of duplicating it Install instructions and the component list were copy-pasted from the component library's own README, and had drifted badly: still said composer require bladewindui/bladewindui, linked dead components (Dropdown, Process Indicator), and was missing everything shipped since (Calendar, Data Grid, Command Palette, Drawer, and more). Every new component meant remembering to update two READMEs in two repos: this one now just points at bladewindui/ui's README (canonical, always current) and the live site's generated /install and /components pages, instead of restating either. --- README.md | 108 +++++------------------------------------------------- 1 file changed, 9 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index 6539d4e8..2b01b595 100644 --- a/README.md +++ b/README.md @@ -1,108 +1,18 @@ -

License


+

License


-BladewindUI is a collection of UI components written purely using TailwindCSS, Laravel blade templates and Vanilla Javascript. These components are super simple to use and come with different levels of customization. -

- -### Installation -The full installation guide is available on https://bladewindui.com/#install. -
- -BladewindUI is very specific to Laravel since all components are written purely using blade syntax. To install in your Laravel project simply run this command in the terminal at the root of your project. -

- -``` -composer require bladewindui/bladewindui -``` -
- -Next you need to **publish the package assets** by running this command, still in the terminal at the root of your Laravel project. - -
- -``` -php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-public --force -``` -
- -Now include the BladewindUI css file in the <head> of your pages. This should ideally be done in the layouts file your app pages extend from. - -
- -``` - -``` -``` - -``` - -
- -Finally, include the BladewindUI javascript file anywhere before the closing of the </body> tag of your pages. Again, this should ideally be done in the layouts file your app's pages extend from. - -
- -``` - -``` - -
+This is the Laravel application that powers [bladewindui.com](https://bladewindui.com) — the documentation +site for **BladewindUI**, a collection of UI components written purely using TailwindCSS, Laravel Blade +templates and vanilla JavaScript. -You are now ready to start using any of the BladewindUI components in your application +The component library itself lives in a separate repo: **[bladewindui/ui](https://github.com/bladewindui/ui)**. +That is also where installation instructions and the full, always-current component list live, so they +are not repeated here — this README would just go stale a second time. See its +[README](https://github.com/bladewindui/ui#readme) for both, or the live, generated versions at +[bladewindui.com/install](https://bladewindui.com/install) and [bladewindui.com/components](https://bladewindui.com/components).
-``` -Save User -``` - -

-### Components Include - -- **[Accordion](https://bladewindui.com/component/accordion)** -- **[Alert](https://bladewindui.com/component/alert)** -- **[Avatar](https://bladewindui.com/component/avatar)** -- **[Bell](https://bladewindui.com/component/bell)** -- **[Button](https://bladewindui.com/component/button)** -- **[Card](https://bladewindui.com/component/card)** -- **[Centered Content](https://bladewindui.com/component/centered-content)** -- **[Chart](https://bladewindui.com/component/chart)** -- **[Checkbox](https://bladewindui.com/component/checkbox)** -- **[CheckCard](https://bladewindui.com/component/checkcard)** -- **[Colorpicker](https://bladewindui.com/component/colorpicker)** -- **[Datepicker](https://bladewindui.com/component/datepicker)** -- **[Dropdown](https://bladewindui.com/component/dropdown)** -- **[Dropmenu](https://bladewindui.com/component/dropmenu)** -- **[Empty State](https://bladewindui.com/component/empty-state)** -- **[Filepicker](https://bladewindui.com/component/filepicker)** -- **[Horizontal Line Graph](https://bladewindui.com/component/horizontal-line-graph)** -- **[Icon](https://bladewindui.com/component/icon)** -- **[Input](https://bladewindui.com/component/input)** -- **[List View](https://bladewindui.com/component/list-view)** -- **[Modal](https://bladewindui.com/component/modal)** -- **[Notification](https://bladewindui.com/component/notification)** -- **[Process Indicator](https://bladewindui.com/component/process-indicator)** -- **[Progress Bar](https://bladewindui.com/component/progress-bar)** -- **[Radio Button](https://bladewindui.com/component/radio-button)** -- **[Rating](https://bladewindui.com/component/rating)** -- **[Select](https://bladewindui.com/component/select)** -- **[Statistic](https://bladewindui.com/component/statistic)** -- **[Spinner](https://bladewindui.com/component/spinner)** -- **[Tab](https://bladewindui.com/component/tab)** -- **[Table](https://bladewindui.com/component/table)** -- **[Tag](https://bladewindui.com/component/tag)** -- **[Textarea](https://bladewindui.com/component/textarea)** -- **[Timeline](https://bladewindui.com/component/timeline)** -- **[Timepicker](https://bladewindui.com/component/timepicker)** -- **[Toggle](https://bladewindui.com/component/toggle)** -- **[Verification Code](https://bladewindui.com/component/verification-code)** - -

- -Check out the full documentation on https://bladewindui.com. - -

- ## MCP Documentation The `mcp/` directory contains clean, machine-readable Markdown documentation for every component. These files are intended for consumption by MCP (Model Context Protocol) servers so that AI assistants can understand how to use BladewindUI components. From 28929c9f6b0084dd13b9b2ae94c6dc12f8b60afe Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Tue, 1 Sep 2026 01:58:52 +0000 Subject: [PATCH 03/44] Document Livewire compatibility for 16 component pages Adds a Livewire section to Dropmenu, Popover, Select, Datepicker, Filepicker, Sortable, Rating, Colorpicker, Timepicker, Slider, Data Grid, Command Palette, Sidebar, Drawer, Tab Group, and Stepper, matching the package-level fixes and README updates in bladewindui/ui#632. The six form-input components explain that their value now dispatches a native change event so wire:model works without extra wiring. All sixteen explain which piece of interaction state lives in the DOM rather than in Livewire's component state, and when to reach for wire:ignore. --- resources/views/docs/colorpicker.blade.php | 8 ++++++++ resources/views/docs/command-palette.blade.php | 10 ++++++++++ resources/views/docs/data-grid.blade.php | 14 ++++++++++++++ resources/views/docs/datepicker.blade.php | 12 ++++++++++++ resources/views/docs/drawer.blade.php | 9 +++++++++ resources/views/docs/dropmenu.blade.php | 10 ++++++++++ resources/views/docs/filepicker.blade.php | 12 ++++++++++++ resources/views/docs/popover.blade.php | 10 ++++++++++ resources/views/docs/rating.blade.php | 8 ++++++++ resources/views/docs/select.blade.php | 13 +++++++++++++ resources/views/docs/sidebar.blade.php | 11 +++++++++++ resources/views/docs/slider.blade.php | 9 +++++++++ resources/views/docs/sortable.blade.php | 11 +++++++++++ resources/views/docs/stepper.blade.php | 10 ++++++++++ resources/views/docs/tab.blade.php | 10 ++++++++++ resources/views/docs/timepicker.blade.php | 7 +++++++ 16 files changed, 164 insertions(+) diff --git a/resources/views/docs/colorpicker.blade.php b/resources/views/docs/colorpicker.blade.php index 11af7cd6..41a25cf4 100644 --- a/resources/views/docs/colorpicker.blade.php +++ b/resources/views/docs/colorpicker.blade.php @@ -132,11 +132,19 @@ class="shadow-sm" /> +

Using Colorpicker Inside Livewire

+

+ When a colour is picked, the value field dispatches a real, native change event, so Livewire's + wire:model picks it up without any extra work on your part. The bindings that drive the picker + are safe to re-run, so a Livewire re-render will not leave behind duplicate listeners. +

+ The source file for this component is available in resources > views > components > bladewind > colorpicker.blade.php + diff --git a/resources/views/docs/command-palette.blade.php b/resources/views/docs/command-palette.blade.php index 0e337edc..38faa04d 100644 --- a/resources/views/docs/command-palette.blade.php +++ b/resources/views/docs/command-palette.blade.php @@ -173,6 +173,15 @@ class="app-command-palette" <x-slot:footer>Signed in as Ama Mensah</x-slot:footer> </x-bladewind::command-palette> +

Using Command Palette Inside Livewire

+

+ Whether the palette is open, and the current search filter, live in the palette's own DOM rather than in Livewire's + component state. If a Livewire component re-renders this markup for a reason that has nothing to do with the palette, it + resets to closed. If your palette lives inside a component that can re-render for other reasons, wrap the palette in + wire:ignore. The bindings that drive the palette are delegated and safe to re-run, so a + re-render will not leave behind duplicate listeners. +

+ The source files for this component are available in resources > views > components > bladewind > command-palette @@ -185,6 +194,7 @@ class="app-command-palette" + diff --git a/resources/views/docs/data-grid.blade.php b/resources/views/docs/data-grid.blade.php index f86e452d..f4482564 100644 --- a/resources/views/docs/data-grid.blade.php +++ b/resources/views/docs/data-grid.blade.php @@ -457,6 +457,19 @@ +

Using Data Grid Inside Livewire

+

+ Client-side sorting, searching, pagination, and row selection all live in the grid's own DOM, in attributes and checkbox + state, rather than in Livewire's component state. This means those interactions work fine on their own even inside a + Livewire component. What can still catch you out is an unrelated re-render, one that happens for a reason that has nothing + to do with the grid. Because that state is not mirrored back to Livewire, such a re-render can reset the current page, the + sort order, or the selection. If your grid lives inside a component that re-renders for other reasons, wrap the grid in + wire:ignore. If you would rather have the grid's state live in Livewire itself, set + client-sort="false" and client-search="false" and drive the grid + from Livewire using the before-* and *-change events described + above. +

+ The source files for this component are available in resources > views > components > bladewind > data-grid @@ -491,6 +504,7 @@ + diff --git a/resources/views/docs/datepicker.blade.php b/resources/views/docs/datepicker.blade.php index 7989dc78..6db886b7 100644 --- a/resources/views/docs/datepicker.blade.php +++ b/resources/views/docs/datepicker.blade.php @@ -331,6 +331,17 @@ class="shadow-sm" /> Read the notes on how to modify the Calendar translations +

Using Datepicker Inside Livewire

+

+ When a date is picked, the field dispatches a real, native change event, so Livewire's + wire:model picks up the selection without any extra work on your part. The calendar popup keeps + track of whether it is open or closed outside of the DOM that Livewire manages, so if a Livewire component re-renders this + markup for a reason that has nothing to do with the datepicker, the popup resets to closed. If you find that happening, + wrap the field in wire:ignore so Livewire leaves that part of the page alone. The component also + guards against a Livewire re-render building a second calendar popup, which used to happen on every re-render and left + orphaned popups behind on the page. +

+ @@ -339,6 +350,7 @@ class="shadow-sm" /> + diff --git a/resources/views/docs/drawer.blade.php b/resources/views/docs/drawer.blade.php index 973500f4..e1594b6a 100644 --- a/resources/views/docs/drawer.blade.php +++ b/resources/views/docs/drawer.blade.php @@ -227,6 +227,14 @@ class="customer-profile-drawer"> Customer profile content </x-bladewind::drawer> +

Using Drawer Inside Livewire

+

+ Whether the drawer is open or closed lives in the drawer's own DOM rather than in Livewire's component state. If a Livewire + component re-renders this markup for a reason that has nothing to do with the drawer, it silently closes. This matters most + for a drawer that can stay open for a while, such as a filter panel or a form, inside a component that can also re-render + for other reasons. In that situation, wrap the drawer in wire:ignore so Livewire leaves it alone. +

+ The source file for this component is available in resources > views > components > bladewind > drawer.blade.php @@ -245,6 +253,7 @@ class="customer-profile-drawer"> + diff --git a/resources/views/docs/dropmenu.blade.php b/resources/views/docs/dropmenu.blade.php index 6061e10a..4ad2e355 100644 --- a/resources/views/docs/dropmenu.blade.php +++ b/resources/views/docs/dropmenu.blade.php @@ -835,6 +835,15 @@ class="p-2"> +

Using Dropmenu Inside Livewire

+

+ The menu keeps track of whether it is open or closed outside of the DOM that Livewire manages, so if a Livewire component + re-renders this markup for a reason that has nothing to do with the menu, the menu resets to closed. If you find that happening, + wrap the trigger and the menu in wire:ignore so Livewire leaves that part of the page alone. + The component also guards against a Livewire re-render creating a second copy of itself, so re-rendering it will not leave + behind duplicate click listeners on the page. +

+ The source file for this component is available in resources > views > components > bladewind > dropmenu > index.blade.php, resources > views > components > bladewind > dropmenu > item.blade.php @@ -848,6 +857,7 @@ class="p-2"> + diff --git a/resources/views/docs/filepicker.blade.php b/resources/views/docs/filepicker.blade.php index 4dcf2b37..d4ec4e6a 100644 --- a/resources/views/docs/filepicker.blade.php +++ b/resources/views/docs/filepicker.blade.php @@ -878,6 +878,17 @@ public function base64_upload(Request $request)

+

Using Filepicker Inside Livewire

+

+ The component guards against a Livewire re-render building a second FilePond instance, and a second Cropper.js instance when + cropping is enabled, around the same field. Before this guard existed, every re-render left the previous instance and its DOM + behind. When base64 mode is used, the hidden field it creates for each file dispatches a real, native + change event, so Livewire's wire:model picks it up. FilePond manages + its own DOM inside the field while a file is being added, cropped, or uploaded, so if the filepicker sits inside a Livewire + component that can re-render for reasons unrelated to the picker while that is happening, wrap the picker in + wire:ignore to keep Livewire from interfering. +

+ @@ -897,6 +908,7 @@ public function base64_upload(Request $request) + diff --git a/resources/views/docs/popover.blade.php b/resources/views/docs/popover.blade.php index 3caae359..e6dc3c52 100644 --- a/resources/views/docs/popover.blade.php +++ b/resources/views/docs/popover.blade.php @@ -284,6 +284,15 @@ class="rounded-lg"> +

Using Popover Inside Livewire

+

+ The popover keeps track of whether it is open or closed outside of the DOM that Livewire manages, so if a Livewire component + re-renders this markup for a reason that has nothing to do with the popover, the popover resets to closed. If you find that + happening, wrap the trigger and the popover in wire:ignore so Livewire leaves that part of the + page alone. The component also guards against a Livewire re-render creating a second copy of itself, so re-rendering it + will not leave behind duplicate click listeners on the page. +

+ The source file for this component is available in resources > views > components > bladewind > popover > index.blade.php @@ -299,6 +308,7 @@ class="rounded-lg"> + diff --git a/resources/views/docs/rating.blade.php b/resources/views/docs/rating.blade.php index 093388bc..f5cd2aab 100644 --- a/resources/views/docs/rating.blade.php +++ b/resources/views/docs/rating.blade.php @@ -298,6 +298,13 @@ +

Using Rating Inside Livewire

+

+ When a star is picked, the rating value field dispatches a real, native change event, so + Livewire's wire:model picks it up without any extra work on your part. The click and keyboard + bindings that drive the stars are safe to re-run, so a Livewire re-render will not leave behind duplicate listeners. +

+ The source file for this component is available in resources > views > components > bladewind > rating.blade.php @@ -308,6 +315,7 @@ + diff --git a/resources/views/docs/select.blade.php b/resources/views/docs/select.blade.php index a2513b8b..9b5fc0e2 100644 --- a/resources/views/docs/select.blade.php +++ b/resources/views/docs/select.blade.php @@ -1613,6 +1613,18 @@ function only accepts 'value' because the 'label' is not needed. +

Using Select Inside Livewire

+

+ The selected value is written to a hidden field that dispatches a real, native change event, the same + kind of event a plain HTML select would dispatch. This means Livewire's wire:model picks up a + selection without any extra work on your part. The part that does need attention is the dropdown's own open and closed state, + along with its search filter if the select is searchable. Both of those live outside the DOM that Livewire manages, so if a + Livewire component re-renders this markup for a reason that has nothing to do with the select, they reset. If that happens in + your application, wrap the select in wire:ignore so Livewire leaves it alone. The component also + guards against a Livewire re-render creating a second copy of itself, so re-rendering it will not leave behind duplicate click + listeners on the page. +

+ The source file for this component is available in resources > views > components > bladewind > select > index.blade.php and resources > views > components > bladewind > select > item.blade.php @@ -1650,6 +1662,7 @@ function only accepts 'value' because the 'label' is not needed. + diff --git a/resources/views/docs/slider.blade.php b/resources/views/docs/slider.blade.php index 5535c5b3..210541bb 100644 --- a/resources/views/docs/slider.blade.php +++ b/resources/views/docs/slider.blade.php @@ -201,6 +201,14 @@ class="m-0" /> +

Using Slider Inside Livewire

+

+ As the slider is dragged, the hidden value field dispatches a real, native change event, so + Livewire's wire:model picks it up without any extra work on your part. The slider's handlers are + assigned as a single property rather than added as separate listeners, so a Livewire re-render simply replaces that + assignment instead of stacking up duplicates. +

+ The source file for this component is available in resources > views > components > bladewind > slider.blade.php @@ -209,6 +217,7 @@ class="m-0" /> + diff --git a/resources/views/docs/sortable.blade.php b/resources/views/docs/sortable.blade.php index 5a6bbd7f..71dc68d1 100644 --- a/resources/views/docs/sortable.blade.php +++ b/resources/views/docs/sortable.blade.php @@ -364,6 +364,16 @@ function saveOrder(order, event) { +

Using Sortable Inside Livewire

+

+ The component guards against a Livewire re-render creating a second copy of the drag and drop instance for the same list. + When input-name is set, the hidden field that stores the current order now dispatches a real, + native change event on every reorder, so Livewire's wire:model picks + it up. The order itself is runtime state kept in the DOM rather than in Livewire's component state, so if the list sits + inside a component that can re-render for reasons unrelated to the list, wrap the list in + wire:ignore. Otherwise a reorder in progress can be reset partway through. +

+ The source file for this component is available in resources > views > components > bladewind > sortable > index.blade.php @@ -378,6 +388,7 @@ function saveOrder(order, event) { + diff --git a/resources/views/docs/stepper.blade.php b/resources/views/docs/stepper.blade.php index 81658419..c383ff26 100644 --- a/resources/views/docs/stepper.blade.php +++ b/resources/views/docs/stepper.blade.php @@ -386,6 +386,15 @@ class="profile-step" /> </x-bladewind::stepper.content> </x-bladewind::stepper> +

Using Stepper Inside Livewire

+

+ The current step lives in the stepper's own DOM rather than in Livewire's component state. If a Livewire component + re-renders this markup for a reason that has nothing to do with the stepper, the current step resets back to its initial + value. If your stepper lives inside a component that can re-render for other reasons, wrap the stepper in + wire:ignore. The bindings that drive the stepper are delegated and safe to re-run, so a + re-render will not leave behind duplicate listeners. +

+ The source file for this component is available in resources > views > components > bladewind > stepper > index.blade.php @@ -409,6 +418,7 @@ class="profile-step" /> + diff --git a/resources/views/docs/tab.blade.php b/resources/views/docs/tab.blade.php index b4fea35e..0e4998f4 100644 --- a/resources/views/docs/tab.blade.php +++ b/resources/views/docs/tab.blade.php @@ -663,6 +663,15 @@ class="border border-gray-100" resources > views > components > bladewind > tab > content.blade.php
+

Using Tab Group Inside Livewire

+

+ Which tab is active lives in the tab group's own DOM rather than in Livewire's component state. If a Livewire component + re-renders this markup for a reason that has nothing to do with the tabs, the active tab resets back to its initial value. + If your tab group lives inside a component that can re-render for other reasons, wrap the tab group in + wire:ignore. The bindings that drive the tabs are delegated and safe to re-run, so a re-render + will not leave behind duplicate listeners. +

+ @@ -670,6 +679,7 @@ class="border border-gray-100" + diff --git a/resources/views/docs/timepicker.blade.php b/resources/views/docs/timepicker.blade.php index 1cd859de..ba55d39b 100644 --- a/resources/views/docs/timepicker.blade.php +++ b/resources/views/docs/timepicker.blade.php @@ -216,9 +216,16 @@ The source language (translation) files for this component are available in lang/[lang]/timepicker.php
+

Using Timepicker Inside Livewire

+

+ When a time is set or cleared, the value field dispatches a real, native change event, so + Livewire's wire:model picks it up without any extra work on your part. The bindings that drive + the timepicker are safe to re-run, so a Livewire re-render will not leave behind duplicate listeners. +

 

+ +``` + +Set `close-after-confirm="false"` if you would rather close the dialog yourself — for example from inside the +`onConfirm` promise's own `.then()`, after also updating the rest of the page. + +## Backdrop + +Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default — a destructive action should be +explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set `backdrop-can-close="true"` to +restore Modal's usual behaviour. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | _(auto-generated)_ | Unique identifier used by `showModal()` / `hideModal()`. | +| title | Are you sure? | Dialog heading. | +| tone | danger | `danger` \| `warning` \| `info` \| `primary` | +| confirmLabel | Confirm | Label on the confirm button. | +| cancelLabel | Cancel | Label on the cancel button. | +| onConfirm | _(blank)_ | Raw JS expression run on confirm, wrapped in a function that may return a Promise. Blank makes Confirm a plain close. | +| closeAfterConfirm | true | Close the dialog once `onConfirm`'s promise resolves. | +| backdropCanClose | false | Unlike Modal, defaults to false. | +| size | small | Any Modal size: `tiny` \| `small` \| `medium` \| `big` \| `large` \| `xl` \| `omg` | +| icon | _(blank)_ | Overrides the icon `tone` would otherwise pick, using any Heroicons name. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..0a706fae 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -43,6 +43,7 @@ Start here for installation, configuration, and theming. | Input | `x-bladewind::input` | [input.md](input.md) | | List View | `x-bladewind::list-view` | [list-view.md](list-view.md) | | Modal | `x-bladewind::modal` | [modal.md](modal.md) | +| Confirm Dialog | `x-bladewind::confirm-dialog` | [confirm-dialog.md](confirm-dialog.md) | | Notification | `x-bladewind::notification` | [notification.md](notification.md) | | Number | `x-bladewind::number` | [number.md](number.md) | | Popover | `x-bladewind::popover` | [popover.md](popover.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..e4978b60 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -27,6 +27,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..91d47879 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -75,6 +75,7 @@ ['Sidebar', 'sidebar', 'Build responsive application navigation with nested groups and mobile Drawer presentation.'], ['Command Palette', 'command-palette', 'Launch actions from a searchable, keyboard-first dialog.'], ['Modal', 'modal', 'Focus attention on confirmations, forms and details.'], + ['Confirm Dialog', 'confirm-dialog', 'Gate destructive actions with a tone-aware, async-ready confirmation.'], ['Popover', 'popover', 'Reveal contextual content beside a trigger.'], ['Process Indicator', 'process-indicator', 'Show progress through a multi-step workflow.'], ['Stepper', 'stepper', 'Guide users through named linear or non-linear workflows.'], diff --git a/resources/views/docs/confirm-dialog.blade.php b/resources/views/docs/confirm-dialog.blade.php new file mode 100644 index 00000000..08cd87cb --- /dev/null +++ b/resources/views/docs/confirm-dialog.blade.php @@ -0,0 +1,143 @@ + + Confirm Dialog Component + Confirm Dialog + +

+ A purpose-built confirmation modal for destructive or consequential actions — deleting a record, cancelling a + subscription, discarding unsaved work. It composes Modal rather than + duplicating it, and adds what a plain modal does not: a tone that picks a sensible icon and confirm colour for + you, a backdrop that will not dismiss it by accident, and an async pending state for the confirm action + itself. +

+ + + This will permanently remove the user and everything associated with their account. This cannot be undone. + + Delete user + +
+        
+            <x-bladewind::confirm-dialog name="deleteUser" title="Delete this user?">
+                This will permanently remove the user and everything associated with their account. This cannot be undone.
+            </x-bladewind::confirm-dialog>
+            <x-bladewind::button onclick="showModal('deleteUser')">Delete user</x-bladewind::button>
+        
+    
+

+ Like Modal, a confirm dialog is opened by name with the showModal() helper — give + it a unique name and call showModal('name') from + anywhere on the page. +

+ +

Tone

+

+ tone picks the icon and the confirm button's colour in one attribute: + danger (default, for destructive actions), warning, + info, or primary (no icon, the button's default + colour — for a consequential but non-destructive confirmation). +

+ +
+        
+            <x-bladewind::confirm-dialog name="leavePage" tone="warning" title="Leave without saving?">
+                Your changes have not been saved yet.
+            </x-bladewind::confirm-dialog>
+        
+    
+ +

An async confirm action

+

+ Pass onConfirm as a raw JavaScript expression, wrapped internally in a function + that may return a Promise. While that promise is pending, both buttons disable + and the confirm button shows a spinner. Resolving it closes the dialog; rejecting it re-enables the buttons + and leaves the dialog open, so you can surface your own error state before the user retries. +

+ +
+        
+            <x-bladewind::confirm-dialog
+                name="deleteUser"
+                title="Delete this user?"
+                onConfirm="deleteUser(:userId)">
+                This will permanently remove the user. This cannot be undone.
+            </x-bladewind::confirm-dialog>
+
+            <script>
+                function deleteUser(id) {
+                    return fetch(`/users/${id}`, { method: 'DELETE' });
+                }
+            </script>
+        
+    
+

+ Set close-after-confirm="false" if you would rather close the dialog yourself — + for example from inside the onConfirm promise's own .then(), + after also updating the rest of the page. +

+ +

Backdrop

+

+ Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default — a destructive action should be + explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set + backdrop-can-close="true" to restore Modal's usual behaviour. +

+ +

Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..bdeedc1f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -43,6 +43,7 @@ Route::view('component/input-group', 'docs/input-group'); Route::view('component/list-view', 'docs/list'); Route::view('component/modal', 'docs/modal'); +Route::view('component/confirm-dialog', 'docs/confirm-dialog'); Route::view('component/notification', 'docs/notification'); Route::view('component/number', 'docs/number'); Route::view('component/popover', 'docs/popover'); From 22ac912f7bf3e818bdc9e7e8471dcd458bfad952 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 03:22:11 +0000 Subject: [PATCH 06/44] Add Context Menu component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/context-menu package. --- mcp/context-menu.md | 92 ++++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/context-menu.blade.php | 213 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 309 insertions(+) create mode 100644 mcp/context-menu.md create mode 100644 resources/views/docs/context-menu.blade.php diff --git a/mcp/context-menu.md b/mcp/context-menu.md new file mode 100644 index 00000000..1773b4f3 --- /dev/null +++ b/mcp/context-menu.md @@ -0,0 +1,92 @@ +--- +title: Context Menu Component +component: x-bladewind::context-menu +url: /component/context-menu +--- + +# Context Menu + +`x-bladewind::context-menu` gives any region a right-click action menu — a table row, a card, a canvas element, +anything. It follows the same visual language as Dropmenu, but opens at the pointer instead of anchored to a trigger, +and adds nested submenus, disabled items, and separators. Placement is always viewport-aware: the menu (and any +submenu) flips away from whichever edge it would otherwise overflow. + +## Basic Usage + +```blade + + +
Right-click anywhere in this box
+
+ + Edit + Duplicate + + Delete +
+``` + +The `region` slot is the area that responds to a right-click (or the keyboard context-menu key — both dispatch the +same browser `contextmenu` event, so no separate keyboard wiring is needed to trigger it). Every other child is a +menu item, in the order they should appear. + +## Disabled items + +Set `disabled="true"` on an item to grey it out and remove it from pointer and keyboard interaction entirely — it is +skipped by arrow-key navigation and cannot be clicked or activated. + +```blade +Restricted action +``` + +## Tone + +`tone="danger"` tints an item's label and icon red, for destructive actions. The default is `normal`. + +## Nested submenus + +Give an item a `submenu` slot containing further `x-bladewind::context-menu.item` elements to turn it into a submenu +trigger. A submenu opens on hover, click, or the right arrow key, and can itself contain another submenu — nesting is +unlimited. The left arrow key or Escape closes the deepest open submenu and returns focus to its parent item. + +```blade + + New + + File + Folder + + +``` + +## Keyboard support + +| Key | Action | +|---|---| +| Down / Up | Move focus to the next or previous enabled item. | +| Right | Open the focused item's submenu, if it has one. | +| Left | Close the current submenu and refocus its parent item. | +| Enter / Space | Activate the focused item, or open its submenu. | +| Home / End | Jump to the first or last enabled item. | +| Escape | Close the current submenu, or the whole menu if none is open. | + +## Attributes + +### Context Menu + +| Attribute | Default | Description | +|---|---|---| +| name | _(auto-generated)_ | Uniquely identifies this instance in the DOM and its JavaScript. | +| disableNative | true | false lets the browser's own context menu show and disables this component entirely. | +| padded | true | Padding inside the menu list. | +| class | _(blank)_ | Additional CSS classes for the menu list. | + +### Context Menu Item + +| Attribute | Default | Description | +|---|---|---| +| icon | _(blank)_ | Any Heroicons name. | +| disabled | false | Greys the item out and removes it from pointer and keyboard interaction. | +| tone | normal | `normal` \| `danger` | +| divider | false | Renders a separator line instead of an item; ignores every other prop. | +| submenu | _(none)_ | A named slot of further items, turning this item into a submenu trigger. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..f110425b 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -36,6 +36,7 @@ Start here for installation, configuration, and theming. | Color Picker | `x-bladewind::colorpicker` | [colorpicker.md](colorpicker.md) | | Date Picker | `x-bladewind::datepicker` | [datepicker.md](datepicker.md) | | Drop Menu | `x-bladewind::dropmenu` | [dropmenu.md](dropmenu.md) | +| Context Menu | `x-bladewind::context-menu` | [context-menu.md](context-menu.md) | | Empty State | `x-bladewind::empty-state` | [empty-state.md](empty-state.md) | | Filepicker | `x-bladewind::filepicker` | [filepicker.md](filepicker.md) | | Horizontal Line Graph | `x-bladewind::horizontal-line-graph` | [horizontal-line-graph.md](horizontal-line-graph.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..82bf9db8 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -18,6 +18,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..4578f875 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -71,6 +71,7 @@ ['Accordion', 'accordion', 'Organize dense information into expandable sections.'], ['Centered Content', 'centered-content', 'Center focused content within the viewport.'], ['Dropmenu', 'dropmenu', 'Present compact menus from any trigger.'], + ['Context Menu', 'context-menu', 'Give any region a right-click menu with nested submenus.'], ['Drawer', 'drawer', 'Reveal supporting content from any viewport edge.'], ['Sidebar', 'sidebar', 'Build responsive application navigation with nested groups and mobile Drawer presentation.'], ['Command Palette', 'command-palette', 'Launch actions from a searchable, keyboard-first dialog.'], diff --git a/resources/views/docs/context-menu.blade.php b/resources/views/docs/context-menu.blade.php new file mode 100644 index 00000000..c38b91a4 --- /dev/null +++ b/resources/views/docs/context-menu.blade.php @@ -0,0 +1,213 @@ + + Context Menu Component + Context Menu + +

+ x-bladewind::context-menu gives any region a right-click action menu — a table + row, a card, a canvas element, anything. It follows the same visual language as + Dropmenu, but opens at the pointer instead of anchored to a trigger, and + adds nested submenus, disabled items, and separators. Placement is always viewport-aware: the menu (and any + submenu) flips away from whichever edge it would otherwise overflow. +

+ +
+ + +
Right-click anywhere in this box
+
+ + Edit + Duplicate + + Delete +
+
+ +
+        
+            <x-bladewind::context-menu name="basicMenu">
+                <x-slot:region>
+                    <div>Right-click anywhere in this box</div>
+                </x-slot:region>
+
+                <x-bladewind::context-menu.item icon="pencil-square">Edit</x-bladewind::context-menu.item>
+                <x-bladewind::context-menu.item icon="document-duplicate">Duplicate</x-bladewind::context-menu.item>
+                <x-bladewind::context-menu.item divider="true" />
+                <x-bladewind::context-menu.item icon="trash" tone="danger">Delete</x-bladewind::context-menu.item>
+            </x-bladewind::context-menu>
+        
+    
+

+ The region slot is the area that responds to a right-click (or the keyboard + context-menu key — both dispatch the same browser contextmenu event, so no + separate keyboard wiring is needed to trigger it). Every other child is a menu item, in the order they should + appear. +

+ +

Disabled items

+

+ Set disabled="true" on an item to grey it out and remove it from pointer and + keyboard interaction entirely — it is skipped by arrow-key navigation and cannot be clicked or activated. +

+ +
+        
+            <x-bladewind::context-menu.item icon="lock-closed" disabled="true">Restricted action</x-bladewind::context-menu.item>
+        
+    
+ +

Tone

+

+ tone="danger" tints an item's label and icon red, for destructive actions like + the Delete item above. The default is normal. +

+ + +

+ Give an item a submenu slot containing further + x-bladewind::context-menu.item elements to turn it into a submenu trigger. A + submenu opens on hover, click, or , and can itself contain another submenu — + nesting is unlimited. or Escape closes the deepest + open submenu and returns focus to its parent item. +

+ +
+ + +
Right-click for a submenu
+
+ + + New + + File + Folder + + + Rename +
+
+ +
+        
+            <x-bladewind::context-menu.item icon="folder-plus">
+                New
+                <x-slot:submenu>
+                    <x-bladewind::context-menu.item icon="document">File</x-bladewind::context-menu.item>
+                    <x-bladewind::context-menu.item icon="folder">Folder</x-bladewind::context-menu.item>
+                </x-slot:submenu>
+            </x-bladewind::context-menu.item>
+        
+    
+ +

Keyboard support

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

Full List Of Attributes

+

Context Menu

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Context Menu Item

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > context-menu > index.blade.php, + resources > views > components > bladewind > context-menu > item.blade.php + + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..0bef4966 100644 --- a/routes/web.php +++ b/routes/web.php @@ -30,6 +30,7 @@ Route::view('component/colorpicker', 'docs/colorpicker'); Route::view('component/command-palette', 'docs/command-palette'); Route::view('component/dropmenu', 'docs/dropmenu'); +Route::view('component/context-menu', 'docs/context-menu'); Route::view('component/drawer', 'docs/drawer'); Route::view('component/empty-state', 'docs/emptystate'); Route::view('component/filepicker', 'docs/filepicker'); From 4b942f2256b83c9433fabf6366275de976ca8b59 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 03:38:04 +0000 Subject: [PATCH 07/44] Add side nav and active-nav-item script to Divider docs page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Brings it in line with the established component-page structure (see tab.blade.php, dropmenu.blade.php) — an in-page anchor nav and highlighting the current page in the components sidebar. --- resources/views/docs/divider.blade.php | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/resources/views/docs/divider.blade.php b/resources/views/docs/divider.blade.php index da787c76..66b56499 100644 --- a/resources/views/docs/divider.blade.php +++ b/resources/views/docs/divider.blade.php @@ -16,7 +16,7 @@ -

Label

+

Label

Pass label to split the line around centered text — the familiar "or" divider between a form and an alternate action. @@ -31,7 +31,7 @@

A label only applies to a horizontal divider — it is ignored on a vertical one.

-

Orientation

+

Orientation

Set orientation to vertical to separate content side-by-side, such as items in a toolbar. A vertical divider stretches to fill its container's height, so give @@ -58,7 +58,7 @@ -

Spacing

+

Spacing

spacing controls the margin either side of the line — none, small, medium (default), or large. @@ -76,7 +76,7 @@ -

Colour

+

Colour

color tints the line and label with any of BladewindUI's accepted colours instead of the neutral slate default. @@ -90,7 +90,7 @@ -

Decorative vs semantic

+

Decorative vs semantic

By default a divider is purely visual: it renders role="none" and aria-hidden="true", so assistive technology skips it entirely. Set @@ -143,4 +143,19 @@

+ + + + + + + + + + + + + From f34128ac31d1de5c127503573c990c991b36afd7 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 03:38:42 +0000 Subject: [PATCH 08/44] Add side nav and active-nav-item script to Confirm Dialog docs page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Brings it in line with the established component-page structure (see tab.blade.php, dropmenu.blade.php) — an in-page anchor nav and highlighting the current page in the components sidebar. --- resources/views/docs/confirm-dialog.blade.php | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/resources/views/docs/confirm-dialog.blade.php b/resources/views/docs/confirm-dialog.blade.php index 08cd87cb..be9ca1f0 100644 --- a/resources/views/docs/confirm-dialog.blade.php +++ b/resources/views/docs/confirm-dialog.blade.php @@ -29,7 +29,7 @@ anywhere on the page.

-

Tone

+

Tone

tone picks the icon and the confirm button's colour in one attribute: danger (default, for destructive actions), warning, @@ -45,7 +45,7 @@ -

An async confirm action

+

An async confirm action

Pass onConfirm as a raw JavaScript expression, wrapped internally in a function that may return a Promise. While that promise is pending, both buttons disable @@ -75,14 +75,14 @@ function deleteUser(id) { after also updating the rest of the page.

-

Backdrop

+

Backdrop

Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default — a destructive action should be explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set backdrop-can-close="true" to restore Modal's usual behaviour.

-

Attributes

+

Full List Of Attributes

@@ -140,4 +140,17 @@ function deleteUser(id) { + + + + + + + + + + + From 90fe6d8e61b80d785e2c0aee78eff978e57ed5e9 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 03:48:33 +0000 Subject: [PATCH 09/44] Add Currency Input component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/currency-input package. --- mcp/currency-input.md | 61 +++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/currency-input.blade.php | 149 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 214 insertions(+) create mode 100644 mcp/currency-input.md create mode 100644 resources/views/docs/currency-input.blade.php diff --git a/mcp/currency-input.md b/mcp/currency-input.md new file mode 100644 index 00000000..66df37a6 --- /dev/null +++ b/mcp/currency-input.md @@ -0,0 +1,61 @@ +--- +title: Currency Input Component +component: x-bladewind::currency-input +url: /component/currency-input +--- + +# Currency Input + +`x-bladewind::currency-input` wraps Input's existing money-masking (thousands separators, a fixed decimal precision) +and adds the one thing that mask alone cannot: the correct currency symbol, in the correct position, with separators +written the way the given locale actually writes them. + +## Basic Usage + +```blade + +``` + +The default `currency` is `USD` and the default `locale` is `en-US`, both overridable globally via +`config('bladewind.currency_input')`. + +## Currency and locale + +Set `currency` to any ISO 4217 code. When PHP's `intl` extension is installed, `locale` (a BCP 47 tag) decides where +the symbol sits and which characters separate thousands and decimals — for example, French writes `1 234,56 €` where +U.S. English writes `$1,234.56`, for the same amount in the same currency. + +```blade + + +``` + +Without the `intl` extension, every currency still gets a sensible symbol (a small built-in table covers the common +ones; anything else falls back to the currency code itself) and the correct number of decimal places — zero for +currencies like `JPY` that have no minor unit, two for everything else — always shown as a prefix with `.` and `,` +separators. + +## Overriding individual parts + +Any part of the derived format can be set explicitly, which always wins over whatever `currency`/`locale` would +otherwise produce: `symbol`, `symbolPosition` (`prefix` or `suffix`), `decimalSeparator`, `thousandsSeparator`, and +`precision`. + +```blade + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| currency | USD | Any ISO 4217 currency code. | +| locale | en-US | A BCP 47 locale tag. Only affects output when PHP's intl extension is installed. | +| symbol | _(derived)_ | Overrides the currency symbol entirely. | +| symbolPosition | _(derived)_ | `prefix` \| `suffix` | +| decimalSeparator | _(derived)_ | Character separating the decimal part. | +| thousandsSeparator | _(derived)_ | Character grouping thousands. | +| precision | _(derived)_ | Number of decimal places. 0 disables decimals entirely. | +| label | _(blank)_ | Label displayed on the field. | +| required | false | Marks the field as required. | +| size | regular | Any Input size. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..bedc7296 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -45,6 +45,7 @@ Start here for installation, configuration, and theming. | Modal | `x-bladewind::modal` | [modal.md](modal.md) | | Notification | `x-bladewind::notification` | [notification.md](notification.md) | | Number | `x-bladewind::number` | [number.md](number.md) | +| Currency Input | `x-bladewind::currency-input` | [currency-input.md](currency-input.md) | | Popover | `x-bladewind::popover` | [popover.md](popover.md) | | Process Indicator | `x-bladewind::processing` | [process-indicator.md](process-indicator.md) | | Progress Bar | `x-bladewind::progress-bar` | [progress-bar.md](progress-bar.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..2f7f78f4 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -29,6 +29,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..9bb26dbc 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -22,6 +22,7 @@ ['Timepicker', 'timepicker', 'Choose a time through an accessible interface.'], ['Toggle', 'toggle', 'Switch settings on or off with immediate feedback.'], ['Verification Code', 'verification-code', 'Capture OTP and verification digits cleanly.'], + ['Currency Input', 'currency-input', 'Capture money amounts with locale-aware symbols and separators.'], ], ], [ diff --git a/resources/views/docs/currency-input.blade.php b/resources/views/docs/currency-input.blade.php new file mode 100644 index 00000000..febca93f --- /dev/null +++ b/resources/views/docs/currency-input.blade.php @@ -0,0 +1,149 @@ + + Currency Input Component + Currency Input + +

+ x-bladewind::currency-input wraps Input's existing + money-masking (thousands separators, a fixed decimal precision) and adds the one thing that mask alone + cannot: the correct currency symbol, in the correct position, with separators written the way the given + locale actually writes them. +

+ + + +
+        
+            <x-bladewind::currency-input name="price" label="Price" />
+        
+    
+

+ The default currency is USD and the default + locale is en-US, both overridable globally via + config('bladewind.currency_input'). +

+ +

Currency and locale

+

+ Set currency to any ISO 4217 code. When PHP's intl + extension is installed, locale (a BCP 47 tag) decides where the symbol sits and + which characters separate thousands and decimals — for example, French writes + 1 234,56 € where U.S. English writes $1,234.56, + for the same amount in the same currency. +

+ +
+ + + + +
+ +
+        
+            <x-bladewind::currency-input name="price_usd" label="US Dollar" currency="USD" locale="en-US" />
+            <x-bladewind::currency-input name="price_eur" label="Euro (French formatting)" currency="EUR" locale="fr-FR" />
+            <x-bladewind::currency-input name="price_ghs" label="Ghanaian Cedi" currency="GHS" locale="en-GH" />
+            <x-bladewind::currency-input name="price_jpy" label="Japanese Yen (no decimals)" currency="JPY" locale="ja-JP" />
+        
+    
+

+ Without the intl extension, every currency still gets a sensible symbol (a small + built-in table covers the common ones; anything else falls back to the currency code itself) and the correct + number of decimal places — zero for currencies like JPY that have no minor unit, + two for everything else — always shown as a prefix with . and + , separators. +

+ +

Overriding individual parts

+

+ Any part of the derived format can be set explicitly, which always wins over whatever + currency/locale would otherwise produce: + symbol, symbolPosition + (prefix or suffix), + decimalSeparator, thousandsSeparator, and + precision. +

+ + + +
+        
+            <x-bladewind::currency-input name="price_custom" label="Custom symbol" symbol="US$" symbol-position="suffix" />
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > currency-input.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..57ad8f9d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -45,6 +45,7 @@ Route::view('component/modal', 'docs/modal'); Route::view('component/notification', 'docs/notification'); Route::view('component/number', 'docs/number'); +Route::view('component/currency-input', 'docs/currency-input'); Route::view('component/popover', 'docs/popover'); Route::view('component/process-indicator', 'docs/process-indicator'); Route::view('component/progress-bar', 'docs/progress-bar'); From 36565c25152200da05a08d5452876e6bad1bfdeb Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 03:58:37 +0000 Subject: [PATCH 10/44] Add Password Meter component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/password-meter package. --- mcp/index.md | 1 + mcp/password-meter.md | 51 +++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/password-meter.blade.php | 104 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 159 insertions(+) create mode 100644 mcp/password-meter.md create mode 100644 resources/views/docs/password-meter.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..a0fd29e3 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -45,6 +45,7 @@ Start here for installation, configuration, and theming. | Modal | `x-bladewind::modal` | [modal.md](modal.md) | | Notification | `x-bladewind::notification` | [notification.md](notification.md) | | Number | `x-bladewind::number` | [number.md](number.md) | +| Password Meter | `x-bladewind::password-meter` | [password-meter.md](password-meter.md) | | Popover | `x-bladewind::popover` | [popover.md](popover.md) | | Process Indicator | `x-bladewind::processing` | [process-indicator.md](process-indicator.md) | | Progress Bar | `x-bladewind::progress-bar` | [progress-bar.md](progress-bar.md) | diff --git a/mcp/password-meter.md b/mcp/password-meter.md new file mode 100644 index 00000000..88c8b5a4 --- /dev/null +++ b/mcp/password-meter.md @@ -0,0 +1,51 @@ +--- +title: Password Meter Component +component: x-bladewind::password-meter +url: /component/password-meter +--- + +# Password Meter + +`x-bladewind::password-meter` watches an existing password field and shows a rules-based strength reading as the +user types — a segmented bar plus a text label, live-updated on every keystroke. It is a standalone companion, not a +wrapper: point it at any password field with `for`, BladewindUI's own or otherwise. + +## Basic Usage + +```blade + + +``` + +`for` is the watched field's `name` (or, failing that, its `id`) — exactly what you already passed the field itself, +nothing extra to keep in sync. + +## How strength is scored + +A password earns up to four points: one for reaching `minLength` characters (8 by default), a second for reaching +`strongLength` (12 by default), and up to two more for character variety — lowercase, uppercase, digits, and symbols +each count, capped at two points so length still matters. Four points is "Strong", one is "Weak", and an empty field +shows nothing at all. + +```blade + +``` + +## Hiding the label + +The bar is always shown; set `show-label="false"` to drop the text readout beside it and rely on the bar's colour +alone. + +```blade + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| for | _(required)_ | The `name` (or `id`) of the password field to watch. | +| showLabel | true | Shows the "Weak" / "Fair" / "Good" / "Strong" text readout. | +| minLength | 8 | Character count that earns the first length point. | +| strongLength | 12 | Character count that earns the second length point. | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..6557d2fb 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -29,6 +29,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..4735caa6 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -22,6 +22,7 @@ ['Timepicker', 'timepicker', 'Choose a time through an accessible interface.'], ['Toggle', 'toggle', 'Switch settings on or off with immediate feedback.'], ['Verification Code', 'verification-code', 'Capture OTP and verification digits cleanly.'], + ['Password Meter', 'password-meter', 'Show live password strength beside any password field.'], ], ], [ diff --git a/resources/views/docs/password-meter.blade.php b/resources/views/docs/password-meter.blade.php new file mode 100644 index 00000000..8c880e41 --- /dev/null +++ b/resources/views/docs/password-meter.blade.php @@ -0,0 +1,104 @@ + + Password Meter Component + Password Meter + +

+ x-bladewind::password-meter watches an existing password field and shows a + rules-based strength reading as the user types — a segmented bar plus a text label, live-updated on every + keystroke. It is a standalone companion, not a wrapper: point it at any password field with + for, BladewindUI's own or otherwise. +

+ +
+ + +
+ +
+        
+            <x-bladewind::input type="password" name="password" label="Password" viewable="true" />
+            <x-bladewind::password-meter for="password" />
+        
+    
+

+ for is the watched field's name (or, failing that, its + id) — exactly what you already passed the field itself, nothing extra to keep in + sync. +

+ +

How strength is scored

+

+ A password earns up to four points: one for reaching minLength characters + (8 by default), a second for reaching strongLength (12 by default), and up to two + more for character variety — lowercase, uppercase, digits, and symbols each count, capped at two points so + length still matters. Four points is "Strong", one is "Weak", and an empty field shows nothing at all. +

+ +
+        
+            <x-bladewind::password-meter for="password" min-length="10" strong-length="16" />
+        
+    
+ +

Hiding the label

+

+ The bar is always shown; set show-label="false" to drop the text readout beside + it and rely on the bar's colour alone. +

+ +
+        
+            <x-bladewind::password-meter for="password" show-label="false" />
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > password-meter.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..5eccd98a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -45,6 +45,7 @@ Route::view('component/modal', 'docs/modal'); Route::view('component/notification', 'docs/notification'); Route::view('component/number', 'docs/number'); +Route::view('component/password-meter', 'docs/password-meter'); Route::view('component/popover', 'docs/popover'); Route::view('component/process-indicator', 'docs/process-indicator'); Route::view('component/progress-bar', 'docs/progress-bar'); From 5cd832547c442aca61e127db66ccdadf145a1a47 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 04:06:38 +0000 Subject: [PATCH 11/44] Add File Preview component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/file-preview package. --- mcp/file-preview.md | 55 ++++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/file-preview.blade.php | 126 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 185 insertions(+) create mode 100644 mcp/file-preview.md create mode 100644 resources/views/docs/file-preview.blade.php diff --git a/mcp/file-preview.md b/mcp/file-preview.md new file mode 100644 index 00000000..2577af70 --- /dev/null +++ b/mcp/file-preview.md @@ -0,0 +1,55 @@ +--- +title: File Preview Component +component: x-bladewind::file-preview +url: /component/file-preview +--- + +# File Preview + +`x-bladewind::file-preview` is the read-only display counterpart to Filepicker — a compact row showing a thumbnail +or file-type icon, the filename, its size, and download/remove actions. Use it for a list of already-uploaded files: +attachments on a record, documents in a table row, files a Filepicker has already accepted. + +## Basic Usage + +```blade + + + +``` + +`size` is plain bytes — the component formats it into B/KB/MB/GB itself. Without a `thumbnail`, the icon is derived +from the filename's extension (PDF, Word, Excel, images, video, audio, archives, and code files all get a distinct +icon; anything unrecognised falls back to a generic document icon). + +## Removing a file + +A remove control shows by default and removes the preview from the DOM directly — nothing to wire up for the common +case of client-side removal from a list the user is still assembling. Pass `on-remove` with your own JavaScript (for +example, an endpoint call) to handle it yourself instead; doing so replaces the default behaviour entirely, the same +pattern Tag's dismiss button uses. + +```blade + +``` + +Set `removable="false"` to drop the control entirely — useful for a purely informational list the viewer cannot edit. + +## Download + +A download link shows automatically whenever `url` is set. Set `downloadable="false"` to keep the link out even when +a URL is present. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | _(blank)_ | Filename to display, and the source of the extension-derived icon. | +| size | _(blank)_ | File size in bytes. A non-numeric value hides the size line. | +| url | _(blank)_ | Link used by the download action. | +| thumbnail | _(blank)_ | An image URL shown in place of the generic file-type icon. | +| icon | _(derived)_ | Overrides the extension-derived icon with any Heroicons name. | +| removable | true | Shows the remove control. | +| downloadable | true | Shows the download link when a `url` is set. | +| onRemove | _(blank)_ | Raw JS run on remove, replacing the default (remove the preview from the DOM). | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..235d18aa 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -38,6 +38,7 @@ Start here for installation, configuration, and theming. | Drop Menu | `x-bladewind::dropmenu` | [dropmenu.md](dropmenu.md) | | Empty State | `x-bladewind::empty-state` | [empty-state.md](empty-state.md) | | Filepicker | `x-bladewind::filepicker` | [filepicker.md](filepicker.md) | +| File Preview | `x-bladewind::file-preview` | [file-preview.md](file-preview.md) | | Horizontal Line Graph | `x-bladewind::horizontal-line-graph` | [horizontal-line-graph.md](horizontal-line-graph.md) | | Icon | `x-bladewind::icon` | [icon.md](icon.md) | | Input | `x-bladewind::input` | [input.md](input.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..c978642e 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -21,6 +21,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..d4c1be8d 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -12,6 +12,7 @@ ['Colorpicker', 'colorpicker', 'Choose colours through a compact visual control.'], ['Datepicker', 'datepicker', 'Select single dates, ranges and preset periods.'], ['Filepicker', 'filepicker', 'Handle drag-and-drop and conventional file selection.'], + ['File Preview', 'file-preview', 'Show an already-uploaded file with download and remove actions.'], ['Input', 'input', 'Capture text with labels, icons, prefixes and validation.'], ['Input Group', 'input-group', 'Combine related controls into one cohesive field.'], ['Number', 'number', 'Capture numeric values with controlled stepping.'], diff --git a/resources/views/docs/file-preview.blade.php b/resources/views/docs/file-preview.blade.php new file mode 100644 index 00000000..97cbc188 --- /dev/null +++ b/resources/views/docs/file-preview.blade.php @@ -0,0 +1,126 @@ + + File Preview Component + File Preview + +

+ x-bladewind::file-preview is the read-only display counterpart to + Filepicker — a compact row showing a thumbnail or file-type icon, the + filename, its size, and download/remove actions. Use it for a list of already-uploaded files: attachments on + a record, documents in a table row, files a Filepicker has already accepted. +

+ +
+ + + +
+ +
+        
+            <x-bladewind::file-preview name="Quarterly report.pdf" size="2621440" url="/files/1" />
+            <x-bladewind::file-preview name="team-photo.jpg" size="843200" thumbnail="/thumbs/team-photo.jpg" url="/files/2" />
+            <x-bladewind::file-preview name="budget.xlsx" size="51200" url="/files/3" />
+        
+    
+

+ size is plain bytes — the component formats it into B/KB/MB/GB itself. Without a + thumbnail, the icon is derived from the filename's extension (PDF, Word, Excel, + images, video, audio, archives, and code files all get a distinct icon; anything unrecognised falls back to a + generic document icon). +

+ +

Removing a file

+

+ A remove control shows by default and removes the preview from the DOM directly — nothing to wire up for the + common case of client-side removal from a list the user is still assembling. Pass + on-remove with your own JavaScript (for example, an endpoint call) to handle it + yourself instead; doing so replaces the default behaviour entirely, the same pattern + Tag's dismiss button uses. +

+ +
+        
+            <x-bladewind::file-preview name="report.pdf" on-remove="deleteAttachment(1)" />
+        
+    
+

+ Set removable="false" to drop the control entirely — useful for a purely + informational list the viewer cannot edit. +

+ +

Download

+

+ A download link shows automatically whenever url is set. Set + downloadable="false" to keep the link out even when a URL is present. +

+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > file-preview.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..5ea01806 100644 --- a/routes/web.php +++ b/routes/web.php @@ -33,6 +33,7 @@ Route::view('component/drawer', 'docs/drawer'); Route::view('component/empty-state', 'docs/emptystate'); Route::view('component/filepicker', 'docs/filepicker'); +Route::view('component/file-preview', 'docs/file-preview'); Route::view('component/horizontal-line-graph', 'docs/horizontal-line-graph'); Route::view('contribute', 'docs/contribute'); Route::view('mcp', 'docs/mcp'); From e7f721e7de3e2d4e3dabb9f3f23afb9e63358e5a Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 12:03:05 +0000 Subject: [PATCH 12/44] Add Transfer List component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/transfer-list package. --- mcp/index.md | 1 + mcp/transfer-list.md | 75 +++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/transfer-list.blade.php | 159 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 238 insertions(+) create mode 100644 mcp/transfer-list.md create mode 100644 resources/views/docs/transfer-list.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..3d9477b7 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -54,6 +54,7 @@ Start here for installation, configuration, and theming. | Select | `x-bladewind::select` | [select.md](select.md) | | Shimmer | `x-bladewind::shimmer` | [shimmer.md](shimmer.md) | | Slider | `x-bladewind::slider` | [slider.md](slider.md) | +| Transfer List | `x-bladewind::transfer-list` | [transfer-list.md](transfer-list.md) | | Sortable | `x-bladewind::sortable` | [sortable.md](sortable.md) | | Spinner | `x-bladewind::spinner` | [spinner.md](spinner.md) | | Statistic | `x-bladewind::statistic` | [statistic.md](statistic.md) | diff --git a/mcp/transfer-list.md b/mcp/transfer-list.md new file mode 100644 index 00000000..09648bf5 --- /dev/null +++ b/mcp/transfer-list.md @@ -0,0 +1,75 @@ +--- +title: Transfer List Component +component: x-bladewind::transfer-list +url: /component/transfer-list +--- + +# Transfer List + +`x-bladewind::transfer-list` moves items between two panels — "Available" and "Selected" — with per-panel search and +select-all, arrow controls in the middle, and a double-click on any row as a shortcut for moving just that one item. +It submits as a normal array field: only items currently in the "Selected" panel are enabled, so the form only ever +sends what is actually selected. + +## Basic Usage + +```blade + +``` + +`items` accepts an array or a JSON string; each item needs at least a `value` and a `label` key (override the key +names with `valueKey`/`labelKey`, exactly like Select). `selected` lists which values start in the right-hand panel. +On submit, this example sends `roles[]` for every item currently on the right. + +## Custom value/label keys + +```blade + +``` + +## Panel labels and size + +Override the panel headings with `availableLabel`/`selectedLabel`, and each panel's height (in pixels) with `height`. + +```blade + +``` + +## Search + +Each panel gets its own search box by default, filtering that panel's rows as you type. Set `searchable="false"` to +remove both boxes — worth doing once a list is short enough that scanning it is faster than typing. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | _(auto-generated)_ | Field name the selected values submit under, as `name[]`. | +| items | [] | Array or JSON string of items, each with a value and a label key. | +| valueKey | value | Key read as each item's value. | +| labelKey | label | Key read as each item's display label. | +| selected | [] | Values that start in the "Selected" panel. | +| availableLabel | Available | Left panel heading. | +| selectedLabel | Selected | Right panel heading. | +| searchable | true | Shows a per-panel search box. | +| height | 260 | Height, in pixels, of each panel. | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..0e75d55e 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -39,6 +39,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..fa80c208 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -18,6 +18,7 @@ ['Radio Button', 'radio-button', 'Choose a single option from a visible group.'], ['Select', 'select', 'Search and choose from single or multiple options.'], ['Slider', 'slider', 'Select a value or range on a visual scale.'], + ['Transfer List', 'transfer-list', 'Move items between available and selected lists.'], ['Textarea', 'textarea', 'Collect longer content with an optional toolbar.'], ['Timepicker', 'timepicker', 'Choose a time through an accessible interface.'], ['Toggle', 'toggle', 'Switch settings on or off with immediate feedback.'], diff --git a/resources/views/docs/transfer-list.blade.php b/resources/views/docs/transfer-list.blade.php new file mode 100644 index 00000000..ec13d7b4 --- /dev/null +++ b/resources/views/docs/transfer-list.blade.php @@ -0,0 +1,159 @@ + + Transfer List Component + Transfer List + +

+ x-bladewind::transfer-list moves items between two panels — "Available" and + "Selected" — with per-panel search and select-all, arrow controls in the middle, and a double-click on any + row as a shortcut for moving just that one item. It submits as a normal array field: only items currently in + the "Selected" panel are enabled, so the form only ever sends what is actually selected. +

+ + + +
+        
+            <x-bladewind::transfer-list
+                name="roles"
+                :items="[
+                    ['value' => 1, 'label' => 'Editor'],
+                    ['value' => 2, 'label' => 'Viewer'],
+                    ['value' => 3, 'label' => 'Admin'],
+                    ['value' => 4, 'label' => 'Billing Manager'],
+                    ['value' => 5, 'label' => 'Support Agent'],
+                ]"
+                :selected="[2]"
+            />
+        
+    
+

+ items accepts an array or a JSON string; each item needs at least a + value and a label key (override the key names with + valueKey/labelKey, exactly like Select). + selected lists which values start in the right-hand panel. On submit, this + example sends roles[] for every item currently on the right. +

+ +

Custom value/label keys

+
+        
+            <x-bladewind::transfer-list
+                name="roles"
+                :items="[['id' => 1, 'name' => 'Editor'], ['id' => 2, 'name' => 'Viewer']]"
+                value-key="id"
+                label-key="name"
+            />
+        
+    
+ +

Panel labels and size

+

+ Override the panel headings with availableLabel/selectedLabel, + and each panel's height (in pixels) with height. +

+ +
+        
+            <x-bladewind::transfer-list
+                name="roles"
+                :items="$items"
+                available-label="Not assigned"
+                selected-label="Assigned"
+                height="180"
+            />
+        
+    
+ + +

+ Each panel gets its own search box by default, filtering that panel's rows as you type. Set + searchable="false" to remove both boxes — worth doing once a list is short enough + that scanning it is faster than typing. +

+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > transfer-list.blade.php + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..5cb7ef34 100644 --- a/routes/web.php +++ b/routes/web.php @@ -56,6 +56,7 @@ Route::view('component/shimmer', 'docs/shimmer'); Route::view('component/sidebar', 'docs/sidebar'); Route::view('component/slider', 'docs/slider'); +Route::view('component/transfer-list', 'docs/transfer-list'); Route::view('component/sortable', 'docs/sortable'); Route::view('component/spinner', 'docs/spinner'); Route::view('component/statistic', 'docs/statistic'); From 3f5579e9c5d47134a8c9d0a246fc100eddf8b240 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 12:24:46 +0000 Subject: [PATCH 13/44] Add Inline Edit component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/inline-edit package. --- mcp/index.md | 1 + mcp/inline-edit.md | 67 +++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/inline-edit.blade.php | 142 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 213 insertions(+) create mode 100644 mcp/inline-edit.md create mode 100644 resources/views/docs/inline-edit.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..a919013b 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -41,6 +41,7 @@ Start here for installation, configuration, and theming. | Horizontal Line Graph | `x-bladewind::horizontal-line-graph` | [horizontal-line-graph.md](horizontal-line-graph.md) | | Icon | `x-bladewind::icon` | [icon.md](icon.md) | | Input | `x-bladewind::input` | [input.md](input.md) | +| Inline Edit | `x-bladewind::inline-edit` | [inline-edit.md](inline-edit.md) | | List View | `x-bladewind::list-view` | [list-view.md](list-view.md) | | Modal | `x-bladewind::modal` | [modal.md](modal.md) | | Notification | `x-bladewind::notification` | [notification.md](notification.md) | diff --git a/mcp/inline-edit.md b/mcp/inline-edit.md new file mode 100644 index 00000000..f2fa25df --- /dev/null +++ b/mcp/inline-edit.md @@ -0,0 +1,67 @@ +--- +title: Inline Edit Component +component: x-bladewind::inline-edit +url: /component/inline-edit +--- + +# Inline Edit + +`x-bladewind::inline-edit` shows a value as plain text until the user clicks it (or its edit icon), then swaps in a +text field with Save and Cancel controls. With no `onSave`, it saves optimistically — the display updates the +instant Save is clicked, and a hidden field carries the current value for a normal form submission alongside the +rest of the page. + +## Basic Usage + +```blade + +``` + +Click the text (or its pencil icon) to edit, `Enter` to save, `Escape` or the × button to cancel. An empty value +shows `placeholder` in a muted, italic style instead of nothing. + +## An async save + +Pass `onSave` as a raw JavaScript expression, wrapped internally in a function that receives `(newValue, oldValue)` +and may return a `Promise`. While that promise is pending, the field and both controls disable and the save button +shows a spinner. Resolving it updates the display to the new value; rejecting it shows the rejection's message (or a +generic one) and leaves edit mode open so the user can fix the value and retry. + +```blade + + + +``` + +## Required and validation + +Set `required="true"` to block saving an empty value; the field shows `requiredMessage` instead and stays in edit +mode. Any rejection from `onSave` — for a server-side validation failure, say — surfaces the same way. + +```blade + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | _(auto-generated)_ | Name of the hidden field the current value submits under. | +| value | _(blank)_ | Current value. | +| placeholder | Click to edit | Shown, in a muted style, when the value is empty. Also the input's placeholder while editing. | +| required | false | Blocks saving an empty value. | +| requiredMessage | This field is required | Shown when a required save is blocked. | +| maxlength | _(none)_ | Maximum characters accepted by the input. | +| onSave | _(blank)_ | Raw JS expression receiving (newValue, oldValue), optionally returning a Promise. Blank saves optimistically. | +| saveLabel / cancelLabel / editLabel | Save / Cancel / Edit | Accessible labels for the three controls. | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..22baba9e 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -24,6 +24,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..18378da2 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -13,6 +13,7 @@ ['Datepicker', 'datepicker', 'Select single dates, ranges and preset periods.'], ['Filepicker', 'filepicker', 'Handle drag-and-drop and conventional file selection.'], ['Input', 'input', 'Capture text with labels, icons, prefixes and validation.'], + ['Inline Edit', 'inline-edit', 'Turn any piece of text into a click-to-edit field.'], ['Input Group', 'input-group', 'Combine related controls into one cohesive field.'], ['Number', 'number', 'Capture numeric values with controlled stepping.'], ['Radio Button', 'radio-button', 'Choose a single option from a visible group.'], diff --git a/resources/views/docs/inline-edit.blade.php b/resources/views/docs/inline-edit.blade.php new file mode 100644 index 00000000..cf8fc1f3 --- /dev/null +++ b/resources/views/docs/inline-edit.blade.php @@ -0,0 +1,142 @@ + + Inline Edit Component + Inline Edit + +

+ x-bladewind::inline-edit shows a value as plain text until the user clicks it (or + its edit icon), then swaps in a text field with Save and Cancel controls. With no + onSave, it saves optimistically — the display updates the instant Save is + clicked, and a hidden field carries the current value for a normal form submission alongside the rest of the + page. +

+ + + +
+        
+            <x-bladewind::inline-edit name="project_name" value="Q3 Marketing Campaign" />
+        
+    
+

+ Click the text (or its pencil icon) to edit, Enter to save, + Escape or the × button to cancel. An empty value shows + placeholder in a muted, italic style instead of nothing. +

+ +

An async save

+

+ Pass onSave as a raw JavaScript expression, wrapped internally in a function that + receives (newValue, oldValue) and may return a Promise. + While that promise is pending, the field and both controls disable and the save button shows a spinner. + Resolving it updates the display to the new value; rejecting it shows the rejection's message (or a generic + one) and leaves edit mode open so the user can fix the value and retry. +

+ + + + +
+        
+            <x-bladewind::inline-edit name="project_name" value="Q3 Marketing Campaign" on-save="renameProject(1, newValue)" />
+
+            <script>
+                function renameProject(id, name) {
+                    return fetch(`/projects/${id}`, {
+                        method: 'PATCH',
+                        headers: { 'Content-Type': 'application/json' },
+                        body: JSON.stringify({ name }),
+                    }).then((response) => {
+                        if (! response.ok) throw new Error('Could not rename the project');
+                    });
+                }
+            </script>
+        
+    
+ +

Required and validation

+

+ Set required="true" to block saving an empty value; the field shows + requiredMessage instead and stays in edit mode. Any rejection from + onSave — for a server-side validation failure, say — surfaces the same way. +

+ +
+        
+            <x-bladewind::inline-edit name="project_name" required="true" required-message="A project needs a name" />
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > inline-edit.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..4278af58 100644 --- a/routes/web.php +++ b/routes/web.php @@ -40,6 +40,7 @@ Route::post('mcp/server', [McpController::class, 'handle']); Route::view('component/icon', 'docs/icon'); Route::view('component/input', 'docs/input'); +Route::view('component/inline-edit', 'docs/inline-edit'); Route::view('component/input-group', 'docs/input-group'); Route::view('component/list-view', 'docs/list'); Route::view('component/modal', 'docs/modal'); From 8d8cfd175d68144af46107ea6349b39385227d1e Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 14:46:26 +0000 Subject: [PATCH 14/44] Add Keyboard Key component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/kbd package. --- mcp/index.md | 1 + mcp/kbd.md | 43 +++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/kbd.blade.php | 91 +++++++++++++++++++ routes/web.php | 1 + 6 files changed, 138 insertions(+) create mode 100644 mcp/kbd.md create mode 100644 resources/views/docs/kbd.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..ed94402c 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -60,6 +60,7 @@ Start here for installation, configuration, and theming. | Tab | `x-bladewind::tab` | [tab.md](tab.md) | | Table | `x-bladewind::table` | [table.md](table.md) | | Tag | `x-bladewind::tag` | [tag.md](tag.md) | +| Keyboard Key | `x-bladewind::kbd` | [kbd.md](kbd.md) | | Textarea | `x-bladewind::textarea` | [textarea.md](textarea.md) | | Theme Switcher | `x-bladewind::theme-switcher` | [theme-switcher.md](theme-switcher.md) | | Timeline | `x-bladewind::timeline` | [timeline.md](timeline.md) | diff --git a/mcp/kbd.md b/mcp/kbd.md new file mode 100644 index 00000000..a3fc8b28 --- /dev/null +++ b/mcp/kbd.md @@ -0,0 +1,43 @@ +--- +title: Keyboard Key Component +component: x-bladewind::kbd +url: /component/kbd +--- + +# Keyboard Key + +`x-bladewind::kbd` renders a semantic `` element styled as a physical key — for documenting a shortcut in help +text, a menu item, or command documentation. + +## Basic Usage + +```blade +

Press Esc to close.

+``` + +## Key combinations + +Pass `keys` as an array (or JSON string) to render a combo — each key in its own pill, joined by "+". When `keys` is +given, it takes priority over the default slot. + +```blade + +``` + +## Sizes + +Set `size` to `tiny`, `small` (default), or `regular`. + +```blade +Tab +Tab +Tab +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| keys | _(none)_ | Array or JSON string of key labels for a combo. Takes priority over the default slot. | +| size | small | `tiny` \| `small` \| `regular` | +| class | _(blank)_ | Additional CSS classes for the key (or the combo's wrapper, when using `keys`). | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..6f6da472 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -46,6 +46,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..09560552 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -39,6 +39,7 @@ ['Shimmer', 'shimmer', 'Provide skeleton loading states while content arrives.'], ['Spinner', 'spinner', 'Indicate short-running asynchronous activity.'], ['Tag', 'tag', 'Label statuses, categories and compact metadata.'], + ['Keyboard Key', 'kbd', 'Document a shortcut with a styled physical-key display.'], ], ], [ diff --git a/resources/views/docs/kbd.blade.php b/resources/views/docs/kbd.blade.php new file mode 100644 index 00000000..52f5aec3 --- /dev/null +++ b/resources/views/docs/kbd.blade.php @@ -0,0 +1,91 @@ + + Keyboard Key Component + Keyboard Key + +

+ x-bladewind::kbd renders a semantic <kbd> + element styled as a physical key — for documenting a shortcut in help text, a menu item, or command + documentation. +

+ +

Press Esc to close.

+ +
+        
+            <p>Press <x-bladewind::kbd>Esc</x-bladewind::kbd> to close.</p>
+        
+    
+ +

Key combinations

+

+ Pass keys as an array (or JSON string) to render a combo — each key in its own + pill, joined by "+". When keys is given, it takes priority over the default slot. +

+ +

+ Open the command palette with +

+ +
+        
+            <x-bladewind::kbd :keys="['Ctrl', 'K']" />
+        
+    
+ +

Sizes

+

Set size to tiny, small (default), or regular.

+ +
+ Tab + Tab + Tab +
+ +
+        
+            <x-bladewind::kbd size="tiny">Tab</x-bladewind::kbd>
+            <x-bladewind::kbd size="small">Tab</x-bladewind::kbd>
+            <x-bladewind::kbd size="regular">Tab</x-bladewind::kbd>
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > kbd.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..34fa9840 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ Route::view('component/table', 'docs/table'); Route::view('component/data-grid', 'docs/data-grid'); Route::view('component/tag', 'docs/tag'); +Route::view('component/kbd', 'docs/kbd'); Route::view('component/textarea', 'docs/textarea'); Route::view('component/textbox', 'docs/input'); Route::view('component/timeline', 'docs/timeline'); From e3d1deb9ea79de1c3a92322398e44feebca594a4 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 15:00:56 +0000 Subject: [PATCH 15/44] Add Copy Button component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/copy-button package. --- mcp/copy-button.md | 51 ++++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/copy-button.blade.php | 121 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 176 insertions(+) create mode 100644 mcp/copy-button.md create mode 100644 resources/views/docs/copy-button.blade.php diff --git a/mcp/copy-button.md b/mcp/copy-button.md new file mode 100644 index 00000000..b14b5c2b --- /dev/null +++ b/mcp/copy-button.md @@ -0,0 +1,51 @@ +--- +title: Copy Button Component +component: x-bladewind::copy-button +url: /component/copy-button +--- + +# Copy Button + +`x-bladewind::copy-button` copies a value — or its own wrapped content — to the clipboard on click, briefly swapping +its icon to a checkmark and announcing success or failure to assistive technology. + +## Basic Usage + +```blade +npm install bladewindui +``` + +With no `value`, the button copies its own slot's trimmed text — the display and the copied value never drift apart +because there is only one string to keep in sync. + +## Icon-only, with an explicit value + +Pass `value` directly for an icon-only trigger next to something that isn't itself plain copyable text — a masked +API key, a formatted table cell, and so on. + +```blade +sk_live_••••••••1234 + +``` + +## A labelled button + +Add `label` for a full text-and-icon button instead of an icon-only trigger — only takes effect when there is no +wrapped slot content. + +```blade + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| value | _(none)_ | Text to copy. Defaults to the default slot's trimmed text. | +| label | _(blank)_ | Text label on the button. Ignored when the slot has content. | +| copyLabel | Copy | Accessible label for the trigger button. | +| copiedMessage | Copied | Announced to screen readers after a successful copy. | +| failedMessage | Could not copy | Announced to screen readers if the copy fails. | +| timeout | 1500 | Milliseconds before the success icon reverts to the default clipboard icon. | +| size | small | `tiny` \| `small` \| `regular` | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..a3990f28 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -60,6 +60,7 @@ Start here for installation, configuration, and theming. | Tab | `x-bladewind::tab` | [tab.md](tab.md) | | Table | `x-bladewind::table` | [table.md](table.md) | | Tag | `x-bladewind::tag` | [tag.md](tag.md) | +| Copy Button | `x-bladewind::copy-button` | [copy-button.md](copy-button.md) | | Textarea | `x-bladewind::textarea` | [textarea.md](textarea.md) | | Theme Switcher | `x-bladewind::theme-switcher` | [theme-switcher.md](theme-switcher.md) | | Timeline | `x-bladewind::timeline` | [timeline.md](timeline.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..5705146c 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -46,6 +46,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..75c67bb4 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -39,6 +39,7 @@ ['Shimmer', 'shimmer', 'Provide skeleton loading states while content arrives.'], ['Spinner', 'spinner', 'Indicate short-running asynchronous activity.'], ['Tag', 'tag', 'Label statuses, categories and compact metadata.'], + ['Copy Button', 'copy-button', 'Copy a value or wrapped text to the clipboard.'], ], ], [ diff --git a/resources/views/docs/copy-button.blade.php b/resources/views/docs/copy-button.blade.php new file mode 100644 index 00000000..db375cf4 --- /dev/null +++ b/resources/views/docs/copy-button.blade.php @@ -0,0 +1,121 @@ + + Copy Button Component + Copy Button + +

+ x-bladewind::copy-button copies a value — or its own wrapped content — to the + clipboard on click, briefly swapping its icon to a checkmark and announcing success or failure to assistive + technology. +

+ +
+ npm install bladewindui +
+ +
+        
+            <x-bladewind::copy-button>npm install bladewindui</x-bladewind::copy-button>
+        
+    
+

+ With no value, the button copies its own slot's trimmed text — the display and + the copied value never drift apart because there is only one string to keep in sync. +

+ +

Icon-only, with an explicit value

+

+ Pass value directly for an icon-only trigger next to something that isn't itself + plain copyable text — a masked API key, a formatted table cell, and so on. +

+ +
+ sk_live_••••••••1234 + +
+ +
+        
+            <code>sk_live_••••••••1234</code>
+            <x-bladewind::copy-button value="sk_live_a1b2c3d4e5f61234" copy-label="Copy API key" />
+        
+    
+ +

A labelled button

+

+ Add label for a full text-and-icon button instead of an icon-only trigger — only + takes effect when there is no wrapped slot content. +

+ + + +
+        
+            <x-bladewind::copy-button value="1234-5678-9012" label="Copy code" />
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > copy-button.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..6ee6dae7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ Route::view('component/table', 'docs/table'); Route::view('component/data-grid', 'docs/data-grid'); Route::view('component/tag', 'docs/tag'); +Route::view('component/copy-button', 'docs/copy-button'); Route::view('component/textarea', 'docs/textarea'); Route::view('component/textbox', 'docs/input'); Route::view('component/timeline', 'docs/timeline'); From 70c8aa8c2a10191728a06e3645ec5c43e7abdd80 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 15:10:24 +0000 Subject: [PATCH 16/44] Add Meter component docs Component page, mcp reference doc, and the components list/route registrations for the new bladewindui/meter package. --- mcp/index.md | 1 + mcp/meter.md | 56 +++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/meter.blade.php | 137 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 197 insertions(+) create mode 100644 mcp/meter.md create mode 100644 resources/views/docs/meter.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..b6d2c8ea 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -60,6 +60,7 @@ Start here for installation, configuration, and theming. | Tab | `x-bladewind::tab` | [tab.md](tab.md) | | Table | `x-bladewind::table` | [table.md](table.md) | | Tag | `x-bladewind::tag` | [tag.md](tag.md) | +| Meter | `x-bladewind::meter` | [meter.md](meter.md) | | Textarea | `x-bladewind::textarea` | [textarea.md](textarea.md) | | Theme Switcher | `x-bladewind::theme-switcher` | [theme-switcher.md](theme-switcher.md) | | Timeline | `x-bladewind::timeline` | [timeline.md](timeline.md) | diff --git a/mcp/meter.md b/mcp/meter.md new file mode 100644 index 00000000..676c719a --- /dev/null +++ b/mcp/meter.md @@ -0,0 +1,56 @@ +--- +title: Meter Component +component: x-bladewind::meter +url: /component/meter +--- + +# Meter + +`x-bladewind::meter` visualises a bounded measurement — disk usage, a score, a signal strength — as opposed to +Progress Bar's task completion. Give it `low` and `high` boundaries and it colours itself semantically: green for +the good zone, red for the bad one, yellow for the zone in between. A real, visually hidden `` element +carries the actual accessible semantics; the coloured bar is purely decorative. + +## Basic Usage + +```blade + +``` + +With no `optimum`, higher values are assumed to be better: the zone above `high` is green, below `low` is red, and +the band between is yellow. + +## When lower is better + +Some measurements go the other way — an error rate, latency, CPU load. Set `optimum` to a value inside the zone that +should read as "good"; the meter works out which end is bad from there. + +```blade + +``` + +## Without zones + +Omit `low`/`high` for a plain bounded bar with no semantic colouring — a single neutral colour, still a real +measurement rather than a completion percentage. + +```blade + +``` + +## Sizes + +Set `size` to `tiny`, `small`, `medium` (default), or `large`. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| value | 0 | The current measurement. | +| min / max | 0 / 100 | The measurement's bounds. | +| low / high | _(none)_ | Zone boundaries. Both must be set to enable semantic colouring. | +| optimum | _(none)_ | A value inside the zone that should read as "good". Defaults to the high zone. | +| label | _(blank)_ | Label shown above the bar. | +| showValue | true | Shows "value / max" above the bar. | +| size | medium | `tiny` \| `small` \| `medium` \| `large` | +| class | _(blank)_ | Additional CSS classes for the wrapper element. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..cb0fa3ff 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -46,6 +46,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..99cdce7c 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -39,6 +39,7 @@ ['Shimmer', 'shimmer', 'Provide skeleton loading states while content arrives.'], ['Spinner', 'spinner', 'Indicate short-running asynchronous activity.'], ['Tag', 'tag', 'Label statuses, categories and compact metadata.'], + ['Meter', 'meter', 'Show a bounded measurement with semantic low/medium/high zones.'], ], ], [ diff --git a/resources/views/docs/meter.blade.php b/resources/views/docs/meter.blade.php new file mode 100644 index 00000000..8941ba02 --- /dev/null +++ b/resources/views/docs/meter.blade.php @@ -0,0 +1,137 @@ + + Meter Component + Meter + +

+ x-bladewind::meter visualises a bounded measurement — disk usage, a score, a + signal strength — as opposed to Progress Bar's task completion. Give it + low and high boundaries and it colours itself + semantically: green for the good zone, red for the bad one, yellow for the zone in between. A real, visually + hidden <meter> element carries the actual accessible semantics; the coloured + bar is purely decorative. +

+ +
+ +
+ +
+        
+            <x-bladewind::meter value="72" max="100" low="30" high="70" label="Battery" />
+        
+    
+

+ With no optimum, higher values are assumed to be better: the zone above + high is green, below low is red, and the band between + is yellow. +

+ +

When lower is better

+

+ Some measurements go the other way — an error rate, latency, CPU load. Set optimum + to a value inside the zone that should read as "good"; the meter works out which end is bad from there. +

+ +
+ + +
+ +
+        
+            <x-bladewind::meter value="8" max="100" low="20" high="60" optimum="0" label="Error rate" />
+        
+    
+ +

Without zones

+

+ Omit low/high for a plain bounded bar with no + semantic colouring — a single neutral colour, still a real measurement rather than a completion percentage. +

+ +
+ +
+ +
+        
+            <x-bladewind::meter value="640" max="1000" label="Storage used (MB)" />
+        
+    
+ +

Sizes

+

Set size to tiny, small, medium (default), or large.

+ +
+ + + + +
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > meter.blade.php + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..75faf32f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ Route::view('component/table', 'docs/table'); Route::view('component/data-grid', 'docs/data-grid'); Route::view('component/tag', 'docs/tag'); +Route::view('component/meter', 'docs/meter'); Route::view('component/textarea', 'docs/textarea'); Route::view('component/textbox', 'docs/input'); Route::view('component/timeline', 'docs/timeline'); From acdb609474fcb4c7db9cc428614e687a98eaf2bf Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 15:29:54 +0000 Subject: [PATCH 17/44] Add Description List component docs Documents the new description-list component: docs page with basic usage, action slots, and striped rows demos; route; catalogue entries; and mcp reference doc. --- mcp/description-list.md | 60 ++++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + .../views/docs/description-list.blade.php | 139 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 203 insertions(+) create mode 100644 mcp/description-list.md create mode 100644 resources/views/docs/description-list.blade.php diff --git a/mcp/description-list.md b/mcp/description-list.md new file mode 100644 index 00000000..5e8bf089 --- /dev/null +++ b/mcp/description-list.md @@ -0,0 +1,60 @@ +--- +title: Description List Component +component: x-bladewind::description-list +url: /component/description-list +--- + +# Description List + +`x-bladewind::description-list` and `x-bladewind::description-list.item` present label and value pairs, such as a profile, a record's details, or an order summary. It renders as a real semantic `
`, stacked on mobile and laid out label-beside-value from the `sm` breakpoint up. + +```blade + + Jane Cooper + jane.cooper@example.com + Admin + +``` + +## Action Slots + +Give an item an `action` slot for a control shown beside its value, such as an edit link or a copy button. + +```blade + + jane.cooper@example.com + + Edit + + +``` + +## Striped Rows + +Set `striped` on the list to alternate a subtle background on every row. It propagates from the list to each item automatically. + +```blade + + Pro + March 4, 2027 + 12 of 20 used + +``` + +## Attributes + +### Description List Component + +| Attribute | Default | Description | +|---|---|---| +| divided | true | Determines if a horizontal rule is shown between rows. `true` \| `false` | +| striped | false | Alternates a subtle background on every row. Propagates to items automatically. `true` \| `false` | +| class | _blank_ | Any additional CSS you wish to add to the wrapper element. | + +### Description List Item Component + +| Attribute | Default | Description | +|---|---|---| +| label | _blank_ | The row's label. | +| action | _none_ | A named slot rendered beside the value. | +| class | _blank_ | Any additional CSS you wish to add to the row. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..6bc83410 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -60,6 +60,7 @@ Start here for installation, configuration, and theming. | Tab | `x-bladewind::tab` | [tab.md](tab.md) | | Table | `x-bladewind::table` | [table.md](table.md) | | Tag | `x-bladewind::tag` | [tag.md](tag.md) | +| Description List | `x-bladewind::description-list` | [description-list.md](description-list.md) | | Textarea | `x-bladewind::textarea` | [textarea.md](textarea.md) | | Theme Switcher | `x-bladewind::theme-switcher` | [theme-switcher.md](theme-switcher.md) | | Timeline | `x-bladewind::timeline` | [timeline.md](timeline.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..cf71a70d 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -46,6 +46,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..066f90eb 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -39,6 +39,7 @@ ['Shimmer', 'shimmer', 'Provide skeleton loading states while content arrives.'], ['Spinner', 'spinner', 'Indicate short-running asynchronous activity.'], ['Tag', 'tag', 'Label statuses, categories and compact metadata.'], + ['Description List', 'description-list', 'Present label/value pairs for profiles and record details.'], ], ], [ diff --git a/resources/views/docs/description-list.blade.php b/resources/views/docs/description-list.blade.php new file mode 100644 index 00000000..ed514d77 --- /dev/null +++ b/resources/views/docs/description-list.blade.php @@ -0,0 +1,139 @@ + + Description List Component + Description List + +

+ x-bladewind::description-list and + x-bladewind::description-list.item present label/value pairs — a profile, a + record's details, an order summary — as a real semantic <dl>, stacked on + mobile and laid out label-beside-value from the sm breakpoint up. +

+ + + Jane Cooper + jane.cooper@example.com + Admin + + +
+        
+            <x-bladewind::description-list>
+                <x-bladewind::description-list.item label="Full name">Jane Cooper</x-bladewind::description-list.item>
+                <x-bladewind::description-list.item label="Email address">jane.cooper@example.com</x-bladewind::description-list.item>
+                <x-bladewind::description-list.item label="Role">Admin</x-bladewind::description-list.item>
+            </x-bladewind::description-list>
+        
+    
+ +

Action slots

+

+ Give an item an action slot for a control shown beside its value — an edit link, + a copy button, anything. +

+ + + + jane.cooper@example.com + + Edit + + + + +
+        
+            <x-bladewind::description-list.item label="Email address">
+                jane.cooper@example.com
+                <x-slot:action>
+                    <a href="#">Edit</a>
+                </x-slot:action>
+            </x-bladewind::description-list.item>
+        
+    
+ +

Striped rows

+

+ Set striped on the list to alternate a subtle background on every row — it + propagates from the list to each item automatically. +

+ + + Pro + March 4, 2027 + 12 of 20 used + + +
+        
+            <x-bladewind::description-list striped="true">
+                ...
+            </x-bladewind::description-list>
+        
+    
+ +

Full List Of Attributes

+

Description List

+ + +
+ + + + + + + + + + + + + + + + + + + + +

Description List Item

+ + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > description-list > index.blade.php, + resources > views > components > bladewind > description-list > item.blade.php + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..dbfd0504 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ Route::view('component/table', 'docs/table'); Route::view('component/data-grid', 'docs/data-grid'); Route::view('component/tag', 'docs/tag'); +Route::view('component/description-list', 'docs/description-list'); Route::view('component/textarea', 'docs/textarea'); Route::view('component/textbox', 'docs/input'); Route::view('component/timeline', 'docs/timeline'); From 2a6efdaa4e075df8330490452695b20fd0998e60 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 15:39:17 +0000 Subject: [PATCH 18/44] Add Banner component docs Documents the new banner component: docs page covering tones, title, actions, dismissibility, persistence, icons, and rounded corners; route; catalogue entries; and mcp reference doc. --- mcp/banner.md | 101 ++++++++ mcp/index.md | 1 + resources/views/docs/banner.blade.php | 218 ++++++++++++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + routes/web.php | 1 + 6 files changed, 323 insertions(+) create mode 100644 mcp/banner.md create mode 100644 resources/views/docs/banner.blade.php diff --git a/mcp/banner.md b/mcp/banner.md new file mode 100644 index 00000000..015b3ae4 --- /dev/null +++ b/mcp/banner.md @@ -0,0 +1,101 @@ +--- +title: Banner Component +component: x-bladewind::banner +url: /component/banner +--- + +# Banner + +The banner component is a page-level or global announcement bar. Where the Alert component sits inline next to the content it relates to, a banner spans the full width of its container, typically at the very top of a page, and stays there for as long as it is relevant. Use it for things everyone visiting the page should notice, such as planned maintenance, an outage that is being worked on, a new feature announcement, or a policy change. + +```blade + + Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable. + +``` + +## Tones + +There are five tones to choose from, each with a matching colour and default icon. + +```blade +Your changes were published successfully. +Your trial ends in 3 days. Add a payment method to keep your account active. +Payment failed. Please update your billing details to avoid service interruption. +A new version of the dashboard is available. +``` + +## Title + +Give a banner a short bold `title` above its message when the message alone needs more emphasis. + +```blade + + Your account will be suspended on March 4, 2027 unless you verify your email address. + +``` + +## Actions + +Give a banner an `actions` slot for one or more buttons or links, shown beside the message. + +```blade + + A new version of the dashboard is available. + + Learn more + Refresh now + + +``` + +## Dismissibility + +Banners show a close icon by default. Set `dismissible="false"` when the announcement is important enough that visitors should not be able to hide it. + +```blade + + The payments system is currently down. We are working on a fix. + +``` + +## Persistence + +Dismissing a banner is normally only remembered for the current page view. Give the banner a `persist_key` and its dismissal is remembered in the visitor's browser via `localStorage`, so it stays gone on later visits too. Pick a key that will not clash with any other banner on the site, and change it whenever the announcement itself changes, so returning visitors see the new one. + +```blade + + We have a new look. Let us know what you think. + +``` + +## Icons + +Each tone shows a matching default icon. Set `icon` to use any icon name from [Heroicons](https://heroicons.com) instead, or set `show_icon="false"` to hide it altogether. + +```blade +A new feature just shipped. Take a look. +This banner has no icon. +``` + +## Rounded Corners + +By default a banner has square corners, since it usually spans the full width of the page. Set `rounded="true"` when placing it inside a narrower container instead. + +```blade +Your export is ready to download. +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| tone | info | `info` \| `success` \| `warning` \| `error` \| `primary` | +| title | _blank_ | An optional bold heading shown above the message. | +| show_icon | true | Determines if the tone's icon is displayed. `true` \| `false` | +| icon | _blank_ | Use any icon name from [Heroicons](https://heroicons.com) instead of the tone's default icon. | +| dismissible | true | Determines if a close icon is shown so visitors can hide the banner. `true` \| `false` | +| persist_key | _blank_ | Remembers a dismissal in the visitor's browser under this key, so the banner stays hidden on later visits. Leave blank and the banner shows again on every page load. | +| rounded | false | Determines if the banner has rounded corners. `true` \| `false` | +| actions | _none_ | A named slot for one or more buttons or links, shown beside the message. | +| class | _blank_ | Any additional CSS classes you wish to add. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..44217a10 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -25,6 +25,7 @@ Start here for installation, configuration, and theming. | Accordion | `x-bladewind::accordion` | [accordion.md](accordion.md) | | Alert | `x-bladewind::alert` | [alert.md](alert.md) | | Avatar | `x-bladewind::avatar` | [avatar.md](avatar.md) | +| Banner | `x-bladewind::banner` | [banner.md](banner.md) | | Bell | `x-bladewind::bell` | [bell.md](bell.md) | | Button | `x-bladewind::button` | [button.md](button.md) | | Calendar | `x-bladewind::calendar` | [calendar.md](calendar.md) | diff --git a/resources/views/docs/banner.blade.php b/resources/views/docs/banner.blade.php new file mode 100644 index 00000000..d7f292ab --- /dev/null +++ b/resources/views/docs/banner.blade.php @@ -0,0 +1,218 @@ + + Banner Component + Banner + +

+ The banner component is a page-level or global announcement bar. Where the Alert + component is meant to sit inline next to the content it relates to, a banner spans the full width of its + container, typically at the very top of a page, and stays there for as long as it is relevant. Use it for + things everyone visiting the page should notice: planned maintenance, an outage that is being worked on, a + new feature announcement, or a policy change. +

+

+ There are five tones to choose from: info success + warning error and primary. + Each tone comes with a matching colour and a default icon, and each banner can be dismissed unless you turn + that off. +

+ +

Basic Usage

+ + Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable. + +
+        
+            <x-bladewind::banner>
+                Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable.
+            </x-bladewind::banner>
+        
+    
+ +

Tones

+

Set tone to match the seriousness of what you are announcing.

+ Your changes were published successfully. + Your trial ends in 3 days. Add a payment method to keep your account active. + Payment failed. Please update your billing details to avoid service interruption. + A new version of the dashboard is available. +
+        
+            <x-bladewind::banner tone="success">Your changes were published successfully.</x-bladewind::banner>
+            <x-bladewind::banner tone="warning">Your trial ends in 3 days. Add a payment method to keep your account active.</x-bladewind::banner>
+            <x-bladewind::banner tone="error">Payment failed. Please update your billing details to avoid service interruption.</x-bladewind::banner>
+            <x-bladewind::banner tone="primary">A new version of the dashboard is available.</x-bladewind::banner>
+        
+    
+ +

Title

+

Give a banner a short bold title above its message when the message alone needs more emphasis.

+ + Your account will be suspended on March 4, 2027 unless you verify your email address. + +
+        
+            <x-bladewind::banner tone="warning" title="Action needed">
+                Your account will be suspended on March 4, 2027 unless you verify your email address.
+            </x-bladewind::banner>
+        
+    
+ +

Actions

+

Give a banner an actions slot for one or more buttons or links, shown beside the message.

+ + A new version of the dashboard is available. + + Learn more + Refresh now + + +
+        
+            <x-bladewind::banner tone="primary">
+                A new version of the dashboard is available.
+                <x-slot:actions>
+                    <x-bladewind::button size="small" color="white">Learn more</x-bladewind::button>
+                    <x-bladewind::button size="small">Refresh now</x-bladewind::button>
+                </x-slot:actions>
+            </x-bladewind::banner>
+        
+    
+ +

Dismissibility

+

+ Banners show a close icon by default. Click it and the banner is removed from the page. Set + dismissible="false" when the announcement is important enough that visitors + should not be able to hide it. +

+ + The payments system is currently down. We are working on a fix. + +
+        
+            <x-bladewind::banner tone="error" dismissible="false">
+                The payments system is currently down. We are working on a fix.
+            </x-bladewind::banner>
+        
+    
+ +

Persistence

+

+ Dismissing a banner is normally only remembered for the current page view. Reload the page and it comes + back. Give the banner a persist_key and its dismissal is remembered in the + visitor's browser, so it stays gone on later visits too. Pick a key that will not clash with any other + banner on your site, and change it whenever the announcement itself changes, so returning visitors see the + new one. +

+ + We have a new look. Let us know what you think. + +
+        
+            <x-bladewind::banner tone="info" persist_key="banner-demo-2027-03">
+                We have a new look. Let us know what you think.
+            </x-bladewind::banner>
+        
+    
+ +

Icons

+

+ Each tone shows a matching default icon. Set icon to use any icon name from + Heroicons instead, or set + show_icon="false" to hide it altogether. +

+ A new feature just shipped. Take a look. + This banner has no icon. +
+        
+            <x-bladewind::banner tone="primary" icon="gift">A new feature just shipped. Take a look.</x-bladewind::banner>
+            <x-bladewind::banner tone="info" show_icon="false">This banner has no icon.</x-bladewind::banner>
+        
+    
+ +

Rounded Corners

+

+ By default a banner has square corners, since it usually spans the full width of the page. Set + rounded="true" when you are placing it inside a narrower container instead. +

+ Your export is ready to download. +
+        
+            <x-bladewind::banner tone="success" rounded="true">Your export is ready to download.</x-bladewind::banner>
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > banner.blade.php + + + + + + + + + + + + + + + + + + diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..76a40738 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -4,6 +4,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..1117f860 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -31,6 +31,7 @@ 'icon_class' => 'bg-pink-50 text-pink-600 dark:bg-pink-400/10 dark:text-pink-300', 'items' => [ ['Alert', 'alert', 'Surface contextual information in multiple semantic styles.'], + ['Banner', 'banner', 'Show a page-level announcement with tone, actions and dismissibility.'], ['Bell', 'bell', 'Display notification counts and recent activity.'], ['Notification', 'notification', 'Show transient success, warning and error messages.'], ['Progress Bar', 'progress-bar', 'Represent completion with a horizontal progress track.'], diff --git a/routes/web.php b/routes/web.php index 869b90c5..4ca59273 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,6 +16,7 @@ Route::view('releasing', 'docs/releasing'); Route::view('component/accordion', 'docs/accordion'); Route::view('component/alert', 'docs/alert'); +Route::view('component/banner', 'docs/banner'); Route::view('component/avatar', 'docs/avatar'); Route::view('component/bell', 'docs/bell'); Route::view('component/button', 'docs/button'); From 80ff8bec1357499cfc761f0dfd8e4caa16bb8776 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 16:00:48 +0000 Subject: [PATCH 19/44] Add Code Block component docs Documents the new code-block component: docs page covering languages, title, line numbers, line highlighting, wrapping, and the copy action; route; catalogue entries; and mcp reference doc. --- mcp/code-block.md | 81 ++++++++ mcp/index.md | 1 + resources/views/docs/code-block.blade.php | 184 ++++++++++++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + routes/web.php | 1 + 6 files changed, 269 insertions(+) create mode 100644 mcp/code-block.md create mode 100644 resources/views/docs/code-block.blade.php diff --git a/mcp/code-block.md b/mcp/code-block.md new file mode 100644 index 00000000..0de887f2 --- /dev/null +++ b/mcp/code-block.md @@ -0,0 +1,81 @@ +--- +title: Code Block Component +component: x-bladewind::code-block +url: /component/code-block +--- + +# Code Block + +The code block component displays a block of source code with syntax highlighting, powered by [Prism](https://prismjs.com). It shows a small header with the language and an optional filename or title, and a copy button that puts the code on the clipboard with one click. + +There are two ways to give it code. Pass a `code` attribute with a PHP string, or write the snippet directly between the opening and closing tags using the default slot. The attribute is the easier and safer choice, since Blade escapes it for you automatically. Written as a slot, any `<` `>` or `&` in the code needs to be written as an HTML entity by hand, the same as any other raw `
` block.
+
+```blade
+
+```
+
+## Languages
+
+Set `language` to any language Prism supports. This component bundles `markup` `css` `javascript` `php` `bash` `json` `sql` `python` and `yaml`.
+
+```blade
+
+```
+
+## Title
+
+Give a code block a `title` to show a filename or a short label above the code.
+
+```blade
+
+```
+
+## Line Numbers
+
+Set `line_numbers="true"` to number every line, useful for longer snippets.
+
+```blade
+
+```
+
+## Highlighting Lines
+
+Set `highlight_lines` to draw attention to specific lines, using Prism's line-highlight syntax: a single line number, a range, or a comma separated mix of both, for example `"2"` or `"3-5,8"`.
+
+```blade
+
+```
+
+## Wrapping Long Lines
+
+A code block scrolls horizontally by default when a line is too long to fit. Set `wrap="true"` to wrap long lines onto the next line instead.
+
+```blade
+
+```
+
+## Copy Action
+
+A copy button is shown by default, in the top right of the header. Set `show_copy="false"` to hide it.
+
+```blade
+
+```
+
+## Attributes
+
+| Attribute | Default | Description |
+|---|---|---|
+| code | _blank_ | The code to display, as a PHP string. Escaped automatically. Leave blank to write the snippet in the default slot instead. |
+| language | markup | `markup` \| `css` \| `javascript` \| `php` \| `bash` \| `json` \| `sql` \| `python` \| `yaml` |
+| title | _blank_ | An optional filename or label shown in the header. |
+| line_numbers | false | Numbers every line. `true` \| `false` |
+| highlight_lines | _blank_ | Lines to highlight, using Prism's line-highlight syntax, for example `"2"` or `"3-5,8"`. |
+| wrap | false | Wraps long lines instead of scrolling horizontally. `true` \| `false` |
+| show_copy | true | Shows a button that copies the code to the clipboard. `true` \| `false` |
+| show_language_label | true | Shows the language name in the header. `true` \| `false` |
+| class | _blank_ | Any additional CSS classes you wish to add. |
+
+## Note For Package Authors
+
+If the host page already has a global `Prism` object (for example, from its own blog or documentation setup), this component extends it with the extra languages it needs instead of loading a second, conflicting copy of Prism's core.
diff --git a/mcp/index.md b/mcp/index.md
index 62888019..0d6805d6 100644
--- a/mcp/index.md
+++ b/mcp/index.md
@@ -31,6 +31,7 @@ Start here for installation, configuration, and theming.
 | Card | `x-bladewind::card` | [card.md](card.md) |
 | Centered Content | `x-bladewind::centered-content` | [centered-content.md](centered-content.md) |
 | Chart | `x-bladewind::chart` | [chart.md](chart.md) |
+| Code Block | `x-bladewind::code-block` | [code-block.md](code-block.md) |
 | Checkbox | `x-bladewind::checkbox` | [checkbox.md](checkbox.md) |
 | Check Card | `x-bladewind::checkcard` | [checkcard.md](checkcard.md) |
 | Color Picker | `x-bladewind::colorpicker` | [colorpicker.md](colorpicker.md) |
diff --git a/resources/views/docs/code-block.blade.php b/resources/views/docs/code-block.blade.php
new file mode 100644
index 00000000..f91289a8
--- /dev/null
+++ b/resources/views/docs/code-block.blade.php
@@ -0,0 +1,184 @@
+
+    Code Block Component
+    Code Block
+
+    

+ The code block component displays a block of source code with syntax highlighting, powered by + Prism. It shows a small header with the language and an + optional filename or title, and a copy button that puts the code on the clipboard with one click. +

+

+ There are two ways to give it code. Pass a code attribute with a PHP string, or + write the snippet directly between the opening and closing tags using the default slot. The attribute is + the easier and safer choice, since Blade escapes it for you automatically. Written as a slot, any + < > or & in + the code needs to be written as an HTML entity by hand, the same as any other raw + <pre><code> block. +

+ +

Basic Usage

+ +
+        
+            <x-bladewind::code-block language="php" code="Route::get('/users', [UserController::class, 'index']);">
+            </x-bladewind::code-block>
+        
+    
+ +

Languages

+

+ Set language to any language Prism supports. This component bundles + markup css javascript + php bash json + sql python and yaml. +

+ +
+        
+            <x-bladewind::code-block language="javascript" code="const total = items.reduce((sum, item) => sum + item.price, 0);">
+            </x-bladewind::code-block>
+        
+    
+ +

Title

+

Give a code block a title to show a filename or a short label above the code.

+ @php + $routesExample = <<<'PHP' + Route::get('/users', [UserController::class, 'index']); + Route::post('/users', [UserController::class, 'store']); + Route::delete('/users/{user}', [UserController::class, 'destroy']); + PHP; + @endphp + +
+        
+            <x-bladewind::code-block language="php" title="routes/web.php" :code="$routesExample">
+            </x-bladewind::code-block>
+        
+    
+ +

Line Numbers

+

Set line_numbers="true" to number every line, useful for longer snippets.

+ +
+        
+            <x-bladewind::code-block language="php" line_numbers="true" :code="$routesExample">
+            </x-bladewind::code-block>
+        
+    
+ +

Highlighting Lines

+

+ Set highlight_lines to draw attention to specific lines, using + Prism's line-highlight syntax: a single line number, a range, or a comma separated mix of both, for + example "2" or "3-5,8". +

+ +
+        
+            <x-bladewind::code-block language="php" line_numbers="true" highlight_lines="2" :code="$routesExample">
+            </x-bladewind::code-block>
+        
+    
+ +

Wrapping Long Lines

+

+ A code block scrolls horizontally by default when a line is too long to fit. Set + wrap="true" to wrap long lines onto the next line instead. +

+ +
+        
+            <x-bladewind::code-block language="bash" wrap="true" code="php artisan make:model Product -mfsc --policy --api">
+            </x-bladewind::code-block>
+        
+    
+ +

Copy Action

+

+ A copy button is shown by default, in the top right of the header. Set + show_copy="false" to hide it. +

+ +
+        
+            <x-bladewind::code-block language="json" show_copy="false" code='{"name": "bladewindui/ui", "license": "MIT"}'>
+            </x-bladewind::code-block>
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > code-block.blade.php. Syntax highlighting is powered by Prism. + + + + + + + + + + + + + + + + + diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..26bf60ad 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -11,6 +11,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..6fd4de4b 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -51,6 +51,7 @@ ['Calendar', 'calendar', 'Display and select dates or events in an inline month or week grid.'], ['Card', 'card', 'Group related content and actions in a flexible surface.'], ['Chart', 'chart', 'Visualize application data with configurable charts.'], + ['Code Block', 'code-block', 'Display syntax-highlighted code with line numbers and a copy action.'], ['Data Grid', 'data-grid', 'Sort, filter, select and paginate data with client or server-driven state.'], ['Empty State', 'empty-state', 'Guide users when there is no content to display.'], ['Horizontal Line Graph', 'horizontal-line-graph', 'Compare values through compact horizontal bars.'], diff --git a/routes/web.php b/routes/web.php index 869b90c5..3088b1df 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ Route::view('component/table', 'docs/table'); Route::view('component/data-grid', 'docs/data-grid'); Route::view('component/tag', 'docs/tag'); +Route::view('component/code-block', 'docs/code-block'); Route::view('component/textarea', 'docs/textarea'); Route::view('component/textbox', 'docs/input'); Route::view('component/timeline', 'docs/timeline'); From 7d6867f0af4764628f08198cf8352301ed9bc53b Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 16:09:31 +0000 Subject: [PATCH 20/44] Add Chat component docs Documents the new chat component: docs page covering grouped messages, delivery status, attachments, and a scrollable thread; route; catalogue entries; and mcp reference doc. --- mcp/chat.md | 94 ++++++++ mcp/index.md | 1 + resources/views/docs/chat.blade.php | 228 ++++++++++++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + routes/web.php | 1 + 6 files changed, 326 insertions(+) create mode 100644 mcp/chat.md create mode 100644 resources/views/docs/chat.blade.php diff --git a/mcp/chat.md b/mcp/chat.md new file mode 100644 index 00000000..91a2c2b9 --- /dev/null +++ b/mcp/chat.md @@ -0,0 +1,94 @@ +--- +title: Chat Component +component: x-bladewind::chat +url: /component/chat +--- + +# Chat + +`x-bladewind::chat` and `x-bladewind::chat.message` build a message thread. A message sits on the left as one received from someone else, or on the right, in your brand colour, as one sent by the current user. Each message can carry a sender name, an avatar, a timestamp, a delivery state, and attachments. + +```blade + + + Hey, are we still on for the call this afternoon? + + + Yes, 3pm works for me. I will send the link shortly. + + + Perfect, see you then. + + +``` + +## Grouping Consecutive Messages + +Set `grouped="true"` on a message that follows another one from the same sender. It hides the repeated avatar and sender name and pulls the message closer to the one above it. + +```blade + + Quick update on the proposal. + + + I have added the pricing section you asked for. + +``` + +## Delivery Status + +Set `status` on an outgoing message to show how far it got: `sending` `sent` `delivered` `read` or `failed`. It is only shown on outgoing messages, since a received message has no delivery state of its own to report. + +```blade +Uploading the file now. +Here you go. +Let me know if it opens fine. +Great, thanks! +This one did not go through. +``` + +## Attachments + +Give a message an `attachments` slot for files, images, or anything else it carries. + +```blade + + Here is the signed contract. + + contract-signed.pdf + + +``` + +## Scrollable Thread + +Set `height` on the thread to cap it at a fixed height with its own scrollbar, useful when the chat sits inside a fixed-height panel instead of growing the page. + +```blade + + ... + +``` + +## Attributes + +### Chat + +| Attribute | Default | Description | +|---|---|---| +| height | _blank_ | Any valid CSS height value, for example `"400px"`. The thread grows with its content when left blank. | +| class | _blank_ | Additional CSS classes for the wrapper element. | + +### Chat Message + +| Attribute | Default | Description | +|---|---|---| +| outgoing | false | Right-aligns the bubble as a message sent by the current user. `true` \| `false` | +| sender | _blank_ | The sender's name, shown above an ungrouped incoming message and used for the avatar's initials fallback. | +| avatar | _blank_ | URL to the sender's avatar image. | +| time | _blank_ | A timestamp shown beneath the bubble. | +| status | _blank_ | Delivery state, shown only when `outgoing` is true. `sending` \| `sent` \| `delivered` \| `read` \| `failed` | +| grouped | false | Hides the avatar and sender name for a message following another from the same sender. `true` \| `false` | +| show_avatar | true | Determines if incoming messages show an avatar at all. `true` \| `false` | +| attachments | _none_ | A named slot for files, images, or anything else the message carries. | +| class | _blank_ | Additional CSS classes for the message row. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..ae5c8ba7 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -31,6 +31,7 @@ Start here for installation, configuration, and theming. | Card | `x-bladewind::card` | [card.md](card.md) | | Centered Content | `x-bladewind::centered-content` | [centered-content.md](centered-content.md) | | Chart | `x-bladewind::chart` | [chart.md](chart.md) | +| Chat | `x-bladewind::chat` | [chat.md](chat.md) | | Checkbox | `x-bladewind::checkbox` | [checkbox.md](checkbox.md) | | Check Card | `x-bladewind::checkcard` | [checkcard.md](checkcard.md) | | Color Picker | `x-bladewind::colorpicker` | [colorpicker.md](colorpicker.md) | diff --git a/resources/views/docs/chat.blade.php b/resources/views/docs/chat.blade.php new file mode 100644 index 00000000..6393783a --- /dev/null +++ b/resources/views/docs/chat.blade.php @@ -0,0 +1,228 @@ + + Chat Component + Chat + +

+ x-bladewind::chat and x-bladewind::chat.message + build a message thread. A message sits on the left as one received from someone else, or on the right, + in your brand colour, as one sent by the current user. Each message can carry a sender name, an avatar, + a timestamp, a delivery state, and attachments. +

+ +

Basic Usage

+ + + Hey, are we still on for the call this afternoon? + + + Yes, 3pm works for me. I will send the link shortly. + + + Perfect, see you then. + + +
+        
+            <x-bladewind::chat>
+                <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM">
+                    Hey, are we still on for the call this afternoon?
+                </x-bladewind::chat.message>
+                <x-bladewind::chat.message outgoing="true" time="10:04 AM" status="read">
+                    Yes, 3pm works for me. I will send the link shortly.
+                </x-bladewind::chat.message>
+                <x-bladewind::chat.message sender="Jane Cooper" time="10:05 AM">
+                    Perfect, see you then.
+                </x-bladewind::chat.message>
+            </x-bladewind::chat>
+        
+    
+ +

Grouping Consecutive Messages

+

+ Set grouped="true" on a message that follows another one from the same + sender. It hides the repeated avatar and sender name and pulls the message closer to the one above it. +

+ + + Quick update on the proposal. + + + I have added the pricing section you asked for. + + + Let me know what you think. + + +
+        
+            <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM">
+                Quick update on the proposal.
+            </x-bladewind::chat.message>
+            <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM" grouped="true">
+                I have added the pricing section you asked for.
+            </x-bladewind::chat.message>
+        
+    
+ +

Delivery Status

+

+ Set status on an outgoing message to show how far it got: + sending sent delivered + read or failed. It is only shown on outgoing + messages, since a received message has no delivery state of its own to report. +

+ + Uploading the file now. + Here you go. + Let me know if it opens fine. + Great, thanks! + This one did not go through. + +
+        
+            <x-bladewind::chat.message outgoing="true" status="sending">Uploading the file now.</x-bladewind::chat.message>
+            <x-bladewind::chat.message outgoing="true" status="sent">Here you go.</x-bladewind::chat.message>
+            <x-bladewind::chat.message outgoing="true" status="delivered">Let me know if it opens fine.</x-bladewind::chat.message>
+            <x-bladewind::chat.message outgoing="true" status="read">Great, thanks!</x-bladewind::chat.message>
+            <x-bladewind::chat.message outgoing="true" status="failed">This one did not go through.</x-bladewind::chat.message>
+        
+    
+ +

Attachments

+

Give a message an attachments slot for files, images, or anything else it carries.

+ + + Here is the signed contract. + + + + contract-signed.pdf + + + + +
+        
+            <x-bladewind::chat.message sender="Jane Cooper" time="2:14 PM">
+                Here is the signed contract.
+                <x-slot:attachments>
+                    <a href="#">contract-signed.pdf</a>
+                </x-slot:attachments>
+            </x-bladewind::chat.message>
+        
+    
+ +

Scrollable Thread

+

+ Set height on the thread to cap it at a fixed height with its own scrollbar, + useful when the chat sits inside a fixed-height panel instead of growing the page. +

+ + Morning! Ready for the standup? + Yep, joining now. + Thanks for covering the release notes. + No problem at all. + Catch you at the retro. + +
+        
+            <x-bladewind::chat height="220px">
+                ...
+            </x-bladewind::chat>
+        
+    
+ +

Full List Of Attributes

+

Chat

+ + +
+ + + + + + + + + + + + + + + +

Chat Message

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > chat > index.blade.php, + resources > views > components > bladewind > chat > message.blade.php + + + + + + + + + + + + + + + diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..d5bdd21a 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -11,6 +11,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..d47306f5 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -51,6 +51,7 @@ ['Calendar', 'calendar', 'Display and select dates or events in an inline month or week grid.'], ['Card', 'card', 'Group related content and actions in a flexible surface.'], ['Chart', 'chart', 'Visualize application data with configurable charts.'], + ['Chat', 'chat', 'Show a message thread with bubbles, avatars, timestamps and delivery states.'], ['Data Grid', 'data-grid', 'Sort, filter, select and paginate data with client or server-driven state.'], ['Empty State', 'empty-state', 'Guide users when there is no content to display.'], ['Horizontal Line Graph', 'horizontal-line-graph', 'Compare values through compact horizontal bars.'], diff --git a/routes/web.php b/routes/web.php index 869b90c5..559c8a2a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::view('component/breadcrumbs', 'docs/breadcrumbs'); Route::view('component/calendar', 'docs/calendar'); Route::view('component/card', 'docs/card'); +Route::view('component/chat', 'docs/chat'); Route::view('component/centered-content', 'docs/centered-content'); Route::view('component/checkbox', 'docs/checkbox'); Route::view('component/chart', 'docs/chart'); From 0ff534ee54c461fa59e5ddd1ff2749124d68419b Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 16:17:13 +0000 Subject: [PATCH 21/44] Add Carousel component docs Documents the new carousel component: docs page covering autoplay, looping, and hiding arrows/indicators; route; catalogue entries; and mcp reference doc. --- mcp/carousel.md | 74 +++++++ mcp/index.md | 1 + resources/views/docs/carousel.blade.php | 192 ++++++++++++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + routes/web.php | 1 + 6 files changed, 270 insertions(+) create mode 100644 mcp/carousel.md create mode 100644 resources/views/docs/carousel.blade.php diff --git a/mcp/carousel.md b/mcp/carousel.md new file mode 100644 index 00000000..952170db --- /dev/null +++ b/mcp/carousel.md @@ -0,0 +1,74 @@ +--- +title: Carousel Component +component: x-bladewind::carousel +url: /component/carousel +--- + +# Carousel + +`x-bladewind::carousel` and `x-bladewind::carousel.slide` step through a set of slides one at a time. Each slide can hold anything, an image, a card, a testimonial, a promo banner. Visitors can move between slides with the arrow buttons, the dot indicators, the left and right arrow keys, or by swiping on a touch screen. + +```blade + + + ... + + + ... + + + ... + + +``` + +## Autoplay + +Set `autoplay="true"` to advance slides automatically on an `interval`, given in milliseconds. Autoplay pauses while the pointer is over the carousel, and is switched off entirely for a visitor whose system has requested reduced motion. + +```blade + + ... + +``` + +## Without Looping + +By default the carousel loops, so the next arrow from the last slide returns to the first. Set `loop="false"` to stop at either end instead, disabling the corresponding arrow. + +```blade + + ... + +``` + +## Without Arrows Or Indicators + +Set `arrows="false"` or `indicators="false"` to hide either control. Swiping and the arrow keys keep working either way. + +```blade + + ... + +``` + +## Attributes + +### Carousel + +| Attribute | Default | Description | +|---|---|---| +| arrows | true | Shows previous/next arrow buttons. `true` \| `false` | +| indicators | true | Shows a row of dot indicators, one per slide. `true` \| `false` | +| autoplay | false | Advances slides automatically. Disabled for a visitor whose system requests reduced motion. `true` \| `false` | +| interval | 5000 | Milliseconds between slides when autoplay is on. | +| loop | true | Wraps from the last slide back to the first, and vice versa. `true` \| `false` | +| swipe | true | Enables touch and pointer swiping to change slides. `true` \| `false` | +| height | _blank_ | Any valid CSS height value, for example `"320px"`. The carousel takes the height of its tallest slide when left blank. | +| class | _blank_ | Additional CSS classes for the wrapper element. | + +### Slide + +| Attribute | Default | Description | +|---|---|---| +| class | _blank_ | Additional CSS classes for the slide. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..dc09be85 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -29,6 +29,7 @@ Start here for installation, configuration, and theming. | Button | `x-bladewind::button` | [button.md](button.md) | | Calendar | `x-bladewind::calendar` | [calendar.md](calendar.md) | | Card | `x-bladewind::card` | [card.md](card.md) | +| Carousel | `x-bladewind::carousel` | [carousel.md](carousel.md) | | Centered Content | `x-bladewind::centered-content` | [centered-content.md](centered-content.md) | | Chart | `x-bladewind::chart` | [chart.md](chart.md) | | Checkbox | `x-bladewind::checkbox` | [checkbox.md](checkbox.md) | diff --git a/resources/views/docs/carousel.blade.php b/resources/views/docs/carousel.blade.php new file mode 100644 index 00000000..168be1ab --- /dev/null +++ b/resources/views/docs/carousel.blade.php @@ -0,0 +1,192 @@ + + Carousel Component + Carousel + +

+ x-bladewind::carousel and x-bladewind::carousel.slide + step through a set of slides one at a time. Each slide can hold anything, an image, a card, a testimonial, + a promo banner. Visitors can move between slides with the arrow buttons, the dot indicators, the left and + right arrow keys, or by swiping on a touch screen. +

+ +

Basic Usage

+ + +
Slide 1
+
+ +
Slide 2
+
+ +
Slide 3
+
+
+
+        
+            <x-bladewind::carousel height="220px">
+                <x-bladewind::carousel.slide>
+                    ...
+                </x-bladewind::carousel.slide>
+                <x-bladewind::carousel.slide>
+                    ...
+                </x-bladewind::carousel.slide>
+                <x-bladewind::carousel.slide>
+                    ...
+                </x-bladewind::carousel.slide>
+            </x-bladewind::carousel>
+        
+    
+ +

Autoplay

+

+ Set autoplay="true" to advance slides automatically on an + interval, given in milliseconds. Autoplay pauses while the pointer is over the + carousel, and is switched off entirely for a visitor whose system has requested reduced motion. +

+ + +
Slide 1
+
+ +
Slide 2
+
+ +
Slide 3
+
+
+
+        
+            <x-bladewind::carousel height="220px" autoplay="true" interval="3000">
+                ...
+            </x-bladewind::carousel>
+        
+    
+ +

Without Looping

+

+ By default the carousel loops, so the next arrow from the last slide returns to the first. Set + loop="false" to stop at either end instead, disabling the corresponding arrow. +

+ + +
Slide 1
+
+ +
Slide 2
+
+ +
Slide 3
+
+
+
+        
+            <x-bladewind::carousel height="220px" loop="false">
+                ...
+            </x-bladewind::carousel>
+        
+    
+ +

Without Arrows Or Indicators

+

+ Set arrows="false" or indicators="false" to hide + either control. Swiping and the arrow keys keep working either way. +

+ + +
Slide 1
+
+ +
Slide 2
+
+
+
+        
+            <x-bladewind::carousel height="220px" arrows="false" indicators="false">
+                ...
+            </x-bladewind::carousel>
+        
+    
+ +

Full List Of Attributes

+

Carousel

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Slide

+ + +
+ + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > carousel > index.blade.php, + resources > views > components > bladewind > carousel > slide.blade.php + + + + + + + + + + + + + + diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..c7c150f2 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -9,6 +9,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..6988f994 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -50,6 +50,7 @@ ['Avatar', 'avatar', 'Represent people and teams with images or initials.'], ['Calendar', 'calendar', 'Display and select dates or events in an inline month or week grid.'], ['Card', 'card', 'Group related content and actions in a flexible surface.'], + ['Carousel', 'carousel', 'Slide through content or media with arrows, indicators, and swipe support.'], ['Chart', 'chart', 'Visualize application data with configurable charts.'], ['Data Grid', 'data-grid', 'Sort, filter, select and paginate data with client or server-driven state.'], ['Empty State', 'empty-state', 'Guide users when there is no content to display.'], diff --git a/routes/web.php b/routes/web.php index 869b90c5..4b327110 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::view('component/breadcrumbs', 'docs/breadcrumbs'); Route::view('component/calendar', 'docs/calendar'); Route::view('component/card', 'docs/card'); +Route::view('component/carousel', 'docs/carousel'); Route::view('component/centered-content', 'docs/centered-content'); Route::view('component/checkbox', 'docs/checkbox'); Route::view('component/chart', 'docs/chart'); From d41b0db5190863f15445080d358ffa7032b6c8da Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 20:36:54 +0000 Subject: [PATCH 22/44] Add Kanban component docs Documents the new kanban component: docs page covering the move hook, empty and loading column states, and column actions; route; catalogue entries; and mcp reference doc. --- mcp/index.md | 1 + mcp/kanban.md | 104 ++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/kanban.blade.php | 222 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 330 insertions(+) create mode 100644 mcp/kanban.md create mode 100644 resources/views/docs/kanban.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..f16f6219 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -40,6 +40,7 @@ Start here for installation, configuration, and theming. | Filepicker | `x-bladewind::filepicker` | [filepicker.md](filepicker.md) | | Horizontal Line Graph | `x-bladewind::horizontal-line-graph` | [horizontal-line-graph.md](horizontal-line-graph.md) | | Icon | `x-bladewind::icon` | [icon.md](icon.md) | +| Kanban | `x-bladewind::kanban` | [kanban.md](kanban.md) | | Input | `x-bladewind::input` | [input.md](input.md) | | List View | `x-bladewind::list-view` | [list-view.md](list-view.md) | | Modal | `x-bladewind::modal` | [modal.md](modal.md) | diff --git a/mcp/kanban.md b/mcp/kanban.md new file mode 100644 index 00000000..ad4b61f3 --- /dev/null +++ b/mcp/kanban.md @@ -0,0 +1,104 @@ +--- +title: Kanban Component +component: x-bladewind::kanban +url: /component/kanban +--- + +# Kanban + +`x-bladewind::kanban`, `x-bladewind::kanban.column` and `x-bladewind::kanban.card` build a board of columns holding draggable cards, the pattern behind any task tracker. A card can be dragged with the mouse or a touch screen between columns and within a column, or moved the same way with the keyboard: focus a card and use the arrow keys, up and down to reorder within a column, left and right to move it into the column beside it. + +```blade + + + Design the onboarding flow + Write the API documentation + + + Build the payments webhook + + + Set up the staging environment + + +``` + +## Reacting To A Move + +Set `on_move` on the board to the name of a JavaScript function. It is called after every move, whether by drag or by keyboard, as `(cardId, fromColumnId, toColumnId, newIndex)`. Use it to save the new position with a request to your backend. + +```blade + + ... + + + +``` + +## Empty State + +A column with no cards shows a short message instead of a blank space. Customise it with `empty_text`. + +```blade + + +``` + +## Loading State + +Set `loading="true"` on a column while its cards are still being fetched. It shows a spinner in place of the card list. + +```blade + + +``` + +## Column Actions + +Give a column an `actions` slot for a control shown beside its title, such as an add-card button. + +```blade + + + + + Design the onboarding flow + +``` + +## Attributes + +### Kanban + +| Attribute | Default | Description | +|---|---|---| +| animation | 150 | Animation speed in milliseconds when a card is dropped. 0 disables it. | +| on_move | _blank_ | Name of a JavaScript function called after every move as `(cardId, fromColumnId, toColumnId, newIndex)`. | +| class | _blank_ | Additional CSS classes for the board's wrapper element. | + +### Column + +| Attribute | Default | Description | +|---|---|---| +| title | _blank_ | The column's heading. | +| id | a slug of the title | Identifier reported to the move hook. Set it explicitly when the title alone is not a stable, unique key. | +| loading | false | Hides the card list and shows a spinner instead. `true` \| `false` | +| empty_text | No cards | Shown in place of the list when it has no cards and is not loading. | +| actions | _none_ | A named slot rendered beside the title. | +| class | _blank_ | Additional CSS classes for the column. | + +### Card + +| Attribute | Default | Description | +|---|---|---| +| value | _blank_ | Identifier reported to the move hook, for example a model id. | +| class | _blank_ | Additional CSS classes for the card. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..8e3ea3ef 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -23,6 +23,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..dab81503 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -55,6 +55,7 @@ ['Empty State', 'empty-state', 'Guide users when there is no content to display.'], ['Horizontal Line Graph', 'horizontal-line-graph', 'Compare values through compact horizontal bars.'], ['Icon', 'icon', 'Use the full Heroicons collection through Blade.'], + ['Kanban', 'kanban', 'Organize draggable cards into columns with keyboard-accessible reordering.'], ['List View', 'list-view', 'Display structured records in scannable rows.'], ['Statistic', 'statistic', 'Highlight important metrics and percentage changes.'], ['Table', 'table', 'Build searchable, sortable and responsive data tables.'], diff --git a/resources/views/docs/kanban.blade.php b/resources/views/docs/kanban.blade.php new file mode 100644 index 00000000..d9ff2d33 --- /dev/null +++ b/resources/views/docs/kanban.blade.php @@ -0,0 +1,222 @@ + + Kanban Component + Kanban + +

+ x-bladewind::kanban, x-bladewind::kanban.column and + x-bladewind::kanban.card build a board of columns holding draggable cards, the + pattern behind any task tracker. A card can be dragged with the mouse or a touch screen between columns and + within a column, or moved the same way with the keyboard: focus a card and use the arrow keys, up and down + to reorder within a column, left and right to move it into the column beside it. +

+ +

Basic Usage

+ + + Design the onboarding flow + Write the API documentation + + + Build the payments webhook + + + Set up the staging environment + + +
+        
+            <x-bladewind::kanban>
+                <x-bladewind::kanban.column title="To do" id="todo">
+                    <x-bladewind::kanban.card value="1">Design the onboarding flow</x-bladewind::kanban.card>
+                    <x-bladewind::kanban.card value="2">Write the API documentation</x-bladewind::kanban.card>
+                </x-bladewind::kanban.column>
+                <x-bladewind::kanban.column title="In progress" id="in-progress">
+                    <x-bladewind::kanban.card value="3">Build the payments webhook</x-bladewind::kanban.card>
+                </x-bladewind::kanban.column>
+                <x-bladewind::kanban.column title="Done" id="done">
+                    <x-bladewind::kanban.card value="4">Set up the staging environment</x-bladewind::kanban.card>
+                </x-bladewind::kanban.column>
+            </x-bladewind::kanban>
+        
+    
+ +

Reacting To A Move

+

+ Set on_move on the board to the name of a JavaScript function. It is called + after every move, whether by drag or by keyboard, as + (cardId, fromColumnId, toColumnId, newIndex). Use it to save the new position + with a request to your backend. +

+
+        
+            <x-bladewind::kanban on_move="saveCardPosition">
+                ...
+            </x-bladewind::kanban>
+
+            <script>
+                function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) {
+                    fetch('/tasks/' + cardId + '/move', {
+                        method: 'POST',
+                        body: JSON.stringify({ column: toColumnId, position: newIndex }),
+                    });
+                }
+            </script>
+        
+    
+ +

Empty State

+

A column with no cards shows a short message instead of a blank space. Customise it with empty_text.

+ + + +
+        
+            <x-bladewind::kanban.column title="Backlog" id="backlog" empty_text="Nothing queued up yet">
+            </x-bladewind::kanban.column>
+        
+    
+ +

Loading State

+

+ Set loading="true" on a column while its cards are still being fetched. It + shows a spinner in place of the card list. +

+ + + +
+        
+            <x-bladewind::kanban.column title="Review" id="review" loading="true">
+            </x-bladewind::kanban.column>
+        
+    
+ +

Column Actions

+

Give a column an actions slot for a control shown beside its title, such as an add-card button.

+ + + + + + Design the onboarding flow + + +
+        
+            <x-bladewind::kanban.column title="To do" id="todo">
+                <x-slot:actions>
+                    <button type="button">
+                        <x-bladewind::icon name="plus" />
+                    </button>
+                </x-slot:actions>
+                <x-bladewind::kanban.card value="1">Design the onboarding flow</x-bladewind::kanban.card>
+            </x-bladewind::kanban.column>
+        
+    
+ +

Full List Of Attributes

+

Kanban

+ + +
+ + + + + + + + + + + + + + + + + + + + +

Column

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Card

+ + +
+ + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > kanban > index.blade.php, + resources > views > components > bladewind > kanban > column.blade.php, + resources > views > components > bladewind > kanban > card.blade.php + + + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..1c400e19 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::view('component/breadcrumbs', 'docs/breadcrumbs'); Route::view('component/calendar', 'docs/calendar'); Route::view('component/card', 'docs/card'); +Route::view('component/kanban', 'docs/kanban'); Route::view('component/centered-content', 'docs/centered-content'); Route::view('component/checkbox', 'docs/checkbox'); Route::view('component/chart', 'docs/chart'); From be227f78d7da582c66a078692ecc15543f0aa839 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 20:49:33 +0000 Subject: [PATCH 23/44] Add Scheduler component docs Documents the new scheduler component: docs page covering day view with resources, week view, visible hours and grid granularity, selection hooks, and the timezone label; route; catalogue entries; and mcp reference doc. --- mcp/index.md | 1 + mcp/scheduler.md | 97 ++++++++ .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/scheduler.blade.php | 229 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 330 insertions(+) create mode 100644 mcp/scheduler.md create mode 100644 resources/views/docs/scheduler.blade.php diff --git a/mcp/index.md b/mcp/index.md index 62888019..d81ec79f 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -40,6 +40,7 @@ Start here for installation, configuration, and theming. | Filepicker | `x-bladewind::filepicker` | [filepicker.md](filepicker.md) | | Horizontal Line Graph | `x-bladewind::horizontal-line-graph` | [horizontal-line-graph.md](horizontal-line-graph.md) | | Icon | `x-bladewind::icon` | [icon.md](icon.md) | +| Scheduler | `x-bladewind::scheduler` | [scheduler.md](scheduler.md) | | Input | `x-bladewind::input` | [input.md](input.md) | | List View | `x-bladewind::list-view` | [list-view.md](list-view.md) | | Modal | `x-bladewind::modal` | [modal.md](modal.md) | diff --git a/mcp/scheduler.md b/mcp/scheduler.md new file mode 100644 index 00000000..5779e523 --- /dev/null +++ b/mcp/scheduler.md @@ -0,0 +1,97 @@ +--- +title: Scheduler Component +component: x-bladewind::scheduler +url: /component/scheduler +--- + +# Scheduler + +The scheduler component lays out a day or a week as an hour grid and places timed events on it, the pattern behind a room booking board, a staff roster, or an appointment calendar. Give it a `date` and, for day view, a list of `resources` such as rooms or staff members. Each resource becomes its own column, and events are placed by their start and end time. Two events that overlap share their column side by side instead of stacking on top of each other. + +```blade + + +``` + +## Week View + +Set `view="week"` to show the seven days of the week containing `date` as columns instead. Resources are not used in week view. + +```blade + + +``` + +## Visible Hours And Grid Granularity + +Set `start_hour` and `end_hour` to the range worth showing, and `slot_minutes` (60, 30, or 15) for finer gridlines. + +```blade + + +``` + +## Selection Hooks + +Set `on_slot_click` to the name of a JavaScript function to react to a click on an empty slot, called as `(columnId, "H:i")`, where `columnId` is a resource id in day view or a date in week view. Set `on_event_click` to react to a click on an existing event instead, called as `(eventId)`. An event given an `href` renders as a real link and does not fire `on_event_click`. + +```blade + + + + +``` + +## Timezone Label + +This component does not convert times itself. Pass event times already converted to the viewer's timezone, and optionally set `timezone` to show a label confirming which one is in use. + +```blade + + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| view | day | `day` \| `week` | +| date | today | Anchor date (`Y-m-d`). Day view shows just that day; week view shows the week containing it. | +| resources | _empty_ | Day view's columns: `[['id' => 'r1', 'label' => 'Room A'], ...]`. Ignored in week view. | +| events | _empty_ | `['id', 'label', 'start' => 'Y-m-d H:i', 'end' => 'Y-m-d H:i', 'color', 'resource_id', 'href']`. An event outside the visible hour range is clipped to it, not hidden. | +| start_hour | 8 | First visible hour (0-23). | +| end_hour | 18 | Last visible hour, exclusive (1-24). | +| slot_minutes | 60 | Grid line granularity. `60` \| `30` \| `15` | +| week_starts | 1 | First day of the week used by week view. `0` (Sunday) or `1` (Monday) | +| timezone | _blank_ | A display-only label. Convert event times to the viewer's timezone yourself before passing them in. | +| on_slot_click | _blank_ | Name of a JavaScript function called as `(columnId, "H:i")` when an empty slot is clicked. | +| on_event_click | _blank_ | Name of a JavaScript function called as `(eventId)` when an event without an `href` is clicked. | +| class | _blank_ | Additional CSS classes for the wrapper element. | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..6a6656be 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -23,6 +23,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..b25ed0b5 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -55,6 +55,7 @@ ['Empty State', 'empty-state', 'Guide users when there is no content to display.'], ['Horizontal Line Graph', 'horizontal-line-graph', 'Compare values through compact horizontal bars.'], ['Icon', 'icon', 'Use the full Heroicons collection through Blade.'], + ['Scheduler', 'scheduler', 'Show a day or week resource schedule with time slots and events.'], ['List View', 'list-view', 'Display structured records in scannable rows.'], ['Statistic', 'statistic', 'Highlight important metrics and percentage changes.'], ['Table', 'table', 'Build searchable, sortable and responsive data tables.'], diff --git a/resources/views/docs/scheduler.blade.php b/resources/views/docs/scheduler.blade.php new file mode 100644 index 00000000..38e32db4 --- /dev/null +++ b/resources/views/docs/scheduler.blade.php @@ -0,0 +1,229 @@ + + Scheduler Component + Scheduler + + @php + $roomEvents = [ + ['id' => 1, 'resource_id' => 'room-a', 'label' => 'Team standup', 'start' => '2027-03-10 09:00', 'end' => '2027-03-10 09:30', 'color' => 'primary'], + ['id' => 2, 'resource_id' => 'room-a', 'label' => 'Design review', 'start' => '2027-03-10 11:00', 'end' => '2027-03-10 12:00', 'color' => 'cyan'], + ['id' => 3, 'resource_id' => 'room-b', 'label' => 'Client call', 'start' => '2027-03-10 10:00', 'end' => '2027-03-10 11:00', 'color' => 'orange'], + ['id' => 4, 'resource_id' => 'room-b', 'label' => 'Interview', 'start' => '2027-03-10 10:30', 'end' => '2027-03-10 11:30', 'color' => 'violet'], + ['id' => 5, 'resource_id' => 'room-c', 'label' => 'Retro', 'start' => '2027-03-10 14:00', 'end' => '2027-03-10 15:00', 'color' => 'green'], + ]; + $weekEvents = [ + ['id' => 1, 'label' => 'Team standup', 'start' => '2027-03-08 09:00', 'end' => '2027-03-08 09:30', 'color' => 'primary'], + ['id' => 2, 'label' => 'Design review', 'start' => '2027-03-09 11:00', 'end' => '2027-03-09 12:00', 'color' => 'cyan'], + ['id' => 3, 'label' => 'Client call', 'start' => '2027-03-10 10:00', 'end' => '2027-03-10 11:00', 'color' => 'orange'], + ['id' => 4, 'label' => 'Retro', 'start' => '2027-03-12 14:00', 'end' => '2027-03-12 15:00', 'color' => 'green'], + ]; + @endphp + +

+ The scheduler component lays out a day or a week as an hour grid and places timed events on it, the pattern + behind a room booking board, a staff roster, or an appointment calendar. Give it a date + and, for day view, a list of resources such as rooms or staff members. Each + resource becomes its own column, and events are placed by their start and end time. Two events that overlap + share their column side by side instead of stacking on top of each other. +

+ +

Day View With Resources

+ +
+        
+            <x-bladewind::scheduler
+                date="2027-03-10"
+                :resources="[
+                    ['id' => 'room-a', 'label' => 'Room A'],
+                    ['id' => 'room-b', 'label' => 'Room B'],
+                    ['id' => 'room-c', 'label' => 'Room C'],
+                ]"
+                :events="[
+                    ['id' => 1, 'resource_id' => 'room-a', 'label' => 'Team standup', 'start' => '2027-03-10 09:00', 'end' => '2027-03-10 09:30', 'color' => 'primary'],
+                    ...
+                ]">
+            </x-bladewind::scheduler>
+        
+    
+ +

Week View

+

+ Set view="week" to show the seven days of the week containing date + as columns instead. Resources are not used in week view. +

+ +
+        
+            <x-bladewind::scheduler view="week" date="2027-03-10" :events="$events">
+            </x-bladewind::scheduler>
+        
+    
+ +

Visible Hours And Grid Granularity

+

+ Set start_hour and end_hour to the range worth + showing, and slot_minutes (60, 30, or 15) for finer gridlines. +

+ +
+        
+            <x-bladewind::scheduler
+                date="2027-03-10"
+                start_hour="12"
+                end_hour="16"
+                slot_minutes="30"
+                :resources="..."
+                :events="...">
+            </x-bladewind::scheduler>
+        
+    
+ +

Selection Hooks

+

+ Set on_slot_click to the name of a JavaScript function to react to a click on + an empty slot, called as (columnId, "H:i"), where columnId + is a resource id in day view or a date in week view. Set on_event_click to react + to a click on an existing event instead, called as (eventId). An event given an + href renders as a real link and does not fire on_event_click. +

+
+        
+            <x-bladewind::scheduler
+                date="2027-03-10"
+                on_slot_click="proposeBooking"
+                on_event_click="showBookingDetails"
+                :resources="..."
+                :events="...">
+            </x-bladewind::scheduler>
+
+            <script>
+                function proposeBooking(columnId, time) {
+                    console.log('Book', columnId, 'at', time);
+                }
+                function showBookingDetails(eventId) {
+                    console.log('Show booking', eventId);
+                }
+            </script>
+        
+    
+ +

Timezone Label

+

+ This component does not convert times itself. Pass event times already converted to the viewer's timezone, + and optionally set timezone to show a label confirming which one is in use. +

+ +
+        
+            <x-bladewind::scheduler date="2027-03-10" timezone="America/New_York" ...>
+            </x-bladewind::scheduler>
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > scheduler.blade.php + + + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..b16a2b2f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::view('component/breadcrumbs', 'docs/breadcrumbs'); Route::view('component/calendar', 'docs/calendar'); Route::view('component/card', 'docs/card'); +Route::view('component/scheduler', 'docs/scheduler'); Route::view('component/centered-content', 'docs/centered-content'); Route::view('component/checkbox', 'docs/checkbox'); Route::view('component/chart', 'docs/chart'); From 058c0cfe88b87585841e46b60b43875abf612324 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 21:09:46 +0000 Subject: [PATCH 24/44] Add Credit Card component docs Documents the new credit-card component: docs page covering flipping to the CVC, pre-filling fields, forcing a network, theming, the inline variant, and validation; route; catalogue entries; and mcp reference doc. --- mcp/credit-card.md | 107 ++++++++ mcp/index.md | 1 + .../views/docs/components-list.blade.php | 1 + resources/views/docs/components.blade.php | 1 + resources/views/docs/credit-card.blade.php | 240 ++++++++++++++++++ routes/web.php | 1 + 6 files changed, 351 insertions(+) create mode 100644 mcp/credit-card.md create mode 100644 resources/views/docs/credit-card.blade.php diff --git a/mcp/credit-card.md b/mcp/credit-card.md new file mode 100644 index 00000000..12bc5942 --- /dev/null +++ b/mcp/credit-card.md @@ -0,0 +1,107 @@ +--- +title: Credit Card Component +component: x-bladewind::credit-card +url: /component/credit-card +--- + +# Credit Card + +`x-bladewind::credit-card` is a flippable credit card input. The front holds the card number, cardholder name, and expiry; a small round button on the card's right edge flips it to the back to enter the security code. The network name is detected live from the number as it is typed, and capped and grouped the way that network actually formats its numbers, four digits at a time for most networks, four-six-five for American Express. + +This component is not form-associated on purpose. Card data is sensitive and normally belongs with a payment provider's own tokenization SDK, not a plain form submission. Read the current value with `window.yourCardName.value`, or set `on_change` to a JavaScript function called with the same value whenever it changes. + +```blade + +``` + +## Flipping To The CVC + +Click the round button on the card's edge to flip to the back and enter the security code. The same button flips back, and so does the Escape key while flipped. + +```blade + +``` + +## Pre-Filling Fields + +`number`, `cardholder_name`, `expiry_month`, `expiry_year`, and `cvc` are all plain attributes. `number` accepts either raw digits or a masked saved-card value such as `•••• •••• •••• 4242`, preserved as-is for an edit screen rather than reformatted. + +```blade + + +``` + +## Forcing A Network + +Leave `brand` unset to auto-detect from the number. Set it explicitly to override, for example a saved card where the network is already known but the full number is not shown. + +```blade + +``` + +## Theming + +Set `color` to any colour in the palette to change the gradient. + +```blade + +``` + +Set `variant="outline"` for a bare card silhouette instead of the full-colour gradient face. + +```blade + +``` + +## Inline Card Information + +Set `variant="inline"` for the compact layout: card number on one row, expiry and CVC on the next, with no cardholder name field or flip animation. + +```blade + +``` + +## Validation + +With `required="true"`, `window.yourCardName.validate()` checks that every field is complete: a full-length number for the detected network, a non-blank name, a non-expired month/year, and a full-length security code. Add `show_error_inline="true"` and `error_message` to show a message beneath the card when it fails. + +```blade + + + + +``` + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | auto-generated | Used as the JS variable the component is exposed on (`window.{name}`) and to scope its script tags. Not a form field — this component does not submit. | +| cardholder_name | _blank_ | Name printed on the card. | +| number | _blank_ | Card number, auto-grouped per network as the user types. A masked value like `•••• •••• •••• 4242` is preserved as-is. | +| expiry_month / expiry_year | _blank_ | Two-digit month (`01`-`12`) and year. | +| cvc | _blank_ | Security code (3 digits, 4 for American Express). | +| brand | auto-detected | `visa` \| `mastercard` \| `amex` \| `discover` \| `diners` \| `jcb` \| `unionpay` \| `maestro` | +| color | primary | Gradient colour, from the shared palette. Ignored in the outline variant. | +| variant | gradient | `gradient` for the full-colour face, `outline` for a bare silhouette, or `inline` for number/expiry/CVC fields only. | +| flipped | false | Shows the back face. `true` \| `false` | +| disabled | false | Disables every field and hides the flip button. `true` \| `false` | +| readonly | false | Makes every field read-only. `true` \| `false` | +| required | false | Whether `validate()` fails while any field is incomplete. `true` \| `false` | +| error_message | _blank_ | Message shown when validation fails and `show_error_inline` is set. | +| show_error_inline | false | Renders the error message beneath the card. `true` \| `false` | +| on_change | _blank_ | Name of a JavaScript function called with the structured value whenever it changes. | +| class | _blank_ | Additional CSS classes for the wrapper element. | diff --git a/mcp/index.md b/mcp/index.md index 62888019..a3b8188f 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -33,6 +33,7 @@ Start here for installation, configuration, and theming. | Chart | `x-bladewind::chart` | [chart.md](chart.md) | | Checkbox | `x-bladewind::checkbox` | [checkbox.md](checkbox.md) | | Check Card | `x-bladewind::checkcard` | [checkcard.md](checkcard.md) | +| Credit Card | `x-bladewind::credit-card` | [credit-card.md](credit-card.md) | | Color Picker | `x-bladewind::colorpicker` | [colorpicker.md](colorpicker.md) | | Date Picker | `x-bladewind::datepicker` | [datepicker.md](datepicker.md) | | Drop Menu | `x-bladewind::dropmenu` | [dropmenu.md](dropmenu.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index d613a4b4..dcc5711b 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -13,6 +13,7 @@ + diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index ab493f5a..b69714c4 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -9,6 +9,7 @@ ['Button', 'button', 'Trigger actions with primary, secondary, outline and icon styles.'], ['Checkbox', 'checkbox', 'Let users select one or more options clearly.'], ['CheckCard', 'checkcard', 'Turn rich content cards into selectable controls.'], + ['Credit Card', 'credit-card', 'A flippable credit card input with live network detection.'], ['Colorpicker', 'colorpicker', 'Choose colours through a compact visual control.'], ['Datepicker', 'datepicker', 'Select single dates, ranges and preset periods.'], ['Filepicker', 'filepicker', 'Handle drag-and-drop and conventional file selection.'], diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php new file mode 100644 index 00000000..3ecf1865 --- /dev/null +++ b/resources/views/docs/credit-card.blade.php @@ -0,0 +1,240 @@ + + Credit Card Component + Credit Card + +

+ x-bladewind::credit-card is a flippable credit card input. The front holds the + card number, cardholder name, and expiry; a small round button on the card's right edge flips it to the + back to enter the security code. The network name is detected live from the number as it is typed, and + capped and grouped the way that network actually formats its numbers, four digits at a time for most + networks, four-six-five for American Express. +

+

+ This component is not form-associated on purpose. Card data is sensitive and normally belongs with a + payment provider's own tokenization SDK, not a plain form submission. Read the current value with + window.yourCardName.value, or set on_change to a + JavaScript function called with the same value whenever it changes. +

+ +

Basic Usage

+ +
+        
+            <x-bladewind::credit-card cardholder_name="Emma Reid"></x-bladewind::credit-card>
+        
+    
+ +

Flipping To The CVC

+

+ Click the round button on the card's edge to flip to the back and enter the security code. The same button + flips back, and so does the Escape key while flipped. +

+
+        
+            <x-bladewind::credit-card flipped="true"></x-bladewind::credit-card>
+        
+    
+ +

Pre-Filling Fields

+

+ number, cardholder_name, + expiry_month, expiry_year, and + cvc are all plain attributes. number accepts either + raw digits or a masked saved-card value such as •••• •••• •••• 4242, preserved + as-is for an edit screen rather than reformatted. +

+ +
+        
+            <x-bladewind::credit-card
+                cardholder_name="Emma Reid"
+                number="4242424242424242"
+                expiry_month="07"
+                expiry_year="28">
+            </x-bladewind::credit-card>
+        
+    
+ +

Forcing A Network

+

+ Leave brand unset to auto-detect from the number. Set it explicitly to + override, for example a saved card where the network is already known but the full number is not shown. +

+ +
+        
+            <x-bladewind::credit-card brand="visa" number="•••• •••• •••• 4242"></x-bladewind::credit-card>
+        
+    
+ +

Theming

+

Set color to any colour in the palette to change the gradient.

+ +
+        
+            <x-bladewind::credit-card color="green"></x-bladewind::credit-card>
+        
+    
+ +

Set variant="outline" for a bare card silhouette instead of the full-colour gradient face.

+ +
+        
+            <x-bladewind::credit-card variant="outline" cardholder_name="Emma Reid"></x-bladewind::credit-card>
+        
+    
+ +

Inline Card Information

+

+ Set variant="inline" for the compact layout: card number on one row, expiry and + CVC on the next, with no cardholder name field or flip animation. +

+ +
+        
+            <x-bladewind::credit-card variant="inline"></x-bladewind::credit-card>
+        
+    
+ +

Validation

+

+ With required="true", window.yourCardName.validate() + checks that every field is complete: a full-length number for the detected network, a non-blank name, a + non-expired month/year, and a full-length security code. Add + show_error_inline="true" and error_message to show + a message beneath the card when it fails. +

+ +
+        
+            <x-bladewind::credit-card
+                name="checkout_card"
+                required="true"
+                show_error_inline="true"
+                error_message="Complete the card details to continue">
+            </x-bladewind::credit-card>
+
+            <script>
+                payButton.addEventListener('click', () => {
+                    if (!window.checkout_card.validate()) return;
+                    // proceed
+                });
+            </script>
+        
+    
+ +

Full List Of Attributes

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The source file for this component is available in resources > views > components > bladewind > credit-card.blade.php + + + + + + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 869b90c5..7ceb1b84 100644 --- a/routes/web.php +++ b/routes/web.php @@ -26,6 +26,7 @@ Route::view('component/checkbox', 'docs/checkbox'); Route::view('component/chart', 'docs/chart'); Route::view('component/checkcard', 'docs/checkcard'); +Route::view('component/credit-card', 'docs/credit-card'); Route::view('component/datepicker', 'docs/datepicker'); Route::view('component/colorpicker', 'docs/colorpicker'); Route::view('component/command-palette', 'docs/command-palette'); From 5b62622084aa43e70e0ee1ef6957d03d7d8836a1 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sat, 5 Sep 2026 21:53:20 +0000 Subject: [PATCH 25/44] Regenerate MCP component docs Refresh all existing mcp/*.md files against their current blade sources, add docs for breadcrumbs, command-palette, data-grid, drawer, sidebar, and stepper, and fix component-tag/slug mismatches in verification-code, radio-button, and checkcard entries. --- mcp/accordion.md | 119 +++---- mcp/alert.md | 149 +++++---- mcp/avatar.md | 134 +++----- mcp/bell.md | 92 ++---- mcp/breadcrumbs.md | 132 ++++++++ mcp/button.md | 189 ++++++----- mcp/calendar.md | 275 ++++++++++------ mcp/card.md | 240 ++++++-------- mcp/centered-content.md | 16 +- mcp/chart.md | 259 ++++----------- mcp/checkbox.md | 91 ++++-- mcp/checkcard.md | 255 +++++++-------- mcp/colorpicker.md | 49 ++- mcp/command-palette.md | 175 ++++++++++ mcp/data-grid.md | 389 ++++++++++++++++++++++ mcp/datepicker.md | 99 +++--- mcp/drawer.md | 189 +++++++++++ mcp/dropmenu.md | 173 ++++++---- mcp/empty-state.md | 53 +-- mcp/filepicker.md | 360 ++++++++++++++++----- mcp/horizontal-line-graph.md | 54 ++-- mcp/icon.md | 73 +++-- mcp/index.md | 12 +- mcp/input.md | 292 +++++++++-------- mcp/modal.md | 404 +++++++---------------- mcp/notification.md | 56 ++-- mcp/number.md | 51 +-- mcp/popover.md | 65 ++-- mcp/process-indicator.md | 117 ++++--- mcp/progress-bar.md | 94 ++++-- mcp/progress-circle.md | 55 ++-- mcp/radio-button.md | 104 +++--- mcp/rating.md | 34 +- mcp/select.md | 339 ++++++++++--------- mcp/shimmer.md | 65 +--- mcp/sidebar.md | 253 +++++++++++++++ mcp/slider.md | 48 +-- mcp/sortable.md | 81 +++-- mcp/spinner.md | 20 +- mcp/statistic.md | 148 ++++++--- mcp/stepper.md | 300 +++++++++++++++++ mcp/tab.md | 88 +++-- mcp/table.md | 612 ++++++++++++++++++++++++++--------- mcp/tag.md | 188 ++++++----- mcp/textarea.md | 89 +++-- mcp/theme-switcher.md | 26 +- mcp/timeline.md | 279 +++++++++++----- mcp/timepicker.md | 53 +-- mcp/toggle.md | 64 ++-- mcp/tooltip.md | 32 +- mcp/verification-code.md | 229 +++++++------ 51 files changed, 4937 insertions(+), 2826 deletions(-) create mode 100644 mcp/breadcrumbs.md create mode 100644 mcp/command-palette.md create mode 100644 mcp/data-grid.md create mode 100644 mcp/drawer.md create mode 100644 mcp/sidebar.md create mode 100644 mcp/stepper.md diff --git a/mcp/accordion.md b/mcp/accordion.md index 4d820548..3d38869f 100644 --- a/mcp/accordion.md +++ b/mcp/accordion.md @@ -6,27 +6,26 @@ url: /component/accordion # Accordion -The accordion component allows users to expand or collapse sections of content. It's commonly used to organize information in a compact, accessible way. Each section typically has a header that can be clicked to toggle the visibility of its associated content. +The accordion component lets users expand or collapse sections of content, keeping information compact and accessible. Each section has a clickable header that toggles the visibility of its content. ## Basic Usage -Each accordion item requires a `title` attribute for the clickable header. The body content is placed inside the item tags. - ```blade

- BladewindUI is a collection... + BladewindUI is a collection of super simple but elegant Laravel blade-based UI components using TailwindCSS and vanilla Javascript.

- At the root of your Laravel... + At the root of your Laravel project, type the following composer command in your terminal to pull in the package. +
composer require bladewindui/ui
- BladewindUI has been designed ... + BladewindUI has been designed to not interfere with the existing components in your project.
@@ -34,92 +33,66 @@ Each accordion item requires a `title` attribute for the clickable header. The b ## Custom Title Slot -If the title of your accordion item is not a simple string, you can define your content in a title slot. +If the title of your accordion item is not a simple string, define the content in a `title` slot instead of the `title` attribute. ```blade
-
logo
+
logo
What is BladewindUI library?
-
version 2.8.0
+
version 2.8.0

- BladewindUI is a collection... + BladewindUI is a collection of super simple but elegant Laravel blade-based UI components.

- ...
``` ## Open Multiple Accordion Items -By default only one accordion can stay open at any point in time. You can disable this feature by setting `can_open_multiple="true"`. Now any closed accordion that is clicked will be opened. Likewise, any accordion that is open will be closed when clicked. +By default only one accordion item can stay open at a time. Set `can_open_multiple="true"` to allow any closed item to open without closing the others. ```blade - + -

- BladewindUI is a collection... -

-
- -
- At the root of your Laravel... -
-
- -
- BladewindUI has been designed ... -
+ ...
``` ## Ungrouped Accordions -The examples above showed the accordion items within one card element, each separated by a line. To separate accordion items so they stand alone, set `grouped="false"`. +The examples above group accordion items in one card, separated by lines. To make each item stand alone, set `grouped="false"`. ```blade - + -

- BladewindUI is a collection... -

-
- -
- At the root of your Laravel... -
-
- -
- BladewindUI has been designed ... -
+ ...
``` ## Colourful Accordions -You can define the background colour of the accordion by setting the `color` attribute. This is only enforced if `grouped="false"`. Available colours include: `primary`, `blue`, `red`, `yellow`, `green`, `purple`, `pink`, `orange`, `black`, `cyan`, `violet`, `indigo`, `fuchsia`. +You can set the background colour of the accordion with the `color` attribute. This only takes effect when `grouped="false"`. ```blade - + -

- BladewindUI is a collection... -

+ ... +
+
+ + + + ... -... ``` @@ -129,24 +102,24 @@ You can define the background colour of the accordion by setting the `color` att | Attribute | Default | Description | |---|---|---| -| grouped | true | Should the accordion items be grouped within one card container. If `true`, the accordions are divided by lines and grouped in one big container. `true` \| `false` | -| can_open_multiple | false | Should the accordion allow opening of items without first closing what is open. `true` \| `false` | -| color | _blank_ | The accordion background. Applicable when `grouped="false"`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | -| no_padding | false | Specifies if there should be air around the accordion group. `true` \| `false` | -| content_can_close | true | Determines if clicking on the accordion content will close it when it is open. `true` \| `false` | -| class | _blank_ | Any additional css classes can be added using this attribute. For example to make your accordion more rounded you can add `class="rounded-2xl"`. | +| grouped | true | Whether the accordion items are grouped within one card container, divided by lines. `true` \| `false` | +| can_open_multiple | false | Whether the accordion allows opening items without first closing what is open. `true` \| `false` | +| color | *blank* | The accordion background. Applies when `grouped="false"`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | +| no_padding | false | Whether there should be air around the accordion group. `true` \| `false` | +| content_can_close | true | Whether clicking the accordion content closes it when open. `true` \| `false` | +| class | *blank* | Any additional css classes, e.g. `class="rounded-2xl"`. | ### Accordion Item Component | Attribute | Default | Description | |---|---|---| -| open | false | Should the accordion items be opened or closed by default. `true` \| `false` | -| title | _blank_ | Label to display as the title of the accordion. | -| color | _blank_ | The accordion background. Applicable when `grouped="false"`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | -| class | _blank_ | Any additional css classes can be added using this attribute. | -| no_padding | false | Specifies if there should be air around each accordion item. `true` \| `false` | -| content_can_close | true | Determines if clicking on the accordion content will close it when it is open. `true` \| `false` | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts. | +| open | false | Whether the accordion item is open or closed by default. `true` \| `false` | +| title | *blank* | Label to display as the title of the accordion. | +| color | *blank* | The accordion background. Applies when `grouped="false"`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | +| class | *blank* | Any additional css classes, e.g. `class="rounded-2xl"`. | +| no_padding | false | Whether there should be air around the accordion item. `true` \| `false` | +| content_can_close | true | Whether clicking the accordion content closes it when open. `true` \| `false` | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can be set globally via the `script` key in `config/bladewind.php`. | ## Full Example @@ -156,16 +129,12 @@ You can define the background colour of the accordion by setting the `color` att can_open_multiple="false" color="pink" class="rounded-lg shadow-sm"> -... + + ... +
``` - -```blade - -... - -``` diff --git a/mcp/alert.md b/mcp/alert.md index 56a27e8a..c7d906d3 100644 --- a/mcp/alert.md +++ b/mcp/alert.md @@ -6,141 +6,148 @@ url: /component/alert # Alert -The alert component displays inline messages intended to get the attention of your users. Alerts come in two shade variants — `faint` (default) and `dark` — and four prebuilt types: `info`, `error`, `warning`, and `success`. Each prebuilt type has a default icon. Custom colours, icons, and avatars are also supported. - -For floating/overlay alerts, see the [Notification](/component/notification) component instead. +The alert component displays inline messages intended to get the attention of your end users. It comes in two shades, faint and dark (not to be confused with dark mode), and four prebuilt types: `info`, `error`, `warning`, and `success`, each with their own default icon. For a more attention-seeking, floating alert, see the Notification component. ## Basic Usage ```blade - Your subscription is expiring in 19 days. Renew now + Your subscription is expiring in 19 days. + Renew now +``` - - You do not have permission to upload files - +## Faint Coloured Alerts - - Well, this is your first warning. - +By default alerts render in a faint shade. The four prebuilt types are `info` (default), `error`, `warning`, and `success`. - - Files were successfully uploaded - +```blade +Your subscription is expiring in 19 days. Renew now + +You do not have permission to upload files + +Well, this is your first warning. Do that again and I'll wipe your hard disk + +Files were successfully uploaded ``` -## Shades +## Dark Coloured Alerts -Set `shade="dark"` for a darker background variant. +Set `shade="dark"` to get darker colours for any alert type. ```blade Your subscription is expiring in 19 days. + Renew now - - You do not have permission to upload files - +You do not have permission to upload files + +Well, this is your first warning. Do that again and I'll wipe your hard disk + +Files were successfully uploaded ``` -## Hiding Icons +## Without Icons -By default, alerts show both a type icon and a close icon. Both can be hidden independently. +By default the alert shows a close icon and a type icon. Both can be turned off independently with `show_icon="false"` and `show_close_icon="false"`. ```blade -{{-- hide the close icon only --}} - - Message here + + Your subscription is expiring in 19 days. + Renew now -{{-- hide the type icon only --}} - - Message here - +You do not have permission to upload files -{{-- hide both icons --}} - - Message here - +Well, this is your first warning. ``` -## Custom Colours +## More Colours -All BladewindUI palette colours are supported on both `faint` and `dark` shades. +The Alert component can be displayed in any of the colours defined in the BladewindUI palette, in both `dark` and `faint` shades: `pink`, `cyan`, `purple`, `gray`, `violet`, `indigo`, `fuchsia`, `orange`, `transparent`, and more. ```blade -I am a pink alert. -I am a pink alert. Dark version. -I am a cyan alert. -I am a purple alert. -I am an orange alert. -I am a violet alert. -I am an indigo alert. -I am a fuchsia alert. -I am a gray alert. -I am a transparent alert. +I am a pink alert. How do I look? +I am a pink alert. Dark version. How do I look? + +I am a cyan alert. How do I look? +I am a purple alert. How do I look? +I am a gray alert. How do I look? +I am a violet alert. How do I look? +I am a indigo alert. How do I look? +I am a fuchsia alert. How do I look? +I am a orange alert. How do I look? +I am a transparent alert. How do I look? ``` -## Custom Icons +## Other Icons & Avatars -The four prebuilt alert types have their own icons. For other colours or types, set the `icon` attribute to any [Heroicons](https://heroicons.com) name. +The four prebuilt alerts (error, warning, info, success) have their own icons; all others do not. Set the `icon` attribute to any Heroicons icon name to display one. ```blade - - No more alarm snoozing. Wake up! - +No more alarm snoozing. Wake up! Your BladewindUI subscription is expiring soon. Pay up! ``` -To adjust the icon size, use `icon_avatar_css` with TailwindCSS classes. +If the default icon size does not suit your needs, set `icon_avatar_css` to your preferred TailwindCSS classes. ```blade - +
Subscription overdue
- Your BladewindUI subscription is overdue by 3 months. + Your BladewindUI subscription is overdue by 3 months. Please pay before the 30th of this month to + avoid losing your information.
``` -## Avatars - -Use an image as a prefix instead of an icon by setting the `avatar` attribute to an image URL. Avatars are rendered using the [Avatar](/component/avatar) component. +It is also possible to use an avatar instead of an icon, using the Avatar component. The default avatar size is `tiny`; other sizes are available via the `size` attribute. ```blade - + Jane has been added to your friends list -{{-- with a ring and larger size --}} - +
New friend request
Jane C. Doe wants to connect as a friend in your professional network.
2 days ago
``` +Alerts are commonly combined with the Dropmenu component to build a notifications list, using `color="transparent"` so each alert blends into the dropdown. + +```blade + + +
You have 5 new notifications
+
+ + +
Meeting starts in 5 minutes
+ Functional specification meeting +
+
+
+``` + ## Attributes | Attribute | Default | Description | |---|---|---| | type | info | `info` \| `error` \| `warning` \| `success` | | shade | faint | `faint` \| `dark` | -| color | _(blank)_ | Override colour: `primary` `blue` `red` `yellow` `green` `purple` `pink` `orange` `black` `cyan` `violet` `indigo` `fuchsia` `gray` `transparent` | -| show_close_icon | true | Show the dismiss (×) icon. String, not boolean. `true` \| `false` | -| show_icon | true | Show the type icon. String, not boolean. `true` \| `false` | -| icon | _(blank)_ | Any [Heroicons](https://heroicons.com) icon name | -| avatar | _(blank)_ | URL to an image to display as a prefix | -| icon_avatar_css | _(blank)_ | Additional TailwindCSS classes for the icon or avatar | -| size | tiny | Avatar size (inherits from Avatar component): `tiny` `small` `regular` `medium` `big` | -| show_ring | false | Show a ring around the avatar. `true` \| `false` | -| class | _(blank)_ | Additional CSS classes applied to the alert wrapper | +| show_close_icon | true | Whether the close icon is shown. Must be set as a string, not a boolean. `true` \| `false` | +| show_icon | true | Whether the alert type icon is displayed. Must be set as a string, not a boolean. `true` \| `false` | +| color | *blank* | Additional colours for the alert background. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | +| icon | *blank* | Icon to display as a prefix to the alert message. Any Heroicons icon name. | +| avatar | *blank* | Url to an avatar, displayed as a prefix using the Avatar component. | +| icon_avatar_css | *blank* | Additional css applied to the avatar or icon prefix. Any TailwindCSS classes. | +| size | tiny | Size of the avatar, inherited from the Avatar component. | +| show_ring | false | Whether the avatar displays a ring around it. `true` \| `false` | +| class | *blank* | Any additional css classes, e.g. `class="rounded-lg"`. | ## Full Example @@ -154,7 +161,7 @@ Use an image as a prefix instead of an icon by setting the `avatar` attribute to icon="briefcase" icon_avatar_css="bg-slate-800" show_ring="true" - avatar="/assets/images/me.jpg" + avatar="/path/to/image.jpg" size="small" class="rounded-lg shadow-sm"> Stay safe. Wash your hands for 20 seconds diff --git a/mcp/avatar.md b/mcp/avatar.md index 02239c84..fd7dd31b 100644 --- a/mcp/avatar.md +++ b/mcp/avatar.md @@ -6,9 +6,9 @@ url: /component/avatar # Avatar -The avatar component allows you to display a rounded picture at different sizes. This component can be useful for displaying pictures of logged-in users, a contact list, directory of employees, etc. The avatar component can either display a single image or a horizontal stack of images. A default placeholder image is used when the `image` attribute is either blank or not specified. +The avatar component displays a rounded picture at different sizes. It is useful for showing pictures of logged-in users, contact lists, employee directories, and similar UI. It can display a single image or a horizontal stack of images. A default placeholder image is used when `image` is blank or not specified. -## Single Avatar +## Basic Usage ```blade @@ -19,60 +19,33 @@ The avatar component allows you to display a rounded picture at different sizes. You can specify a size for the avatar. The default size is `regular`. ```blade - - - - - - -// this is the default - - - - - - - + + + + {{-- default: regular --}} + + + ``` ## Stacked Avatars -Stacked avatars are a series of avatars overlapping each other. The component will not restrict you from stacking avatars of different sizes but, for a more appealing visual effect, stacking images of the same size is advised. You can achieve 'stackability' by using the `x-bladewind::avatars` component and setting `stacked="true"`. +Stacked avatars overlap each other. Use the `x-bladewind::avatars` component and set `stacked="true"`. Stacking avatars of different sizes is not restricted, but stacking images of the same size looks best. ```blade - - ``` ### Plus More -There are cases where you have several avatars but only want to display a specific number and indicate how many more there are. You can achieve this by setting the `plus` attribute to any positive whole number. Setting the `plus` attribute automatically sets `stacked="true"`. BladewindUI also allows you to specify an action for your "plus more" avatar by specifying the `plus_action` attribute. This accepts a Javascript function. +To display a limited number of avatars and indicate how many more exist, set the `plus` attribute to a positive whole number. This automatically sets `stacked="true"`. You can also define an action for the "plus more" avatar with `plus_action`, which accepts a JavaScript function call. ```blade - - - - + @@ -80,24 +53,19 @@ There are cases where you have several avatars but only want to display a specif ## Dot Indicator -Avatars can be displayed with a status indicator. These statuses could be online, offline, invisible. To show a dot indicator on an avatar simply set `dotted="true"`. +Avatars can display a status indicator (online, offline, invisible, etc). Set `dotted="true"` to show a dot indicator. ```blade - + ``` -By default the dot indicator is displayed at the base of the avatar. To change the position to the top of the avatar, set the `dot_position="top"` attribute. +By default the dot is at the base of the avatar. Set `dot_position="top"` to move it to the top. ```blade - + ``` -The dot is available in different colours. Set the `dot_color` attribute to any of the colours compiled into BladewindUI. +The dot supports different colours, useful for matching your theme or indicating different statuses. Set `dot_color` to any of the supported colours. ```blade @@ -109,33 +77,19 @@ The dot is available in different colours. Set the `dot_color` attribute to any ## Labels -You may have seen on websites where the initials of your name are displayed if you have not set a profile image. You can achieve this by specifying a value for the `label` attribute. A label is also displayed when the `image` specified is three or less characters long. +If no image is set, you can display initials instead by specifying the `label` attribute. A label is also displayed automatically when `image` is three or fewer characters long. ```blade -``` - -```blade -``` - -```blade -``` - -Stacked avatars with labels and dot indicators: -```blade -``` - -Avatars with custom background and dot colours: -```blade @@ -145,35 +99,35 @@ Avatars with custom background and dot colours: ## Attributes -### Avatars Component Attributes +### Avatars Component | Attribute | Default | Description | |---|---|---| -| size | regular | Specifies the size of all the avatars in the group. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | -| stacked | false | Specifies if the avatars are displayed as a stack. `true` \| `false` | -| dotted | false | Specifies if the avatars have dot indicators. `true` \| `false` | -| dot_color | green | Specifies what colour to use as the dot indicator. Only relevant if _dotted=true_. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `gray` \| `cyan` | -| dot_position | bottom | Specifies where the dot indicator should be placed. Only relevant if _dotted=true_. `top` \| `bottom` | -| show_ring | true | By default avatars show a ring around them. Setting this can turn it off or back on. `true` \| `false` | -| plus | null | Display a last avatar with +XX in the box indicating how many more avatars there are. Must be a positive integer greater than zero. | -| plus_action | null | The Javascript action to perform when the +XX avatar is clicked. | -| bg_color | null | Display background colour when displaying avatars as labels. This sets the ring colour too. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | -| class | mr-2 mt-2 | Any additional css classes can be added using this attribute. This only affects the avatars container. | - -### Avatar Component Attributes +| size | regular | Size of all avatars in the group. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | +| stacked | false | Whether the avatars are displayed as a stack. `true` \| `false` | +| dotted | false | Whether the avatars have dot indicators. `true` \| `false` | +| dot_color | green | Colour of the dot indicator. Only relevant if `dotted=true`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `gray` \| `cyan` | +| dot_position | bottom | Where the dot indicator is placed. Only relevant if `dotted=true`. `top` \| `bottom` | +| show_ring | true | Whether avatars show a ring around them. `true` \| `false` | +| plus | null | Displays a last avatar with +XX indicating how many more avatars there are. Must be a positive integer greater than zero. | +| plus_action | null | JavaScript action to perform when the +XX avatar is clicked. | +| bg_color | null | Background colour when displaying avatars as labels. Also sets the ring colour. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `black` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | +| class | mr-2 mt-2 | Any additional css classes, applied to the avatars container. | + +### Avatar Component | Attribute | Default | Description | |---|---|---| -| image | _public/vendor/bladewind/images/avatar.png_ | The url to the image file. By default a generic headshot image is used if no url is passed. The image will be displayed as a label if it is three characters long or less. | -| alt | image | The text to display as the value for the image's alt attribute. | -| size | regular | Specifies the size of the avatar. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | -| stacked | false | Specifies if the avatar images are displayed as a stack. `true` \| `false` | -| dotted | false | Specifies if the avatar images have dot indicators. `true` \| `false` | -| dot_color | green | Specifies what colour to use as the dot indicator. Only relevant if _dotted=true_. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `gray` \| `cyan` | -| dot_position | bottom | Specifies where the dot indicator should be placed. Only relevant if _dotted=true_. `top` \| `bottom` | -| label | null | Text to display in place of an image. Usually two characters. | -| show_ring | true | By default avatars show a ring around them. Setting this can turn it off or back on. `true` \| `false` | -| class | mr-2 mt-2 | Any additional css classes can be added using this attribute. | +| image | *public/vendor/bladewind/images/avatar.png* | Url to the image file. Defaults to a generic headshot image if not passed. Displayed as a label if three characters or fewer. | +| alt | image | Text for the image's alt attribute. | +| size | regular | Size of the avatar. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | +| stacked | false | Whether the avatar image is displayed as part of a stack. `true` \| `false` | +| dotted | false | Whether the avatar has a dot indicator. `true` \| `false` | +| dot_color | green | Colour of the dot indicator. Only relevant if `dotted=true`. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `gray` \| `cyan` | +| dot_position | bottom | Where the dot indicator is placed. Only relevant if `dotted=true`. `top` \| `bottom` | +| label | null | Text displayed in place of an image, usually two characters. | +| show_ring | true | Whether the avatar shows a ring around it. `true` \| `false` | +| class | mr-2 mt-2 | Any additional css classes. | ## Full Example @@ -188,9 +142,7 @@ Avatars with custom background and dot colours: plus_action="showMorePictures()" stacked="true" class="ring-blue-200 ring-offset-2" /> -``` -```blade ``` diff --git a/mcp/bell.md b/mcp/bell.md index 0bd18061..355ad042 100644 --- a/mcp/bell.md +++ b/mcp/bell.md @@ -6,31 +6,33 @@ url: /component/bell # Bell -The bell component displays a bell icon with an optional 'pending notifications' dot indicator. This is a visually pleasing way of telling your app users where to find notifications and if they have anything unread. By default, the bell displays the dot indicator, meaning there are notifications to be read. +The bell component displays a bell icon with an optional pending-notifications dot indicator. It's a visually pleasing way to tell users where to find notifications and whether they have anything unread. By default the dot indicator is shown, meaning there are notifications to read. + +## Basic Usage ```blade ``` -### No Dot Indicator +## No Dot Indicator -To display the bell with no dot indicator, set `show_dot="false"`. This hides the dot indicator. This should usually be the case if all notifications have been read. +Set `show_dot="false"` to hide the dot indicator. This should usually be the case once all notifications have been read. ```blade ``` -### Animated Dot Indicator +## Animated Dot Indicator -The dot indicator can have a 'ping' animation to draw attention to the bell. To animate the dot set `animate_dot="true"`. By default, the dot is not animated. +The dot indicator can have a "ping" animation to draw attention to the bell. Set `animate_dot="true"`. It is not animated by default. ```blade ``` -### Inverted Bell +## Inverted Bell -By default, the bell is designed to sit on a white background. When using the bell on a dark background, set the attribute `invert="true"`. This will display the bell as white. +By default the bell is designed to sit on a white background. When using it on a dark background, set `invert="true"` to display the bell as white. ```blade @@ -38,106 +40,74 @@ By default, the bell is designed to sit on a white background. When using the be ## Different Sizes -The bell component exists in two sizes: `small` and `big`. The default size is `small`. - -```blade -// size="small" can be omitted since it is the default - -``` +The bell component exists in two sizes, `small` (default) and `big`. ```blade + {{-- default, can be omitted --}} ``` ## Different Colours -The default dot indicator displayed next to the bell is blue. This may not match your app's theme, so it is possible to display the dot indicator in different colours by setting the `color` attribute. +The default dot indicator colour is blue. To match your app's theme, set the `color` attribute to any of the supported colours. ```blade - - - - - - - - - - - - - - ``` ## Events -In most apps the bell is accessed either using onclick or onmouseover events. You can add these events to the component as you normally would to any tag. Alternatively, you could wrap the bell component in any other HTML tag that accepts click and hover events. +The bell is usually accessed via onclick or onmouseover events, which can be added to the component like any other HTML tag. Alternatively, wrap the bell in another HTML tag that accepts click and hover events. -The example below wraps the Bell component in the [Dropmenu](/component/dropmenu) component. The Dropmenu component then uses the [List View](/component/listmenu) component to display a list of notifications. +A common pattern wraps the Bell component in the Dropmenu component, which uses the List View component to display a list of notifications. ```blade - - - - - + + + +
- - Michael - - assigned a task to you + Michael assigned a task to you
3 hours ago
-
- - - ... - - -
-
- + + + +
``` ### Onclick, Onmouseover, On-anything -As seen in the example above, the Bell component inherits the default action defined in the Dropmenu component. If you prefer to design your own notification layout or redirect users to a page that lists their notifications, you can define any HTML event attribute on the Bell. +If you prefer your own notification layout, or want to redirect users to a notifications page, define any HTML event attribute directly on the Bell. ```blade - -``` - -```blade - + + ``` ## Attributes | Attribute | Default | Description | |---|---|---| -| color | _blue_ | The colour of the dot indicator. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `pink` \| `cyan` \| `black` \| `purple` \| `orange` \| `violet` \| `indigo` \| `fuchsia` | -| animate_dot | false | Determines if the dot should be animated or not. | -| size | small | Defines the size of the bell. `small` \| `big` | -| show_dot | true | Defines if the dot indicator should be displayed by default. `true` \| `false` | -| invert | false | Defines if the bell should be displayed as white. `true` \| `false` | +| color | blue | Colour of the dot indicator. `primary` \| `blue` \| `red` \| `yellow` \| `green` \| `pink` \| `cyan` \| `black` \| `purple` \| `orange` \| `violet` \| `indigo` \| `fuchsia` | +| animate_dot | false | Whether the dot should be animated. | +| size | small | Size of the bell. `small` \| `big` | +| show_dot | true | Whether the dot indicator is displayed by default. `true` \| `false` | +| invert | false | Whether the bell should be displayed as white. `true` \| `false` | ## Full Example diff --git a/mcp/breadcrumbs.md b/mcp/breadcrumbs.md new file mode 100644 index 00000000..b1cb078c --- /dev/null +++ b/mcp/breadcrumbs.md @@ -0,0 +1,132 @@ +--- +title: Breadcrumbs Component +component: x-bladewind::breadcrumbs +url: /component/breadcrumbs +--- + +# Breadcrumbs + +Breadcrumbs are the small trail of links near the top of a page that tells people where they are and how they got there. They matter most once a site has more than a couple of levels to it. This component builds that trail for you and takes care of the accessibility details that are easy to forget: it wraps everything in a proper navigation region with a plain list inside, so a screen reader announces it as a real breadcrumb trail rather than a row of unrelated text. + +To build a trail, list items in order from the top of the site down to the current page, and add the `current` attribute to the final item. + +## Basic Usage + +```blade + + Home + Components + Breadcrumbs + +``` + +## Linked And Current Items + +Give an item an `href` to make it a clickable link; otherwise it renders as plain text. Usually the last item has no `href`. If the current page also needs to work as a link (for example, clicking it refreshes the page or resets a view), add both `href` and `current` to the same item. + +```blade + + Home + Customers + Customer details + +``` + +## Icons + +Add a small icon next to any item's text using `icon`, and control its look with `icon-type` and `icon-dir`. These work exactly like the [Icon component](/component/icon). Leave `icon-dir` empty to use the built-in icon set, or give it a folder name inside your app's `public` directory to load your own SVG file from there instead. + +```blade + + Home + Settings + Profile + +``` + +## Separator Options + +By default, each item is separated by a chevron. Swap it by setting `separator` to `slash`, `dot`, or any character of your choice. Changing the separator only changes what sits between items. + +```blade +... +... +``` + +## Sizes + +Set `size` to one of six available sizes, from smallest `tiny` up to largest `large`, with `regular` as the default. + +```blade +... +``` + +## Long And Collapsed Trails + +Once a trail reaches four items or more, this component quietly hides the middle items on narrow screens, keeping only the first item and the current page visible, with a marker in between showing something has been tucked away. Every hidden link is still in the document. Set `collapse="false"` to always show the full trail regardless of screen width. + +```blade +... +``` + +## Dark Mode And RTL + +Colours automatically match the active theme, and no separate dark-mode styling is needed. The trail follows whatever reading direction the surrounding page has set. Set `dir="rtl"` directly on a breadcrumb to force right-to-left for that trail alone; the chevron separators flip direction to match. + +```blade +... +``` + +## Accessibility + +- Give the trail a short, clear `aria-label`, such as "Breadcrumb" or a description of the section it belongs to. It defaults to "Breadcrumb" if omitted. +- Always mark exactly one item, the current page, with `current`. This tells assistive technology which step is the current one. +- Write labels that make sense on their own, since a screen reader user might jump straight to the trail without reading the rest of the page. +- Separators, and the marker shown when items are hidden, are hidden from screen readers since they are purely visual. +- Every linked item is a genuine anchor tag, so keyboard tabbing and activation work without any custom handling. + +## Attributes + +### Breadcrumbs Component + +| Attribute | Default | Description | +|---|---|---| +| separator | chevron | What to show between items. `chevron` \| `slash` \| `dot`, or your own text. | +| size | regular | `tiny` \| `small` \| `regular` \| `medium` \| `big` \| `large` | +| collapse | true | Hide middle items on narrow screens once the trail reaches four items or more. `true` \| `false` | +| aria-label | Breadcrumb | Screen reader label for the navigation trail. | +| class | _(blank)_ | Extra classes added to the trail's outer wrapper. | +| Any HTML attribute | | Forwarded to the trail's outer wrapper, including `dir`, `id`, or data attributes. | + +### Breadcrumbs Item Component + +| Attribute | Default | Description | +|---|---|---| +| href | null | Link destination. Omit to render as plain text. | +| current | false | Marks this item as the current page. `true` \| `false` | +| icon | null | Icon name to show next to the item's text. | +| icon-type | outline | `outline` \| `solid` | +| icon-dir | _(blank)_ | Folder inside `public` to load a custom icon from. Blank uses the built-in icon set. | +| class | _(blank)_ | Extra classes added to this item's link or text. | +| Any HTML attribute | | Forwarded to this item's link or text element, including `title`, `rel`, or data attributes. | + +## Full Example + +```blade + + + Settings + + +``` diff --git a/mcp/button.md b/mcp/button.md index 76269a68..c55a06e0 100644 --- a/mcp/button.md +++ b/mcp/button.md @@ -6,156 +6,188 @@ url: /component/button # Button -The button component renders as an HTML `
@@ -80,102 +57,89 @@ Below is an example of an invoice table sitting in a basic BladewindUI Card. - ... - - + ``` -### Huge Navigation Items +### Grid Navigation Items -Below is an example of a grid-based navigation that uses cards for its menu items. The hover effect is achieved by adding additional TailwindCSS classes to the `class` attribute of the card. +Adding hover classes to the card's `class` attribute produces a grid of clickable navigation cards. ```blade
- - ... - Projects + ... + Projects - - ... - Tasks + ... + Tasks - - - ... - Ideas - -
``` ### Contact List -Below is an example of a contact list using the `compact` mode. +`compact="true"` reduces the card's padding, useful for a tight list of rows. ```blade -
- - -
-
- -
-
- Michael K. Ocansey -
Senior Developer
-
Tech Team
-
-
+ +
+
+
+ Michael K. Ocansey +
Senior Developer
+
Tech Team
- - - - ... - - -
+ +
+ ``` ## Contact Card -This card component is very specific to rendering contacts. It saves you from having to manually build a contact card. A default avatar is used if one is not provided. +A card component specific to rendering contacts, saving you from manually building one. A default avatar is used if one isn't provided. ```blade - ``` -Setting `centered="true"` reformats the contact card and vertically aligns and centers the content. +Set `centered="true"` to vertically align and center the contact card content. + +```blade + +``` ## Header and Footer -You can specify a header and footer for the card component. This is set up as a slot so there is really no restriction to what goes inside the header and footer. Headers and footers are independent so you don't need to explicitly specify both. When the `header` slot is set, the main body of the card loses all its padding so you will need to style the card body as you wish. +Cards can define a header and/or footer as slots — there's no restriction on what goes inside them. Headers and footers are independent, so you don't need to specify both. When the `header` slot is set, the main card body loses all its padding, so you'll need to style it yourself. ```blade -
- +
- mkocansey - Greater Accra, Accra + mkocansey + Greater Accra, Accra, Ghana
@@ -185,53 +149,70 @@ You can specify a header and footer for the card component. This is set up as a
- - - -
-
- ... + + +
+
-
``` +## Padding And Radius + +`padding` is a scale rather than a switch, replacing manual `!p-5`-style overrides when `compact` is too tight and the default is too loose. + +```blade +... +... {{-- p-2 --}} +... {{-- p-4 --}} +... {{-- p-6, the default --}} +... {{-- p-8 --}} +... {{-- p-10 --}} +... {{-- p-12 --}} +... {{-- or a utility verbatim --}} +``` + +`compact` and `no_padding` still behave exactly as before; an explicit `padding` wins over both. + +`radius` also supports `none`, `tiny`, `small`, `medium`, `large`, `xl`, `omg`, and `full`. Anything that already looks like a Tailwind radius utility passes straight through, so `radius="rounded-l-none"` works for attaching a card to something on its left. + ## Attributes -### Card Component Attributes +### Card Component | Attribute | Default | Description | |---|---|---| -| title | _blank_ | Any title provided will become the card heading. | -| header | _blank_ | Once a header slot is defined, the card splits into two uneven horizontal parts. The content of the header slot will be displayed first. | -| footer | _blank_ | Once a footer slot is defined, the content of the slot gets fixed to the base of the card as a footer. | -| compact | false | This controls how much padding is in the card. Setting this to `true` will reduce the padding. Only works if header and footer are not set. `true` \| `false` | -| no_padding | false | This completely removes the padding within the card. Content will touch the edges of the card. `true` \| `false` | -| has_shadow | true | This controls if the card should have a shadow effect. `true` \| `false` | -| has_hover | false | Displays an extra shadow on hover of the card. `true` \| `false` | -| url | null | Url to visit when the card is clicked. A path like `"/some-url"` uses the Bladewind `redirect()` helper. A function call like `"performSomeAction(some_id)"` triggers `javascript:performSomeAction(some_id)`. A full URL like `"https://..."` uses `window.open()`. | -| radius | small | Increases the roundness of the card. `none` \| `small` \| `medium` \| `large` \| `xl` | -| class | bw-card | Any additional css classes can be added using this attribute. | - -### Contact Card Component Attributes +| title | *blank* | Any title provided becomes the card heading. | +| header | *blank* | Once a header slot is defined, the card splits into two uneven horizontal parts; header content displays first. | +| footer | *blank* | Once a footer slot is defined, its content is fixed to the base of the card. | +| compact | false | Reduces padding in the card. Only applies if header and footer aren't set. `true` \| `false` | +| no_padding | false | Completely removes padding within the card; content touches the edges. `true` \| `false` | +| has_shadow | true | Whether the card has a shadow effect. `true` \| `false` | +| has_hover | false | Displays an extra shadow on hover. `true` \| `false` | +| url | null | Url visited when the card is clicked. A path like `/some-url` uses the `redirect()` JS helper; a function call like `performSomeAction(some_id)` triggers `javascript:performSomeAction(some_id)`; a full url like `https://mydomain.com/some-url` opens with `window.open()`. | +| radius | small | `none` \| `small` \| `medium` \| `large` \| `xl` | +| class | bw-card | Any additional css classes, e.g. `class="!rounded-none"`. | +| padding | *blank* | Padding scale, or any Tailwind padding utility verbatim. Wins over `compact` and `no_padding`. `none` \| `tiny` \| `small` \| `regular` \| `medium` \| `big` \| `large` | + +### Contact Card Component | Attribute | Default | Description | |---|---|---| -| name | _blank_ | Name of the contact. | -| department | _blank_ | Department of the contact. | -| position | _blank_ | Designation or position of the contact. | -| image | _bladewind/images/avatar.png_ | Picture of the contact. | -| email | _blank_ | Email of the contact. | -| birthday | _blank_ | Birthday of the contact. | -| mobile | _blank_ | Mobile of the contact. | -| has_shadow | true | This controls if the card should have a shadow effect. `true` \| `false` | -| has_hover | false | Displays an extra shadow on hover of the card. `true` \| `false` | -| centered | false | Displays contact card vertically. `true` \| `false` | -| no_padding | false | This completely removes the padding within the card. `true` \| `false` | -| url | null | Url to visit when the card is clicked. Same URL behavior as the Card component. | -| class | bw-contact-card | Any additional css classes can be added using this attribute. | +| name | *blank* | Name of the contact. | +| department | *blank* | Department of the contact. | +| position | *blank* | Designation or position of the contact. | +| image | *bladewind/images/avatar.png* | Picture of the contact. | +| email | *blank* | Email of the contact. | +| birthday | *blank* | Birthday of the contact. | +| mobile | *blank* | Mobile of the contact. | +| has_shadow | true | Whether the card has a shadow effect. `true` \| `false` | +| has_hover | false | Displays an extra shadow on hover. `true` \| `false` | +| centered | false | Displays the contact card vertically. `true` \| `false` | +| no_padding | false | Completely removes padding within the card. `true` \| `false` | +| url | null | Url visited when the card is clicked. Same behaviour as the Card component's `url`. | +| class | bw-contact-card | Any additional css classes, e.g. `class="!rounded-none"`. | ## Full Example @@ -245,17 +226,12 @@ You can specify a header and footer for the card component. This is set up as a radius="large" url="/user" class="!rounded-none"> - ... ... - ... - -``` -```blade - - // you can define additional content here ... - - +
``` diff --git a/mcp/centered-content.md b/mcp/centered-content.md index bdbb0980..5128c6ee 100644 --- a/mcp/centered-content.md +++ b/mcp/centered-content.md @@ -6,29 +6,27 @@ url: /component/centered-content # Centered Content -Center content within a container. This container could be any block level element, say a `div`. - -There are different sizes for the centered content component which are too wide for this documentation space. Try them out in your layouts to see how they look. +Centers content within a container. This container could be any block level element, such as a `div`. ## Basic Usage ```blade - this content is centered in this column - ``` +## Sizes + +Different sizes are available for the centered content component. Try each in your own layout to see how it looks at full page width. + ```blade - this content is centered in this column - ``` @@ -36,11 +34,11 @@ There are different sizes for the centered content component which are too wide | Attribute | Default | Description | |---|---|---| -| size | `xl` | Size of the centered container. Available values: `tiny` `small` `medium` `big` `xl` `xxl` `omg` | +| size | xl | `tiny` \| `small` \| `medium` \| `big` \| `xl` \| `xxl` \| `omg` | ## Full Example ```blade + size="medium" /> ``` diff --git a/mcp/chart.md b/mcp/chart.md index 6cec3237..7a19fa7e 100644 --- a/mcp/chart.md +++ b/mcp/chart.md @@ -6,14 +6,13 @@ url: /component/chart # Chart -The chart component relies on the [Chart.js](https://www.chartjs.org) library to display various aesthetically pleasing types of charts. The bar chart is the default but changing the type of chart is as simple as setting the `type` attribute to any of the acceptable chart types provided by [Chart.js](https://www.chartjs.org). +The chart component uses the Chart.js library to display various aesthetically pleasing chart types. The bar chart is the default; change the chart type by setting the `type` attribute to any type Chart.js supports. ## Basic Usage -```blade - When you define both the `labels` and `data` attributes, `data` is treated as the chart data you want to display NOT the entire top level `data` object where you can define datasets, labels, border colours and many more options. +BladewindUI also exposes several common Chart.js options as convenience attributes: `show_axis_lines`, `show_x_axis_lines`, `show_y_axis_lines`, `show_axis_labels`, `show_x_axis_labels`, `show_y_axis_labels`, `show_borders`, `show_x_border`, `show_y_border`, `title`, `show_legend`, `legend_position`, `legend_alignment`, `bg_color`, `border_color`, and `border_width`. + +When you define both `labels` and `data`, `data` is treated as just the chart data points to display, not the entire top-level `data` object (where you'd otherwise define datasets, labels, border colours, etc). ```blade -``` + -### Bar Chart + -Set `type="bar"` to display a bar chart. This is the default. + -```blade - -``` + -### Bubble Chart + -Set `type="bubble"` to display a bubble chart. + +``` -```blade - 5, 'y' => 10, 'r' => 8], ['x' => 10, 'y' => 15, 'r' => 6], - ... - ['x' => 85, 'y' => 26, 'r' => 7], - ['x' => 100, 'y' => 30, 'r' => 10], ]; + +// scatter +$scatter_labels = []; +$scatter_data = [ + ['x' => -15, 'y' => 10], + ['x' => -10, 'y' => 8], +]; + +// radar +$radar_labels = ['Speed', 'Strength', 'Agility', 'Endurance', 'Skill']; +$radar_data = [65, 59, 90, 81, 56]; ``` ```blade @@ -114,59 +94,11 @@ $bubble_data = [ bg_color="rgba(153, 102, 255, 0.5)" border_color="rgb(153, 102, 255)" :labels="$bubble_labels" :data="$bubble_data" show_legend="false" /> -``` - -### Doughnut Chart -Set `type="doughnut"` to display a doughnut chart. - -```blade -``` - -### Line Chart - -Set `type="line"` to display a line chart. - -```blade - -``` - -### Pie Chart - -Set `type="pie"` to display a pie chart. - -```blade - -``` - -### Polar Chart - -Set `type="polar"` to display a polar chart. - -```blade - -``` - -### Radar Chart - -Set `type="radar"` to display a radar chart. - -```blade - -```blade ``` -### Scatter Chart - -Set `type="scatter"` to display a scatter chart. - -```blade - -15, 'y' => 10], - ['x' => -5, 'y' => 5], - ... - ['x' => 30, 'y' => 13], - ['x' => 32, 'y' => 10], -] -``` - -```blade - -``` - -Scatter charts can have lines connecting the dots. This is turned off by default and can be displayed by setting `show_line="true"`. This attribute only applies to scatter charts. +Scatter charts can connect their dots with a line, off by default. Set `show_line="true"` (only applies to scatter charts). ```blade ['Jan', 'Feb', 'Mar', 'Apr', 'May'], "datasets" => [ @@ -227,93 +136,59 @@ $data = [ 'borderColor' => '#FF6384', 'borderWidth' => 2, 'fill' => false, - ] - ] + ], + ], ]; ``` ```blade - + ``` ## Chart Data -All data is passed to the chart via the `data` attribute, but there are two ways to define this data. - -### Option 1 +Data is always passed via the `data` attribute, in one of two ways. -This requires you to set values for both the `labels` and `data` attributes. The data in this case should only be the data points to be displayed in the chart. Each data point is matched against a corresponding label depending on the type of chart being displayed. - -```blade - ``` -### Option 2 - -This requires you to define the entire chart datasets in an array and pass that to the `data` attribute. This option is recommended if you require more flexibility with the properties you want to define in the [Chart.js configurations](https://www.chartjs.org/docs/latest/configuration/). When using this option, the only attributes available to the chart component are `data`, `options` and `plugins`. All other attributes are ignored since they will need to be defined in your data array. - -```blade - ['Jan', 'Feb', 'Mar', 'Apr', 'May'], - "datasets" => [ - [ - 'type' => 'bar', - 'label' => 'Sales', - 'data' => [10, 20, 30, 25, 15], - 'backgroundColor' => 'rgba(54, 162, 235, 0.2)', - 'borderColor' => 'rgb(75, 192, 192)', - ], - [ - 'type' => 'line', - 'label' => 'Trend', - 'data' => [12, 18, 28, 22, 17], - 'borderColor' => '#FF6384', - 'borderWidth' => 2, - 'fill' => false, - ] - ] -]; -``` +**Option 2**: define the entire chart dataset structure yourself and pass it to `data`. Recommended for more flexibility with Chart.js configuration properties. When using this option, only `data`, `options`, and `plugins` are honoured — all other attributes are ignored since they need to be defined inside the data array. ```blade - + ``` ## Attributes | Attribute | Default | Description | |---|---|---| -| name | random | The name of the chart for DOM accessibility | -| labels | `[]` | An array of labels to display in the chart | -| data | `[]` | An array of data points to display in the chart. Alternatively, this can be a comprehensive array of chart data and other properties | -| options | `[]` | An array of chart options as provided in the [Chart.js documentation](https://www.chartjs.org/docs/latest/general/options.html) | -| plugins | `[]` | An array of plugin options as provided in the [Chart.js documentation](https://www.chartjs.org/docs/latest/general/options.html) | -| type | `bar` | Type of chart to display: `area` `bar` `bubble` `doughnut` `line` `pie` `polar` `radar` `scatter` | -| show_axis_lines | `true` | Show the lines on both the x and y axes. `true` `false` | -| show_x_axis_lines | `true` | Show the lines on the x axis. `true` `false` | -| show_y_axis_lines | `true` | Show the lines on the y axis. `true` `false` | -| show_axis_labels | `true` | Show the labels on both the x and y axes. `true` `false` | -| show_x_axis_labels | `true` | Show the labels on the x axis. `true` `false` | -| show_y_axis_labels | `true` | Show the labels on the y axis. `true` `false` | -| show_borders | `true` | Show the borders around the chart. These are the main x and y axes lines. `true` `false` | -| show_x_border | `true` | Show the border on the x axis. `true` `false` | -| show_y_border | `true` | Show the border on the y axis. `true` `false` | -| show_line | `false` | Only applicable to scatter charts. Show the line that connects the dots. `true` `false` | -| title | blank | Title of the chart | -| show_legend | `true` | Display the chart legend. `true` `false` | -| legend_position | `top` | Where should the legend be placed. `top` `right` `bottom` `left` `chartArea` | -| legend_alignment | `center` | How should the legend text be aligned. `start` `center` `end` | -| bg_color | blank | Defines the background colour of the charts not the canvas. Accepts rgb, hex and normal colour names. e.g. `green` `#fff333` `rgba(0, 0, 0, 0.1)` | -| border_color | blank | Defines the border colour of the charts. Accepts rgb, hex and normal colour names. e.g. `green` `#fff333` `rgba(0, 0, 0, 0.1)` | -| border_width | `1` | Defines how thick the border of each chart item should be. Must be numeric value above 0 | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts | +| name | random | Name of the chart for DOM accessibility. | +| labels | [] | Array of labels to display in the chart. | +| data | [] | Array of data points to display, or a comprehensive array of chart data and other properties. | +| options | [] | Array of Chart.js options. | +| plugins | [] | Array of Chart.js plugin options. | +| type | bar | `area` \| `bar` \| `bubble` \| `doughnut` \| `line` \| `pie` \| `polar` \| `radar` \| `scatter` | +| show_axis_lines | true | Show lines on both the x and y axes. `true` \| `false` | +| show_x_axis_lines | true | Show lines on the x axis. `true` \| `false` | +| show_y_axis_lines | true | Show lines on the y axis. `true` \| `false` | +| show_axis_labels | true | Show labels on both the x and y axes. `true` \| `false` | +| show_x_axis_labels | true | Show labels on the x axis. `true` \| `false` | +| show_y_axis_labels | true | Show labels on the y axis. `true` \| `false` | +| show_borders | true | Show the main x and y axes border lines. `true` \| `false` | +| show_x_border | true | Show the border on the x axis. `true` \| `false` | +| show_y_border | true | Show the border on the y axis. `true` \| `false` | +| show_line | false | Only applies to scatter charts. Shows the line connecting the dots. `true` \| `false` | +| title | *blank* | Title of the chart. | +| show_legend | true | Display the chart legend. `true` \| `false` | +| legend_position | top | `top` \| `right` \| `bottom` \| `left` \| `chartArea` | +| legend_alignment | center | `start` \| `center` \| `end` | +| bg_color | *blank* | Background colour of the chart items (e.g. each bar). Accepts colour names, hex, or rgba: `green` \| `#fff333` \| `rgba(0, 0, 0, 0.1)` | +| border_color | *blank* | Border colour of the chart items. Same accepted formats as `bg_color`. | +| border_width | 1 | Thickness of each chart item's border. Numeric value above 0. | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can be set globally via the `script` key in `config/bladewind.php`. | ## Full Example diff --git a/mcp/checkbox.md b/mcp/checkbox.md index c9ada47a..e7c39a14 100644 --- a/mcp/checkbox.md +++ b/mcp/checkbox.md @@ -6,44 +6,33 @@ url: /component/checkbox # Checkbox -Display a checkbox with or without a label. The default checkbox colour is blue but there are nine colours available to choose from. +Display a checkbox with or without a label. The default checkbox colour is blue, and nine other colours are available. ## Basic Usage ```blade - + ``` -```blade - -``` +## Labels -Labels can include HTML such as links: +Add a `label`, which accepts HTML such as links. Set `checked="true"` to check it by default, and `disabled="true"` to disable it. ```blade - -``` - -Checkboxes can be checked by default: + -```blade -``` + label="I agree to the terms and conditions" /> -Checkboxes can be disabled: + -```blade - + + ``` ## Coloured Checkboxes -Like most of the BladewindUI components, checkboxes also come in nine colours to enable the components sit better in most designs with various colour schemes. +Checkboxes come in nine colours so they can fit various colour schemes. ```blade @@ -62,28 +51,62 @@ Like most of the BladewindUI components, checkboxes also come in nine colours to ## Checkboxes and Forms -When using checkboxes with forms, it is always good practice to give the checkbox a name and value. That way, when the form is submitted, the value of the checkbox can be retrieved from its name. It is important to note that, in some cases, if the user does not select the checkbox, the name of the checkbox will be ignored completely from your payload. +Give the checkbox a `name` and `value` so the value can be retrieved from the payload when the form is submitted. Note that an unchecked checkbox is omitted entirely from the payload. + +```blade + +``` + +## Laravel Form State + +When validation fails, Laravel redirects back with the submitted values flashed to the session and the messages in `$errors`. The Checkbox component can read both for you, so you no longer write `old('...')` and an error block on every field. ```blade + name="terms" + value="yes" + label="I agree to the terms" + fill_from_old="true" + show_validation_error="true" /> ``` +`fill_from_old` repopulates the field from `old()`. `show_validation_error` gives the field its error state and renders `$errors->first()` underneath it. Add `error_bag` if you validate into a named bag. + +Checkboxes need a little more care than a text field. An unticked box submits nothing at all, so "this field is missing from the old input" only means unchecked once a submission has actually bounced back. On a form's first render there is no old input, and a box set with `checked="true"` stays checked. For a group of checkboxes sharing one name, only the boxes whose values were submitted come back ticked. + +Both `fill_from_old` and `show_validation_error` are off by default. If your form already prints its own validation messages, switching this on without removing them would print every message twice. + +### Turning It On for Every Form + +Rather than setting the attributes field by field, set them once in `config/bladewind.php` and every form component follows. + +```php +// config/bladewind.php +'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, +], +``` + +An attribute on a single field always wins over the config, so you can opt one field out with `show_validation_error="false"`. + ## Attributes | Attribute | Default | Description | |---|---|---| -| name | `checkbox` | This name can be accessed when the checkbox is submitted in the form. The name is also available as part of the css classes | -| label | blank | Text to be displayed next to the checkbox | -| value | blank | In case you are editing a form, the value passed will be set on the value attribute of the checkbox | -| checked | `false` | Specifies whether the checkbox is checked or not. Value needs to be set as a string not boolean. `true` `false` | -| disabled | `false` | Specifies whether the checkbox is disabled or not. Value needs to be set as a string not boolean. `true` `false` | -| add_clearing | `true` | Adds a margin to the bottom of the checkbox to separate it from the next form element. `true` `false` | -| color | `primary` | Color of the checkbox rings. `primary` `red` `yellow` `green` `blue` `black` `cyan` `orange` `purple` `pink` `violet` `indigo` `fuchsia` | -| class | `bw-checkbox` | Any additional css classes can be added using this attribute | -| label_css | `mr-6` | Applies styling to the checkbox label | +| name | checkbox | Accessible when the checkbox is submitted in the form. Also used as part of the CSS classes. | +| label | *blank* | Text to display next to the checkbox. | +| value | *blank* | Value set on the checkbox's value attribute, useful when editing a form. | +| checked | false | Whether the checkbox is checked. `true` \| `false` | +| disabled | false | Whether the checkbox is disabled. `true` \| `false` | +| add_clearing | true | Adds bottom margin to separate from the next form element. `true` \| `false` | +| color | primary | Colour of the checkbox rings. `primary` \| `red` \| `yellow` \| `green` \| `blue` \| `black` \| `cyan` \| `orange` \| `purple` \| `pink` \| `violet` \| `indigo` \| `fuchsia` | +| class | bw-checkbox | Any additional CSS classes. | +| label_css | mr-6 | Styling applied to the checkbox label. | +| fill_from_old | false | Repopulate from `old()` after a failed validation redirect. Defaults to `bladewind.forms.fill_from_old`. `true` \| `false` | +| show_validation_error | false | Give the field its error state and render `$errors->first()` beneath it. Defaults to `bladewind.forms.show_validation_error`. `true` \| `false` | +| error_bag | null | Which error bag to read when `show_validation_error` is on. Leave unset for Laravel's default bag. | ## Full Example diff --git a/mcp/checkcard.md b/mcp/checkcard.md index 9e3b6c24..8c91faf2 100644 --- a/mcp/checkcard.md +++ b/mcp/checkcard.md @@ -1,14 +1,12 @@ --- -title: CheckCard Component +title: Checkcard Component component: x-bladewind::checkcards url: /component/checkcard --- -# CheckCard +# Checkcard -This component is simply a prettier version of checkboxes. Define content in a card that needs to be checkable and give it a `value`. This value is what will be passed when the form is selected. In its simplest form this is just a card with content you provide. - -The selectable card takes up the width of its parent element. If you don't want the cards to take up the entire width you will need to restrict this using flex or grids. +A prettier version of checkboxes. Define content in a card that needs to be checkable and give it a `value` — this is what gets passed when the form is submitted. ## Basic Usage @@ -20,21 +18,7 @@ The selectable card takes up the width of its parent element. If you don't want ``` -For convenience the component provides a `title` attribute that can also be passed in as a slot if you prefer some more customized styling of the title. - -```blade - -
- - A subsidiary of Amazon that provides on-demand ... - - ... -
-
-``` - -### Compact Mode +Set `compact="true"` on the parent for less padding around each card. ```blade @@ -44,84 +28,72 @@ For convenience the component provides a `title` attribute that can also be pass ``` -## Max Selection - -By default only one card can be selected at a time. You can increase this by setting the `max` attribute to a positive integer greater than zero. The example below sets `max="3"`, meaning only 3 cards can be selected. +For convenience the card also accepts a `title` attribute (or you can pass a title as your own markup for more customized styling). ```blade - -
- - Amazon Web Services + +
+ + A subsidiary of Amazon that provides on-demand cloud computing platforms & APIs on a metered, pay-as-you-go basis - - - Microsoft Azure + + The cloud computing platform developed by Microsoft. +
+
+``` - - DigitalOcean - - ... +The card takes up the full width of its parent element. Restrict this with flex or grid layout if you don't want full-width cards. + +## Max Selection + +By default only one card can be selected at a time. Set `max` to a positive integer greater than zero to allow more. + +```blade + +
+ Amazon Web Services + Microsoft Azure + DigitalOcean + Google Cloud + Cloudinary + Cloudflare
``` ### Max Selection Error Messages -If the user tries to select a card when the max has already been selected, you can either display an error message or say nothing. By default no error message is displayed. To display errors you will need to set `show_error="true"`. The error message is displayed in the [Notification](/component/notification) component. Ensure this component is included on any page where you want to use Checkable cards with errors. The actual error message to display can be defined by setting the `error_heading` and `error_message` attributes. If you don't specify these two attributes, the defaults will be used. +By default, selecting past the max shows no error. Set `show_error="true"` to display one, using the Notification component (include it on any page using checkcards with errors). Customize the message with `error_heading` and `error_message`. ```blade - -
- - Amazon Web Services - + ... -
``` ## Automatically Select New Cards -From the max selection example above, you will notice every time three cards are selected, clicking on a fourth card automatically clears the third card that was previously selected. This is the default behaviour, to always preserve the number of cards you want selected without blocking the user. If you prefer to prevent users from selecting new cards when the max has been reached, set `auto_select_new="false"`. Users will now need to unselect one card to make room for a new selection. +By default, selecting a new card past the max automatically clears the oldest selected card, preserving the number of selected cards without blocking the user. Set `auto_select_new="false"` to instead prevent new selections until the user manually deselects one. ```blade - -
- - Amazon Web Services - + ... -
``` ## Icons and Avatars -By design the Checkcard component simply makes it easy for you to have checkboxes designed as cards. The content of the card solely relies on you. However, for convenience, the component allows you to specify an icon to use in the card. This uses the [Icon](/component/icon) component with some features stripped out. To use an icon, simply specify the name of the icon you want to use in the `icon` attribute. The `icon_css` attribute allows you to specify additional CSS classes for the icon. - -The colour of the icon is determined by the value of the `color` attribute. The default value is `primary`. You can specify any of the [colours](/customize/colours) available in BladewindUI. +Specify an icon using the `icon` attribute (uses the Icon component with some features stripped out); `icon_css` adds extra CSS classes to the icon. The icon colour is set via `color` (default `primary`), accepting any of the BladewindUI colours. ```blade -
- - A copy of your messages will be backed up to Amazon Web Services ... +
+ + A copy of your messages will be backed up to Amazon Web Services. - - A copy of your messages will be backed up to Google Drive ... + + A copy of your messages will be backed up to Google Drive.
@@ -129,21 +101,16 @@ The colour of the icon is determined by the value of the `color` attribute. The ### Avatars -Avatars can be used instead of icons. This also relies on a stripped down version of the BladewindUI [Avatar](/component/avatar) component. When an avatar name is three characters or less, a label is used instead of an image. The colour of the avatar is determined by the value of the `color` attribute. The default value is `primary`. You can specify any of the [colours](/customize/colours) available in BladewindUI. +Avatars can be used instead of icons (uses a stripped-down Avatar component). When an avatar name is three characters or less, a label is used instead of an image. Colour is set via `color` on the parent. ```blade -
- - Follow Michael K. Ocansey to know when they post a... +
+ + Follow Michael K. Ocansey to know when they post any new articles and code snippets. - - Follow Francis Appiah to know when they post any new ... + + Follow Francis Appiah to know when they post any new articles and code snippets.
@@ -151,28 +118,41 @@ Avatars can be used instead of icons. This also relies on a stripped down versio ## Colours -The border colour can be changed by setting the `border_color` attribute. The colour of icons and avatar labels can also be changed by setting the `color` attribute. You can specify any of the [colours](/customize/colours) available in BladewindUI. The checkmark icon colour changes to match the colour of the border. +The border colour is set via `border_color` on the parent. The colour of icons and avatar labels is set via `color`. The checkmark icon colour matches the border colour. ```blade - -
- + +
+ Your messages will be backed up to Amazon Web Services. - ... + + Your messages will be backed up to Google Drive. + +
+
+ + + ... + + + +
+ + Follow Michael K. Ocansey to know when they post any new articles and code snippets. + + + Follow Francis Appiah to know when they post any new articles and code snippets. +
``` ## Form Submission -Checkable cards can be used within forms as a substitute for checkboxes or radio buttons. The `name` specified is what will be accessed when the form is submitted. Selecting multiple values results in a comma separated list being passed when the form is submitted. - -Using the **hosting** name from our examples above, after submitting the form the value of the hosting checkcards can be accessed using any of the following ways permitted in Laravel. +Checkable cards substitute for checkboxes or radio buttons in a form. The `name` given is what's accessed on submission; selecting multiple values results in a comma-separated list. -```blade +```php $request->get('hosting'); $request->input('hosting'); $request->hosting; @@ -182,73 +162,72 @@ $request->hosting; ### Checkcards Component -This is the parent tag for defining Checkcards. +Parent tag for defining Checkcards. | Attribute | Default | Description | |---|---|---| -| name | null | Name to be accessed when checkcard selections are submitted in a form. | +| name | null | Name to access when checkcard selections are submitted in a form. | | color | gray | `primary` \| `yellow` \| `green` \| `blue` \| `pink` \| `cyan` \| `purple` \| `gray` \| `orange` \| `indigo` \| `fuchsia` \| `violet` | -| max | 1 | How many checkcards can be selected at a time. Any positive number > 0. | -| required | false | Determines if checkcards are required when displayed in a form. `true` \| `false` | -| selected_value | _(empty string)_ | In edit mode you will want selected checkcards to be selected by default. Set the values as a comma separated list. | -| error_message | _(empty string)_ | Message to display when `max` is set and user selection exceeds the max allowed. | -| error_heading | Error | Heading to display in the notification when displaying an error message. | -| icon | null | Display an icon prefix. You can use any icon from Heroicons. | -| avatar | null | Display an avatar as an image or label. If this is less than 4 characters, the avatar will be displayed as a label. | -| avatar_size | medium | Determine size of the avatar to display. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | -| compact | false | Should the checkcards be displayed with less padding around them. `true` \| `false` | +| max | 1 | How many checkcards can be selected at once. Any positive number > 0. | +| required | false | Whether checkcards are required in a form. `true` \| `false` | +| selected_value | *empty string* | Comma-separated list of values selected by default, useful in edit mode. | +| error_message | *empty string* | Message shown when selection exceeds `max`. | +| error_heading | Error | Heading shown in the notification when displaying an error message. | +| icon | null | Icon prefix, any icon from Heroicons. | +| avatar | null | Avatar as an image or label. Under 4 characters renders as a label. | +| avatar_size | medium | `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | +| compact | false | Display the checkcards with less padding. `true` \| `false` | | border_color | gray | `blue` \| `red` \| `yellow` \| `green` \| `purple` \| `pink` \| `orange` \| `gray` \| `cyan` \| `violet` \| `indigo` \| `fuchsia` | -| border_width | 2 | How thick should the border of the card be. `2` \| `4` \| `8` | -| radius | medium | Determines the roundness of the card. `none` \| `small` \| `medium` \| `full` | -| show_error | false | Should error messages be displayed when user has selected `max` cards. `true` \| `false` | -| align_items | top | Determines alignment of avatar/icons. `top` \| `center` | -| auto_select_new | true | Determines if selecting a new card unselects the last card. This ensures the user always selects `max` cards without displaying an error. `true` \| `false` | -| class | _(blank)_ | Any additional CSS you wish to add to the checkcards container. | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts. | +| border_width | 2 | `2` \| `4` \| `8` | +| radius | medium | Roundness of the card. `none` \| `small` \| `medium` \| `full` | +| show_error | false | Display an error message when the user has selected `max` cards. `true` \| `false` | +| align_items | top | Alignment of avatar/icons. `top` \| `center` | +| auto_select_new | true | Whether selecting a new card unselects the last one, keeping the selection count at `max`. `true` \| `false` | +| class | *blank* | Any additional CSS for the checkcards container. | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can also be set globally via `config/bladewind.php` under the "script" key. | ### Checkcard Component | Attribute | Default | Description | |---|---|---| -| class | _(blank)_ | Any additional CSS to append to the card. | -| title | _(blank)_ | The text to display as title of the card. | -| value | _(blank)_ | Value to pass when card is selected and form is submitted. | -| icon | null | Display an icon prefix. You can use any icon from Heroicons. | -| avatar | null | Display an avatar as an image or label. If this is less than 4 characters, the avatar will be displayed as a label. | -| avatar_size | medium | Determine size of the avatar to display. `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | -| icon_css | _(blank)_ | Additional CSS to append to the icon. | +| class | *blank* | Any additional CSS to append to the card. | +| title | *blank* | Text to display as the card's title. | +| value | *blank* | Value passed when the card is selected and the form is submitted. | +| icon | null | Icon prefix, any icon from Heroicons. | +| avatar | null | Avatar as an image or label. Under 4 characters renders as a label. | +| avatar_size | medium | `tiny` \| `small` \| `medium` \| `regular` \| `big` \| `huge` \| `omg` | +| icon_css | *blank* | Additional CSS to append to the icon. | ## Full Example ```blade -``` -```blade - + + ``` diff --git a/mcp/colorpicker.md b/mcp/colorpicker.md index 3fadef02..8c163332 100644 --- a/mcp/colorpicker.md +++ b/mcp/colorpicker.md @@ -6,24 +6,26 @@ url: /component/colorpicker # Colorpicker -Display a colour picker so users can select a colour. There are two types of colour pickers. The default HTML colour picker is the default displayed by this component. Once you pass a comma separated string of colours, a custom colour picker is displayed instead. +Display a colour picker so users can select a colour. The default is the browser's native HTML colour picker; passing a comma-separated string of HEX colours switches it to a custom colour picker instead. ## Basic Usage ```blade - + ``` -Once you pass a comma separated string of colours, a custom colour picker is displayed instead. These must be HEX colours including the '#' sign. This is useful if you are building a theme based web app that allows users to select their preferred theme for example. +## Custom Colour Palette + +Pass a comma-separated string of HEX colours (including the `#` sign) to display a custom colour picker instead of the native one. This is useful for a theme-based web app that lets users pick a preferred theme. ```blade + colors="#fff999, #cccccc, #999222, #787623, #78fcc3, #333678, #878987, #098765" /> ``` -## Show Selected Value +## Showing the Selected Value -By default the colorpicker does not show the value of the selected colour. It only changes the colour of the box to what has been selected. To show the selected value set `show_value="true"`. +By default the colorpicker only changes the colour of the box to the selection, without displaying the value. Set `show_value="true"` to show it. ```blade @@ -31,37 +33,34 @@ By default the colorpicker does not show the value of the selected colour. It on ## Sizes -The colorpicker comes in different sizes to match with input fields. In case the component is being used in a form with other fields. The default size is regular. +The colorpicker comes in different sizes to match input fields, useful when placed alongside other form fields. The default size is `regular`. ```blade - + + + + ``` -```blade - -``` +## Forms -```blade - -``` +To access selected colour values when a form is submitted, provide a `name` for the colorpicker. BladewindUI provides a random unique name when none is given. -```blade - -``` +## Using Colorpicker Inside Livewire -In order to access selected colour values when a form is submitted, provide a `name` for your colorpicker. BladewindUI provides a random unique name when no name is provided. +When a colour is picked, the value field dispatches a real, native `change` event, so Livewire's `wire:model` picks it up without any extra work. The bindings that drive the picker are safe to re-run, so a Livewire re-render will not leave behind duplicate listeners. ## Attributes | Attribute | Default | Description | |---|---|---| -| name | random | This name can be accessed when the colorpicker is submitted in a form. | -| selected_value | #000000 | The default colour to show in the colorpicker. Also used when editing an already saved value. | -| show_value | false | Determines if the component should show the selected colour value. `true` \| `false` | -| class | _(blank)_ | Any additional css classes can be added using this attribute. | -| colors | _(blank)_ | Comma separated list of colours to display instead of the default colour palette. | -| size | regular | Size of the colorpicker. Values match the various input size values. `small` \| `regular` \| `medium` \| `big` | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts. | +| name | random | Accessed when the colorpicker is submitted in a form. | +| selected_value | #000000 | Default colour to show, also used when editing a saved value. | +| show_value | false | Show the selected colour value. `true` \| `false` | +| class | *blank* | Any additional CSS classes. | +| colors | *blank* | Comma-separated list of HEX colours to display instead of the default palette. | +| size | regular | Size of the colorpicker, matching input size values. `small` \| `regular` \| `medium` \| `big` | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can also be set globally via `config/bladewind.php` under the "script" key. | ## Full Example diff --git a/mcp/command-palette.md b/mcp/command-palette.md new file mode 100644 index 00000000..16a26dc4 --- /dev/null +++ b/mcp/command-palette.md @@ -0,0 +1,175 @@ +--- +title: Command Palette Component +component: x-bladewind::command-palette +url: /component/command-palette +--- + +# Command Palette + +Command Palette provides a fast, searchable way to find and run actions using the keyboard. Open it with a configurable shortcut or a helper method, then type to filter available actions. Actions can be organized into groups, and the palette supports full keyboard navigation, asynchronous results, and dark mode. + +## Basic Usage + +```blade + + Search commands + + + + + + + + + +``` + +## Opening the Palette + +Command Palette renders hidden and is not tied to a trigger button by default. Open it with its keyboard shortcut (`Ctrl`+`K`, or `⌘`+`K` on macOS), or call `openCommandPalette(name)` from any element. The shortcut works even while focus sits inside another field on the page, matching the convention shared by editors, chat apps, and issue trackers. + +## Searching and Grouped Results + +As you type, Command Palette filters items by their label, description, and optional `keywords` attribute. Matching is case-insensitive and works on partial text. Groups are automatically hidden when none of their items match. A `keywords` value can match even when the words do not appear in the visible label. + +For server-side search, Command Palette emits `bladewind:command-palette:search` with the current query on every keystroke; listen for this event to fetch and display matching results asynchronously. While results are loading, set `loading="true"` or call `setCommandPaletteLoading(name, true)`. The built-in empty state stays hidden until loading completes. + +## Keyboard Behavior + +Focus stays in the search field the entire time the palette is open. Navigation moves a highlighted state between items instead of moving real focus, so screen readers track the current option through `aria-activedescendant` on the search field. + +| Key | Behavior | +|---|---| +| Up Arrow or Down Arrow | Move the highlight to the previous or next visible, enabled item. | +| Home or End | Jump the highlight to the first or last visible item. | +| Enter | Activate the highlighted item. | +| Escape | Close the palette and restore focus to whatever opened it. | +| Tab | Cycles between the search field and the close button while the palette is open. | + +## Links, Actions, and Disabled Items + +An item with `href` renders as a link and navigates normally. An item without `href` renders as a button, for actions handled entirely in JavaScript through the `select` event. Disabled items stay visible but cannot be highlighted or activated. + +## Dark Mode + +Command Palette follows the page dark class and keeps the backdrop, panel, highlighted item, description, and shortcut key contrast readable. + +## Events + +Before events are cancelable; call `preventDefault()` to stop the related change. All event names start with `bladewind:command-palette:`. Item events include the item name and, for links, the destination. + +| Event suffix | When it runs | +|---|---| +| `before-open`, `before-close` | Before the palette opens or closes. | +| `opened`, `closed` | After the palette finishes opening or closing. | +| `before-select` | Before an item is activated. Preventing this stops navigation and the close-on-select behavior. | +| `select` | After an item is activated. | +| `search` | On every keystroke in the search field, with the current query. | + +## JavaScript API + +Helpers return `true` on success or when the requested state already applies, and `false` for a missing target or a canceled event. + +```js +openCommandPalette('app-commands'); +closeCommandPalette('app-commands'); +toggleCommandPalette('app-commands'); +resetCommandPalette('app-commands'); +setCommandPaletteLoading('app-commands', true); +``` + +## Using Command Palette Inside Livewire + +Whether the palette is open, and the current search filter, live in the palette's own DOM rather than in Livewire's component state. If a Livewire component re-renders this markup for a reason unrelated to the palette, it resets to closed. If the palette lives inside a component that can re-render for other reasons, wrap it in `wire:ignore`. The bindings that drive the palette are delegated and safe to re-run, so a re-render will not leave behind duplicate listeners. + +## Attributes + +### Command Palette Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | Generated | Unique public helper and DOM scope. | +| label | Command palette | Accessible dialog and listbox name. | +| placeholder | Search for a command… | Search field placeholder text. | +| search-label | Same as label | Accessible name for the search field. | +| shortcut | mod+k | Global open/close shortcut. `mod` resolves to Ctrl or Cmd. Empty disables the shortcut. | +| size | medium | `tiny` \| `small` \| `medium` \| `big` \| `large` \| `xl` \| `omg` | +| open | false | Initial open state. | +| loading | false | Shows the loading row and suppresses the empty state. | +| empty-text | No results found. | Text shown when nothing matches. | +| loading-text | Loading… | Text shown while loading is true. | +| close-on-select | true | Closes the palette after an item is activated. | +| backdrop-can-close | true | Allows a backdrop click to close the palette. | +| escape-can-close | true | Allows Escape to close the palette. | +| close-label | Close command palette | Accessible label for the close button. | + +### Command Palette Group Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | Required | Name scoped to its Command Palette. | +| label | Required | Visible and accessible section heading. | + +### Command Palette Item Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | Required | Event identifier for the item. | +| label | empty | Visible and accessible label, and part of the search text. | +| description | null | Secondary text, also matched while searching. | +| icon | null | Heroicon name. | +| icon-type | outline | Icon type. | +| icon-dir | empty | Custom icon directory. | +| shortcut | null | Display-only key combination, e.g. `Ctrl+N`. Rendered as individual `` keys. | +| keywords | empty | Extra terms matched while searching but not displayed. | +| href | null | Link destination. Omit for a button action handled through the `select` event. | +| disabled | false | Removes the item from highlighting and activation. | +| external | false | Adds external link semantics and indicator. | +| target | null | Link target. | + +## Slots + +| Slot | Description | +|---|---| +| command-palette default | Command palette groups and items. | +| command-palette footer | Content appended after the built-in keyboard hints in the footer. | +| group default | Items belonging to the group. | +| item default | Custom item copy while Command Palette keeps the option and search semantics. | + +## Full Example + +```blade + + + + + Signed in as Ama Mensah + +``` diff --git a/mcp/data-grid.md b/mcp/data-grid.md new file mode 100644 index 00000000..b7680540 --- /dev/null +++ b/mcp/data-grid.md @@ -0,0 +1,389 @@ +--- +title: Data Grid Component +component: x-bladewind::data-grid +url: /component/data-grid +--- + +# Data Grid + +Data Grid is a higher-level companion to [Table](/component/table): an accessible data grid with column sorting, searching, row selection, sticky headers, and both client-side and server-driven state, all built in rather than assembled by hand. It renders a native `
OptionDefaultAvailable Values
nameauto-generatedUnique identifier used by showModal() / hideModal().
titleAre you sure?Dialog heading.
tonedangerdanger | warning | info | primary
confirmLabelConfirmLabel on the confirm button.
cancelLabelCancelLabel on the cancel button.
onConfirm(blank)Raw JS expression run on confirm, wrapped in a function that may return a Promise. Blank makes Confirm a plain close.
closeAfterConfirmtrueClose the dialog once onConfirm's promise resolves.
backdropCanClosefalseUnlike Modal, defaults to false.
sizesmallAny Modal size: tiny | small | medium | big | large | xl | omg
icon(blank)Overrides the icon tone would otherwise pick, using any Heroicons name.
/ Move focus to the next or previous enabled item.
Open the focused item's submenu, if it has one.
Close the current submenu and refocus its parent item.
Enter / SpaceActivate the focused item, or open its submenu.
Home / EndJump to the first or last enabled item.
EscapeClose the current submenu, or the whole menu if none is open.
OptionDefaultAvailable Values
nameauto-generatedUniquely identifies this instance in the DOM and its JavaScript.
disableNativetruefalse lets the browser's own context menu show and disables this component entirely — useful for turning the feature off conditionally.
paddedtruePadding inside the menu list.
class(blank)Additional CSS classes for the menu list.
OptionDefaultAvailable Values
icon(blank)Any Heroicons name.
disabledfalseGreys the item out and removes it from pointer and keyboard interaction.
tonenormalnormal | danger
dividerfalseRenders a separator line instead of an item; ignores every other prop.
submenu(none)A named slot of further items, turning this item into a submenu trigger.
Additional CSS classes for the wrapper element.
OptionOverrides the icon tone would otherwise pick, using any Heroicons name.
OptionDefaultAvailable Values
currencyUSDAny ISO 4217 currency code.
localeen-USA BCP 47 locale tag. Only affects output when PHP's intl extension is installed.
symbolderivedOverrides the currency symbol entirely.
symbolPositionderivedprefix | suffix
decimalSeparatorderivedCharacter separating the decimal part.
thousandsSeparatorderivedCharacter grouping thousands.
precisionderivedNumber of decimal places. 0 disables decimals entirely.
label(blank)Label displayed on the field.
requiredfalseMarks the field as required.
sizeregularAny Input size.
OptionDefaultAvailable Values
forrequiredThe name (or id) of the password field to watch.
showLabeltrueShows the "Weak" / "Fair" / "Good" / "Strong" text readout.
minLength8Character count that earns the first length point.
strongLength12Character count that earns the second length point.
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
name(blank)Filename to display, and the source of the extension-derived icon.
size(blank)File size in bytes. A non-numeric value hides the size line.
url(blank)Link used by the download action.
thumbnail(blank)An image URL shown in place of the generic file-type icon.
iconderivedOverrides the extension-derived icon with any Heroicons name.
removabletrueShows the remove control.
downloadabletrueShows the download link when a url is set.
onRemove(blank)Raw JS run on remove, replacing the default (remove the preview from the DOM).
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
nameauto-generatedField name the selected values submit under, as name[].
items[]Array or JSON string of items, each with a value and a label key.
valueKeyvalueKey read as each item's value.
labelKeylabelKey read as each item's display label.
selected[]Values that start in the "Selected" panel.
availableLabelAvailableLeft panel heading.
selectedLabelSelectedRight panel heading.
searchabletrueShows a per-panel search box.
height260Height, in pixels, of each panel.
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
nameauto-generatedName of the hidden field the current value submits under.
value(blank)Current value.
placeholderClick to editShown, in a muted style, when the value is empty. Also the input's placeholder while editing.
requiredfalseBlocks saving an empty value.
requiredMessageThis field is requiredShown when a required save is blocked.
maxlength(none)Maximum characters accepted by the input.
onSave(blank)Raw JS expression receiving (newValue, oldValue), optionally returning a Promise. Blank saves optimistically.
saveLabel / cancelLabel / editLabelSave / Cancel / EditAccessible labels for the three controls.
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
keys(none)Array or JSON string of key labels for a combo. Takes priority over the default slot.
sizesmalltiny | small | regular
class(blank)Additional CSS classes for the key (or the combo's wrapper, when using keys).
OptionDefaultAvailable Values
value(none)Text to copy. Defaults to the default slot's trimmed text.
label(blank)Text label on the button. Ignored when the slot has content.
copyLabelCopyAccessible label for the trigger button.
copiedMessageCopiedAnnounced to screen readers after a successful copy.
failedMessageCould not copyAnnounced to screen readers if the copy fails.
timeout1500Milliseconds before the success icon reverts to the default clipboard icon.
sizesmalltiny | small | regular
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
value0The current measurement.
min / max0 / 100The measurement's bounds.
low / high(none)Zone boundaries. Both must be set to enable semantic colouring.
optimum(none)A value inside the zone that should read as "good". Defaults to the high zone.
label(blank)Label shown above the bar.
showValuetrueShows "value / max" above the bar.
sizemediumtiny | small | medium | large
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
dividedtrueHorizontal rule between rows.
stripedfalseAlternates a subtle background on every row. Propagates to items automatically.
class(blank)Additional CSS classes for the wrapper element.
OptionDefaultAvailable Values
label(blank)The row's label.
action(none)A named slot rendered beside the value.
class(blank)Additional CSS classes for the row.
OptionDefaultAvailable Values
toneinfoinfo success warning error primary
titleblankAn optional bold heading shown above the message.
show_icontrueDetermines if the tone's icon is displayed. true false
iconblankUse any icon name from Heroicons instead of the tone's default icon.
dismissibletrueDetermines if a close icon is shown so visitors can hide the banner. true false
persist_keyblankRemembers a dismissal in the visitor's browser under this key, so the banner stays hidden on later visits. Leave blank and the banner shows again on every page load.
roundedfalseDetermines if the banner has rounded corners. true false
actionsnoneA named slot for one or more buttons or links, shown beside the message.
classblankAny additional CSS classes you wish to add.
OptionDefaultAvailable Values
codeblankThe code to display, as a PHP string. Escaped automatically. Leave blank to write the snippet in the default slot instead.
languagemarkupmarkup css javascript php bash json sql python yaml
titleblankAn optional filename or label shown in the header.
line_numbersfalseNumbers every line. true false
highlight_linesblankLines to highlight, using Prism's line-highlight syntax, for example "2" or "3-5,8".
wrapfalseWraps long lines instead of scrolling horizontally. true false
show_copytrueShows a button that copies the code to the clipboard. true false
show_language_labeltrueShows the language name in the header. true false
classblankAny additional CSS classes you wish to add.
OptionDefaultAvailable Values
heightblankAny valid CSS height value, for example "400px". The thread grows with its content when left blank.
classblankAdditional CSS classes for the wrapper element.
OptionDefaultAvailable Values
outgoingfalseRight-aligns the bubble as a message sent by the current user. true false
senderblankThe sender's name, shown above an ungrouped incoming message and used for the avatar's initials fallback.
avatarblankURL to the sender's avatar image.
timeblankA timestamp shown beneath the bubble.
statusblankDelivery state, shown only when outgoing is true. sending sent delivered read failed
groupedfalseHides the avatar and sender name for a message following another from the same sender. true false
show_avatartrueDetermines if incoming messages show an avatar at all. true false
attachmentsnoneA named slot for files, images, or anything else the message carries.
classblankAdditional CSS classes for the message row.
OptionDefaultAvailable Values
arrowstrueShows previous/next arrow buttons. true false
indicatorstrueShows a row of dot indicators, one per slide. true false
autoplayfalseAdvances slides automatically. Disabled for a visitor whose system requests reduced motion. true false
interval5000Milliseconds between slides when autoplay is on.
looptrueWraps from the last slide back to the first, and vice versa. true false
swipetrueEnables touch and pointer swiping to change slides. true false
heightblankAny valid CSS height value, for example "320px". The carousel takes the height of its tallest slide when left blank.
classblankAdditional CSS classes for the wrapper element.
OptionDefaultAvailable Values
classblankAdditional CSS classes for the slide.
OptionDefaultAvailable Values
animation150Animation speed in milliseconds when a card is dropped. 0 disables it.
on_moveblankName of a JavaScript function called after every move as (cardId, fromColumnId, toColumnId, newIndex).
classblankAdditional CSS classes for the board's wrapper element.
OptionDefaultAvailable Values
titleblankThe column's heading.
ida slug of the titleIdentifier reported to the move hook. Set it explicitly when the title alone is not a stable, unique key.
loadingfalseHides the card list and shows a spinner instead. true false
empty_textNo cardsShown in place of the list when it has no cards and is not loading.
actionsnoneA named slot rendered beside the title.
classblankAdditional CSS classes for the column.
OptionDefaultAvailable Values
valueblankIdentifier reported to the move hook, for example a model id.
classblankAdditional CSS classes for the card.
OptionDefaultAvailable Values
viewdayday week
datetodayAnchor date (Y-m-d). Day view shows just that day; week view shows the week containing it.
resourcesemptyDay view's columns: [['id' => 'r1', 'label' => 'Room A'], ...]. Ignored in week view.
eventsempty['id', 'label', 'start' => 'Y-m-d H:i', 'end' => 'Y-m-d H:i', 'color', 'resource_id', 'href']. An event outside the visible hour range is clipped to it, not hidden.
start_hour8First visible hour (0-23).
end_hour18Last visible hour, exclusive (1-24).
slot_minutes60Grid line granularity. 60 30 15
week_starts1First day of the week used by week view. 0 (Sunday) or 1 (Monday)
timezoneblankA display-only label. Convert event times to the viewer's timezone yourself before passing them in.
on_slot_clickblankName of a JavaScript function called as (columnId, "H:i") when an empty slot is clicked.
on_event_clickblankName of a JavaScript function called as (eventId) when an event without an href is clicked.
classblankAdditional CSS classes for the wrapper element.
OptionDefaultAvailable Values
nameauto-generatedUsed as the JS variable the component is exposed on (window.{name}) and to scope its script tags. Not a form field — this component does not submit.
cardholder_nameblankName printed on the card.
numberblankCard number, auto-grouped per network as the user types. A masked value like •••• •••• •••• 4242 is preserved as-is.
expiry_month / expiry_yearblankTwo-digit month (01-12) and year.
cvcblankSecurity code (3 digits, 4 for American Express).
brandauto-detectedvisa mastercard amex discover diners jcb unionpay maestro
colorprimaryGradient colour, from the shared palette. Ignored in the outline variant.
variantgradientgradient for the full-colour face, outline for a bare silhouette, or inline for number/expiry/CVC fields only.
flippedfalseShows the back face. true false
disabledfalseDisables every field and hides the flip button. true false
readonlyfalseMakes every field read-only. true false
requiredfalseWhether validate() fails while any field is incomplete. true false
error_messageblankMessage shown when validation fails and show_error_inline is set.
show_error_inlinefalseRenders the error message beneath the card. true false
on_changeblankName of a JavaScript function called with the structured value whenever it changes.
classblankAdditional CSS classes for the wrapper element.
Item Quantity1 500.00
`, so every interaction (sorting, selecting, paging, searching) happens through real, independently keyboard-operable controls rather than a hand-rolled widget. + +## Basic Usage + +```blade + +``` + +## Columns and Rows + +Each column accepts `key`, `label`, `align`, `width`, `sortable`, `class`, and two callbacks: `format($value, $row)` for display, and `sort($value, $row)` for when the sortable value should differ from the displayed one. `rows` is an array of associative arrays or objects; a row's identity comes from `row-key`, which defaults to `id`. + +### Shorthand Column Syntax + +Pass a plain array of key strings instead of full column definitions, and the grid title-cases each key and swaps underscores for spaces to build the label. Shorthand columns skip the `format` and `sort` callbacks, so cells render the raw value, fine for text and status fields, but not for something like an unformatted amount in cents. + +```blade + +``` + +Pass an associative array of `key => label` pairs instead when you only need to rename a column: + +```blade + +``` + +### Formatting a Column + +`format($value, $row)` receives the raw cell value and the full row, and its return value is rendered as raw HTML rather than escaped text, so it can return a styled badge, icon, or link: + +```php +$statusColors = [ + 'paid' => 'bg-emerald-100 text-emerald-700', + 'pending' => 'bg-amber-100 text-amber-700', + 'refunded' => 'bg-slate-200 text-slate-600', +]; + +$columns = [ + // ... + [ + 'key' => 'status', + 'label' => 'Status', + 'align' => 'center', + 'format' => function ($value) use ($statusColors) { + $class = $statusColors[$value] ?? $statusColors['pending']; + return '' + .ucfirst($value).''; + }, + ], +]; +``` + +Because `format` output is not escaped, never feed it raw user input without sanitising first. Build the HTML around a trusted value, or run untrusted text through `e()` before it goes into the string. + +### Custom Sort Values + +Sorting compares the raw cell value by default, before `format` runs. That breaks down for a column whose sortable order should not match the raw or formatted value, e.g. a status that should sort by severity rather than alphabetically. Give the column its own `sort($value, $row)` callback to override the comparison value: + +```blade + +``` + +### Row Identity + +Every row needs a stable, unique key so selection, sorting, and pagination can track it across re-renders. The grid reads `id` off each row by default. Set `row-key` when your data's identifier is called something else. + +```blade + +``` + +## Sorting + +Set `sortable="true"` on the grid to make every column sortable, or set `sortable` per column. Clicking a header cycles none, ascending, descending, none again. + +`client-sort` defaults to `true` and reorders rows in the browser. Set it to `false` for a server-driven grid: clicking a header only updates the arrow indicator and emits `bladewind:data-grid:sort-change`, leaving the actual reordering to the application. + +### Sorting on Load + +Pass `sort-key` and `sort-direction` to render the grid already sorted: + +```blade + +``` + +### Server-Driven Sorting + +With `client-sort="false"`, clicking a sortable header does not touch the DOM. It fires a cancelable `before-sort-change` followed by `sort-change`, with the column key and new direction in the event detail: + +```js +document.addEventListener('bladewind:data-grid:sort-change', (event) => { + if (event.detail.name !== 'orders-grid') return; + const { key, direction } = event.detail; + setDataGridLoading('orders-grid', true); + fetch(`/orders?sort=${key}&direction=${direction}`) + .then((response) => response.text()) + .then((html) => { + document.getElementById('orders-grid-wrapper').innerHTML = html; + }); +}); +``` + +## Searching + +`searchable="true"` renders a toolbar search field. `client-search` defaults to `true` and filters rows by their rendered cell text as you type. Customise the placeholder with `search-placeholder`. + +```blade + +``` + +### Server-Driven Searching + +Set `client-search="false"` to filter server-side instead. The grid renders no filtering itself; it emits `bladewind:data-grid:search` with the current query on every keystroke, so debounce it yourself before hitting your backend: + +```js +let searchTimer; +document.addEventListener('bladewind:data-grid:search', (event) => { + if (event.detail.name !== 'orders-grid') return; + clearTimeout(searchTimer); + searchTimer = setTimeout(() => { + setDataGridLoading('orders-grid', true); + fetch(`/orders?q=${encodeURIComponent(event.detail.query)}`) + .then((response) => response.text()) + .then((html) => { + document.getElementById('orders-grid-wrapper').innerHTML = html; + }); + }, 300); +}); +``` + +## Row Selection + +`selectable="true"` adds a selection column. `selection-mode` is `multiple` (checkboxes, with a tri-state select-all in the header, scoped to the current page or search results) or `single` (radio buttons). A selection bar appears above the grid once anything is selected, with a clear-selection control and an optional `bulk-actions` slot for custom buttons. + +```blade + +``` + +Use `selection-mode="single"` for pick-one flows, such as choosing a reviewer or a default address. + +Pass `selected` with an array of row keys to render the grid with some rows already checked, useful for an edit form reopening with a saved selection: + +```blade + +``` + +The `bulk-actions` slot renders inside the selection bar, next to the clear-selection control, and only appears once at least one row is selected. Pair it with `dataGridSelectedKeys()` to read the current selection when a bulk action fires: + +```blade + + + Export + Delete + + +``` + +## Pagination and Server-Driven State + +Set `paginated="true"` with `page-size` for client-side pagination. The grid renders its own previous and next footer and keeps it in sync with sorting and searching. + +Client pagination still ships every row to the browser and pages through them there, fine for a few hundred rows but the wrong tool once a dataset grows past what is reasonable to send on every page load. + +Pass a real Laravel paginator through `paginator` instead of setting `paginated` directly; the grid detects it and switches into server mode automatically, rendering standard page links. `rows` should be the paginator's current-page items, not the full dataset: + +```php +// in your controller or route closure +$staff = Staff::query()->orderBy('company_name')->paginate(8); +return view('staff.index', ['staff' => $staff]); +``` + +```blade + +``` + +A grid built from a real paginator ignores `sortable` and `searchable` client-side behaviour, since the rows in the DOM are only ever one page's worth. Wire header clicks and the search field to your query string or an event listener instead, following the server-driven sorting and searching patterns above. + +### Loading State + +Set `loading="true"`, or call `setDataGridLoading(name, true)`, while an application fetches new rows for a server-driven grid. The table dims and shows a progress indicator, and screen readers see `aria-busy="true"`. + +## Appearance + +`striped`, `bordered`, and `dense` control visual density. `sticky` keeps the header pinned while the body scrolls, and defaults to `true`. Set `height` to cap the grid at a fixed height with an internal scrollbar rather than letting it grow with the row count. + +```blade + + + + +``` + +`sticky` only has something to do once the grid has a `height` short enough that rows actually scroll. Set `sticky="false"` to let the header scroll away with the rest of the content, useful if the grid already sits inside its own scroll container with a sticky header at a higher level. + +## Toolbar + +The `toolbar` slot renders next to the search field, for controls that apply to the grid as a whole rather than to a selection, e.g. an export button or a status filter. + +```blade + + + Export CSV + + +``` + +## Custom Layout + +Skip `columns` and `rows` entirely for a fully custom layout: a `header` slot for `` rows. This is the escape hatch for a table body that does not fit the column model at all, e.g. merged cells or a summary row. A custom layout opts out of the grid's own sorting, searching, and pagination automation, since those work against the `columns` and `rows` the grid normalises internally; you are responsible for reimplementing any of that behaviour against your hand-written markup. + +```blade + + + + + + + + + + + + + + + + + +``` + +## Events + +Before events are cancelable. Call `preventDefault()` on the event to stop the related change, useful for confirming a destructive selection change or blocking a sort while a save is in flight. All event names start with `bladewind:data-grid:`. + +| Event suffix | When it runs | +|---|---| +| `before-sort-change`, `sort-change` | Before and after a column's sort state changes. | +| `before-select-change`, `select-change` | Before and after row selection changes. Preventing the before event reverts the checkbox or radio. | +| `before-page-change`, `page-change` | Before and after the current client page changes. | +| `search` | On every keystroke in the search field, with the current query. | + +```js +document.addEventListener('bladewind:data-grid:before-select-change', (event) => { + if (event.detail.name !== 'orders-grid') return; + if (event.detail.selecting && event.detail.row.status === 'refunded') { + if (!confirm('This order was refunded. Select it anyway?')) { + event.preventDefault(); + } + } +}); +``` + +## JavaScript API + +Every helper returns `true` when it completes, or when the requested state already applies, and `false` when the target is missing or a cancelable event was prevented. + +| Function | What it does | +|---|---| +| `sortDataGrid(name, key, direction)` | Sorts a client-mode grid by the given column, direction is `'asc'`, `'desc'`, or `null` to clear. | +| `setDataGridPage(name, page)` | Jumps to a page in a client-paginated grid. | +| `selectAllDataGridRows(name, selected)` | Selects or deselects every visible row, matching the header checkbox. | +| `clearDataGridSelection(name)` | Clears the current selection entirely. | +| `dataGridSelectedKeys(name)` | Returns an array of the currently selected row keys. | +| `setDataGridLoading(name, loading)` | Toggles the dimmed, busy loading state. | +| `resetDataGrid(name)` | Clears search, sort, selection, and returns to page one, all at once. | + +```js +sortDataGrid('orders-grid', 'total', 'desc'); +setDataGridPage('orders-grid', 2); +selectAllDataGridRows('orders-grid', true); +dataGridSelectedKeys('orders-grid'); // ['3', '7', '12'] +clearDataGridSelection('orders-grid'); +setDataGridLoading('orders-grid', true); +resetDataGrid('orders-grid'); +``` + +## Using Data Grid Inside Livewire + +Client-side sorting, searching, pagination, and row selection all live in the grid's own DOM, in attributes and checkbox state, rather than in Livewire's component state, so those interactions work fine on their own inside a Livewire component. What can catch you out is an unrelated re-render, one that happens for a reason that has nothing to do with the grid: because that state is not mirrored back to Livewire, such a re-render can reset the current page, sort order, or selection. If the grid lives inside a component that re-renders for other reasons, wrap it in `wire:ignore`. Alternatively, set `client-sort="false"` and `client-search="false"` and drive the grid from Livewire using the `before-*` and `*-change` events described above. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | Generated | Unique public helper and DOM scope. | +| label | Data grid | Accessible table name. | +| columns | [] | Column model. Omit with rows for a custom layout. | +| rows | null | Array of associative arrays or objects to render. | +| row-key | id | Field used as each row's unique identity. | +| selectable | false | Adds a selection column. | +| selection-mode | multiple | `multiple` (checkboxes) or `single` (radios). | +| selected | [] | Row keys to preselect. | +| sortable | false | Makes every column sortable. A column's own sortable key wins per column. | +| sort-key | null | Column key to render as initially sorted. | +| sort-direction | null | `asc` or `desc`, paired with sort-key. | +| client-sort | true | Reorders rows in the browser. When false, only the indicator updates and the app must reorder the data. | +| searchable | false | Renders the toolbar search field. | +| search-placeholder | Search… | Search field placeholder text. | +| client-search | true | Filters rows in the browser. When false, only the search event fires. | +| paginated | false | Enables client pagination. Implied automatically by passing paginator. | +| page-size | 25 | Rows per page in client pagination mode. | +| paginator | null | A Laravel paginator, for server-driven pagination. | +| sticky | true | Pins the header while the body scrolls. | +| loading | false | Dims the table and shows a progress indicator. | +| empty-text | No records found. | Text shown when there are no rows. | +| striped | false | Alternating row background. | +| bordered | false | Vertical cell borders. | +| dense | false | Reduced cell padding. | +| height | null | Max height for the scrollable body, e.g. `24rem`. | +| select-all-label | Select all rows | Accessible label for the header checkbox. | +| clear-selection-label | Clear selection | Label for the clear-selection control. | + +## Slots + +| Slot | Description | +|---|---| +| toolbar | Content appended after the search field. | +| bulk-actions | Custom buttons in the selection bar. | +| header | Custom `` rows, used instead of rows. | + +## Full Example + +```blade + + + Export CSV + + + Delete selected + + +``` diff --git a/mcp/datepicker.md b/mcp/datepicker.md index 235fbd99..56bed19c 100644 --- a/mcp/datepicker.md +++ b/mcp/datepicker.md @@ -6,107 +6,124 @@ url: /component/datepicker # Datepicker -Display a datepicker so user can select a date. The datepicker component is locale friendly. Months and days of the week are translated. +Display a datepicker so users can select a date. It is locale friendly: months and days of the week are translated. ## Basic Usage ```blade - + ``` -By default the datepicker fills up the width of its parent container. You can however specify a width of your choice using the datepicker's `css` attribute. - -You can also change the placeholder text from the default `Select a date`. +By default the datepicker fills the width of its parent container; restrict this with a wrapping element or the component's `css` attribute. Change the placeholder text from the default "Select a date" with `placeholder`. ```blade
- +
``` ## Range Calendar -The range datepicker allows you to select a range of dates by setting `range="true"`. In the input field, the range of dates selected are separated with a dash (-). For example, a selected date range will be displayed in the input as **2025-01-10 - 2025-01-31**. +Set `range="true"` to select a range of dates. In the input field, the two dates are separated with a dash, e.g. `2025-01-10 - 2025-01-31`. ```blade - + ``` -### Show As a Required Field +### Show as a Required Field An asterisk is appended to the placeholder text when `required="true"`. ```blade - + ``` ## Date Formats -You can specify how you want dates selected in the datepicker to be displayed. There are four options to pick from. The default format is `format="yyyy-mm-dd"`. When using a range datepicker, the format you specify is applied to both datepickers. +Specify how dates should display. The default format is `yyyy-mm-dd`. For a range datepicker, the format applies to both dates. ```blade -``` - -```blade -``` - -```blade -``` - -```blade ``` ## With Default Values -There are times you will want the datepicker to load prepopulated with a default value. This is useful when in edit mode or when using filters and you want to show the user what dates they filtered by. +Useful in edit mode or when showing users what dates they filtered by. ```blade - -``` - -It is possible to have default dates for a range datepicker also. + -```blade - + ``` ## Min and Max Dates -Setting minimum and maximum dates restrict the datepicker to display dates only within these specified dates. The `min_date` attribute allows you to set the accepted minimum date. Any dates before this date will be disabled and grayed out. The `max_date` attribute allows you to set the accepted maximum date. Any dates after this date will be disabled and grayed out. +`min_date` restricts selection to dates on or after it; `max_date` restricts to dates on or before it. Dates outside the range are disabled and grayed out. ```blade - + + + + + ``` +## Laravel Form State + +When validation fails, Laravel redirects back with the submitted values flashed to the session and the messages in `$errors`. The Datepicker component can read both for you, so you no longer write `old('...')` and an error block on every field. + ```blade - + ``` -```blade - +`fill_from_old` repopulates the field from `old()`. `show_validation_error` gives the field its error state and renders `$errors->first()` underneath it. Add `error_bag` if you validate into a named bag. + +Both are off by default. If your form already prints its own validation messages, switching this on without removing them would print every message twice. + +### Turning It On for Every Form + +```php +// config/bladewind.php +'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, +], ``` +An attribute on a single field always wins over the config, so you can opt one field out with `show_validation_error="false"`. + ## Attributes | Attribute | Default | Description | |---|---|---| -| name | bw-datepicker | This name can be accessed when the input is submitted in the form. The name is also available as part of the css classes. | +| name | bw-datepicker | Accessed when the input is submitted in the form. Also used as part of the CSS classes. | | range | false | Allow range selection. `true` \| `false` | -| selected_value | _(blank)_ | In case you are editing a form, the value passed will be set on the value attribute of the datepicker input. | -| min_date | _(blank)_ | Restrict the date to start from this. Any dates before this will be disabled and grayed out. | -| max_date | _(blank)_ | Restrict the date to end at this. Any dates after this will be disabled and grayed out. | -| format | yyyy-mm-dd | How date should be formatted. `yyyy-mm-dd` \| `dd-mm-yyyy` \| `mm-dd-yyyy` \| `yyyy/mm/dd` \| `dd/mm/yyyy` \| `mm/dd/yyyy` \| `D d M, Y` | +| selected_value | *blank* | Value set on the input, useful when editing a form. | +| min_date | *blank* | Dates before this are disabled and grayed out. | +| max_date | *blank* | Dates after this are disabled and grayed out. | +| format | yyyy-mm-dd | How the date should be formatted. `yyyy-mm-dd` \| `dd-mm-yyyy` \| `mm-dd-yyyy` \| `yyyy/mm/dd` \| `dd/mm/yyyy` \| `mm/dd/yyyy` \| `D d M, Y` | | placeholder | Select a date | Placeholder text to display. | | label | Select a date | Label text to display. | -| required | false | Determines if the placeholder text should have an asterisk appended to it or not. `true` \| `false` | -| week_starts | sunday | Choose between Sunday and Monday as the first day of the week. `sunday` \| `monday` | -| class | bw-datepicker | Any additional css classes can be added using this attribute. | +| required | false | Append an asterisk to the placeholder text. `true` \| `false` | +| week_starts | sunday | First day of the week. `sunday` \| `monday` | +| class | bw-datepicker | Any additional CSS classes. | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can also be set globally via `config/bladewind.php` under the "script" key. | | size | medium | Sizing of the input to match button sizes. `tiny` \| `small` \| `regular` \| `big` | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts. | +| fill_from_old | false | Repopulate from `old()` after a failed validation redirect. Defaults to `bladewind.forms.fill_from_old`. `true` \| `false` | +| show_validation_error | false | Give the field its error state and render `$errors->first()` beneath it. Defaults to `bladewind.forms.show_validation_error`. `true` \| `false` | +| error_bag | null | Which error bag to read when `show_validation_error` is on. Leave unset for Laravel's default bag. | + +## Using Datepicker Inside Livewire + +When a date is picked, the field dispatches a real, native `change` event, so Livewire's `wire:model` picks up the selection without extra work. The calendar popup tracks its open/closed state outside of the DOM Livewire manages, so an unrelated re-render resets the popup to closed — wrap the field in `wire:ignore` if this happens. The component also guards against a Livewire re-render building a second calendar popup. ## Full Example diff --git a/mcp/drawer.md b/mcp/drawer.md new file mode 100644 index 00000000..bf2537eb --- /dev/null +++ b/mcp/drawer.md @@ -0,0 +1,189 @@ +--- +title: Drawer Component +component: x-bladewind::drawer +url: /component/drawer +--- + +# Drawer + +Display supporting content in a panel that enters from any edge of the viewport. Drawers work well for filters, forms, record details, and short workflows that should not replace the current page. + +## Basic Usage + +```blade +Open drawer + +
+ + +
+ + + + +
+ +

Victoria Ferguson

+

victoria@ferguson.eu

+ + +
+ + +
+``` + +## Positions + +Use `left`, `right`, `top`, or `bottom`. These are physical viewport edges, so left and right remain predictable in RTL pages. + +```blade +... +... +... +... +``` + +## Sizes + +Sizes are adapted to the drawer direction: left and right drawers change width, top and bottom drawers change height. Available values are `tiny`, `small`, `medium`, `big`, `large`, `xl`, and `omg`. + +```blade +... +``` + +## Modal and Non-modal Behaviour + +A drawer is modal by default: it has a backdrop, traps focus, and prevents background scrolling. Set `modal="false"` for supporting content that should leave the page interactive. + +```blade +... +``` + +## Header and Footer Slots + +Use the named header and footer slots to customize those regions while keeping the drawer layout and scrolling behavior. + +```blade + + Custom header + Form content + Custom footer + +``` + +## Icons and Close Controls + +Set `icon`, `icon-type`, and `icon-dir` using the Icon component contract. Set `show-close-button="false"` when another clear close action is present. + +```blade +... +``` + +## Backdrop and Escape Options + +Backdrop clicks and the Escape key close a modal drawer by default. Disable either behavior for a workflow that requires an explicit decision, and always provide a visible close action. + +```blade + + ... + + Cancel + + +``` + +## Programmatic Show, Hide, and Toggle + +The three public helpers accept the drawer name and return `false` when no matching state change can be made. + +```js +showDrawer('customer-details'); +hideDrawer('customer-details'); +toggleDrawer('customer-details'); +``` + +The drawer also emits `bladewind:drawer-opened` and `bladewind:drawer-closed` events. Each event bubbles and includes the drawer name in `event.detail.name`. + +## Long and Scrollable Content + +The body region scrolls independently while the header and footer remain visible. + +## Responsive, Dark Mode, and RTL + +On narrow screens, side drawers never exceed the viewport width. The component uses the active dark theme automatically and respects reduced motion preferences. Left and right refer to physical edges in both LTR and RTL documents. + +## Accessibility and Focus Management + +Modal drawers render with dialog semantics and `aria-modal="true"`. The title labels the drawer and the description is connected with `aria-describedby`. If there is no title, provide `aria-label` or `aria-labelledby`. + +Opening moves focus to the first focusable control, or to the panel when there are no controls. Modal focus stays inside the active drawer. Closing restores focus to the control that opened it. When drawers are stacked, Escape affects only the top drawer. + +## Attributes + +| Attribute | Default | Description | +|---|---|---| +| name | generated | Unique drawer name used by the JavaScript helpers. | +| title | _(blank)_ | Visible title and accessible name. | +| description | _(blank)_ | Supporting text connected to the drawer description. | +| position | right | Physical edge: `left`, `right`, `top`, or `bottom`. | +| size | medium | `tiny` \| `small` \| `medium` \| `big` \| `large` \| `xl` \| `omg` | +| modal | true | Enable backdrop, focus trap, and scroll locking. | +| open | false | Render the drawer open initially. | +| show-close-button | true | Show the header close control. | +| close-label | Close drawer | Accessible label for the close control. | +| backdrop-can-close | true | Allow backdrop clicks to close a modal drawer. | +| escape-can-close | true | Allow Escape to close the active drawer. | +| icon | _(blank)_ | Header icon name. | +| icon-type | outline | Icon type passed to the Icon component. | +| icon-dir | _(blank)_ | Custom icon directory passed to the Icon component. | + +## Slots + +| Slot | Description | +|---|---| +| default | Drawer body content. | +| body | Named alternative to the default body slot. | +| header | Custom header content. The configured close button remains available. | +| footer | Footer actions or supporting content. | + +## JavaScript API + +| Function or event | Description | +|---|---| +| `showDrawer(name)` | Open a drawer, record the trigger, move focus, and lock scroll when modal. | +| `hideDrawer(name)` | Close a drawer and restore focus. | +| `toggleDrawer(name)` | Open or close a drawer based on its current state. | +| `bladewind:drawer-opened` | Bubbling event emitted after opening. | +| `bladewind:drawer-closed` | Bubbling event emitted after closing. | + +## Using Drawer Inside Livewire + +Whether the drawer is open or closed lives in the drawer's own DOM rather than in Livewire's component state. If a Livewire component re-renders this markup for a reason that has nothing to do with the drawer, it silently closes. This matters most for a drawer that can stay open for a while, such as a filter panel or a form, inside a component that can also re-render for other reasons. In that situation, wrap the drawer in `wire:ignore` so Livewire leaves it alone. + +## Full Example + +```blade + + Customer profile content + +``` diff --git a/mcp/dropmenu.md b/mcp/dropmenu.md index 4296dc9f..60f61f07 100644 --- a/mcp/dropmenu.md +++ b/mcp/dropmenu.md @@ -6,7 +6,9 @@ url: /component/dropmenu # Dropmenu -Useful for displaying menu items in a dropdown. This is very different from the [Select component](/component/select). The Select component can pass values as a form element. The Dropmenu does not pass values around and is mostly useful for accessing quick actions. +Displays menu items in a dropdown for quick actions. Unlike the Select component, the Dropmenu does not pass values around as a form element. + +## Basic Usage ```blade @@ -16,7 +18,7 @@ Useful for displaying menu items in a dropdown. This is very different from the ``` -By default the Dropmenu is triggered using the `horizontal ellipsis` icon found on [Heroicons](https://heroicons.com/). You can trigger the menu using any other icon from Heroicons or using any other element. To use an icon as the trigger, the trick is to append the word **-icon** to the end of the name of the icon defined on Heroicons. +By default the Dropmenu is triggered by the horizontal ellipsis icon from Heroicons. To trigger it with any other Heroicon, append `-icon` to the icon's name and set it as `trigger`. ```blade @@ -39,11 +41,10 @@ By default the Dropmenu is triggered using the `horizontal ellipsis` icon found ### trigger_css -It is also possible to modify the trigger css. This css applies to any item you specify as the trigger but most useful if you specify an icon as the trigger. This is achieved by defining TailwindCSS classes for the `trigger_css` attribute. +Apply TailwindCSS classes to the trigger element, most useful when the trigger is an icon. ```blade - + Add to playlist Play again @@ -51,20 +52,18 @@ It is also possible to modify the trigger css. This css applies to any item you ### trigger_on -By default the Dropmenu is displayed when you click on the trigger. It is possible to change this behaviour by defining the `trigger_on` attribute. There are only two available options: `click` and `mouseover`. +By default the menu opens on click. Set `trigger_on="mouseover"` to open on hover instead. Available values: `click`, `mouseover`. ```blade - + Add to playlist Play again ``` -### Non Icon Triggers +### Non-Icon Triggers -To trigger the Dropmenu using any HTML element other than an icon, you will need to define the trigger as a slot. +Define the trigger as a slot to use any HTML element instead of an icon. ```blade @@ -97,13 +96,10 @@ To trigger the Dropmenu using any HTML element other than an icon, you will need ## Dropmenu Item Actions -The Dropmenu items are the actual line items within your Dropmenu. Each item can contain any piece of HTML code so you completely have control over what action is assigned to each menu item. BladewindUI does not interfere. For convenience, you can specify an `onclick` attribute. - -Dropmenu Items can contain HTML so their content is all up to you. +Each dropmenu item can contain any HTML, giving you full control over its action. Use the `onclick` attribute for convenience. ```blade - + Go to Library @@ -117,7 +113,7 @@ Dropmenu Items can contain HTML so their content is all up to you. ### Headers -It is possible to define a header for your Dropmenu component. There can be several headers in a Dropmenu. The header is still a `x-bladewind::dropmenu.item` component so can contain any HTML. The only difference between this and other items is there is no hover effect, the cursor displayed is the default pointer and there is a divider separating the header from the next menu item. To define a Dropmenu item as a header, set `header="true"`. +Set `header="true"` on a `dropmenu.item` to render it as a header — no hover effect, default pointer cursor, and a divider separating it from the next item. Multiple headers are allowed. ```blade @@ -127,7 +123,7 @@ It is possible to define a header for your Dropmenu component. There can be seve ### Icons -Even though it is possible to define your own icon as part of the Dropmenu item's content, there is a shortcut that allows you to define any of the icons available on [Heroicons](https://heroicons.com). This makes use of the BladewindUI [Icon component](/component/icon). This is useful only if you have menu items that fit on one line and you want to prefix each line with an icon. To define a Dropmenu item with an icon, set the `icon` attribute with any icon name from Heroicons. Unlike the icon used in the `trigger` attribute of the Dropmenu component, items do not require the **-icon** at the end of the icon name. +Set `icon` on a `dropmenu.item` to prefix it with a Heroicon (via the Icon component), without the `-icon` suffix needed by the trigger. ```blade @@ -135,25 +131,23 @@ Even though it is possible to define your own icon as part of the Dropmenu item' ``` -By default, icons are positioned on the left of the menu item content. To switch the icon position to the right of the menu item content, set `icon_right="true"`. Setting the attribute on the `x-bladewind::dropmenu` component will shift all menu items in the menu to the right. Alternatively, you can set the attribute on one or more menu items within the Dropmenu component. +Icons are positioned on the left by default. Set `icon_right="true"` on the Dropmenu component to shift all item icons to the right, or on individual items to shift just those. ```blade - - ... - + ... ``` ### Dividers -You may want to logically divide your Dropmenu into sections. You can either do that with headers or dividers. A divider is simply a non-clickable line separating menu items. To define a Dropmenu item as a divider, set `divider="true"`. Any text added to the menu item will be ignored. +Set `divider="true"` on an item to render a non-clickable divider line (any text content is ignored). ```blade ``` -By default Dropmenu Items are not divided. You can tell each menu item apart on mouseover. If you prefer to have your menu items separated by a thin gray line you can set `divided="true"` on the Dropmenu component itself (not on the menu items). +Set `divided="true"` on the Dropmenu component itself to separate every item with a thin gray line (by default, items are only distinguishable on mouseover). ```blade @@ -161,31 +155,88 @@ By default Dropmenu Items are not divided. You can tell each menu item apart on ``` +### Full Example: Headers, Icons and Dividers + +```blade + + +
+
+ +
+
+ +
+
+
+ + +
+
Jane A. Doe
+
@jane-the-coder
+
jane@bladewindui.com
+
+
+ + + Edit Profile + + + Delete Profile + + + + + Your Repositories + Your Projects + Your Organizations + Your Stars + + + + + Sign Out + +
+``` + ## Menu Position -The Dropmenu component for now supports two menu positions: left and right. This is achieved by setting the `position` attribute on the Dropmenu component. The default position is `right` so you can ignore this attribute if you intend to use the component as is. +Set `position` to `left` or `right` (default `right`) to control where menu items appear relative to the trigger. ```blade -... - - - -... + ... ``` ## Scrollable Menu Items -You could have a long list of menu items in your Dropmenu. If you don't want all items showing, you can set `scrollable="true"` on the Dropmenu component. This will reduce the menu items container to a default height of `200px` and scroll every menu item outside this view area. If the default height does not meet your needs, you can define your own height by setting the `height` attribute. This takes any positive integer without the "px". +Set `scrollable="true"` to cap the menu items container at a default height of `200px` and scroll the rest. Override the height with the `height` attribute (a positive integer, no "px"). ```blade - -... + + ... ``` -If you have multiple Dropmenus on your page and experience issues with only the first Dropmenu showing and subsequent ones not showing, set `modular="true"` on the very first Dropmenu component on your page. +If you have multiple Dropmenus on one page and only the first shows, set `modular="true"` on the first Dropmenu component on the page. + +## JavaScript API + +Each dropmenu creates a `BladewindDropmenu` instance assigned to a variable named after its `name` attribute, callable from your own scripts or inline handlers. If you set `name` yourself, use only letters, numbers, and underscores (hyphens are invalid in JS identifiers) — the auto-generated default already follows this rule. + +| Method | Description | +|---|---| +| `name.show()` | Open the menu and position it against its trigger. | +| `name.hide()` | Close the menu. | +| `name.toggle()` | Open or close the menu based on its current state. | + +```js +profile_menu.show(); +profile_menu.hide(); +profile_menu.toggle(); +``` ## Attributes @@ -193,34 +244,39 @@ If you have multiple Dropmenus on your page and experience issues with only the | Attribute | Default | Description | |---|---|---| -| `name` | `uniqid('bw-dropmenu-')` | Optional unique name for the component. Usually useful if you wish to target a menu from CSS to define overwriting styles. | -| `trigger` | `ellipsis-horizontal-icon` | The element to trigger the menu. Usually what a user will click on to show the menu. | -| `trigger_css` | blank | Additional css to apply to the trigger. | -| `trigger_on` | `click` | Which event should trigger the menu. `click` `mouseover` | -| `divided` | `false` | Should menu items have lines dividing them. `true` `false` | -| `scrollable` | `false` | Should menu items scroll after 200px. `true` `false` | -| `height` | `200` | Default height for menu items container. When `scrollable=true`, menu items container will be restricted to this height. Accepts a positive integer. | -| `hide_after_click` | `true` | Should the menu be hidden after clicking on any of the menu items. `true` `false` | -| `icon_right` | `false` | Align the icon to the right of the menu item. Applies to all items in the menu. `true` `false` | -| `class` | blank | Additional css for the menu items container. | -| `position` | `right` | How should the menu items be positioned relative to the trigger. `right` `left` | -| `padded` | `false` | Should the container for the menu items be padded. `true` `false` | -| `modular` | `false` | Determines if script tags used within the component should have `type="module"`. Useful sometimes when working with Vite js. `true` `false` | -| `nonce` | `null` | Used when implementing context security policies and require to pass a nonce to inline scripts. For convenience, you can set your `nonce` value in the `config/bladewind.php` file under the "script" key. | +| name | uniqid('bw-dropmenu-') | Optional unique name, useful to target a menu from CSS. | +| trigger | ellipsis-horizontal-icon | The element that triggers the menu. | +| trigger_css | *blank* | Additional CSS applied to the trigger. | +| trigger_on | click | Event that triggers the menu. `click` \| `mouseover` | +| divided | false | Divide menu items with lines. `true` \| `false` | +| scrollable | false | Scroll menu items after 200px. `true` \| `false` | +| height | 200 | Height for the menu items container when `scrollable=true`. Positive integer. | +| hide_after_click | true | Hide the menu after clicking a menu item. `true` \| `false` | +| icon_right | false | Align icons to the right of every menu item. `true` \| `false` | +| class | *blank* | Additional CSS for the menu items container. | +| position | right | Position of menu items relative to the trigger. `right` \| `left` | +| padded | false | Pad the menu items container. `true` \| `false` | +| modular | false | Whether script tags in the component use `type="module"`. Useful with Vite. `true` \| `false` | +| nonce | null | Nonce value for content security policies applied to inline scripts. Can also be set globally via `config/bladewind.php` under the "script" key. | +| trigger_label | *blank* | Accessible name for the trigger, exposed as `aria-label`. Worth setting when the trigger is icon-only, since it otherwise reaches a screen reader unnamed. | ### Dropmenu Item Component Attributes | Attribute | Default | Description | |---|---|---| -| `icon` | blank | Any Heroicon icon to display as prefix to the menu item. | -| `dir` | blank | Directory to load the icon from. See the [Icon](/component/icon#custom-dir) component for usage. | -| `icon_css` | blank | Additional css to apply to the icon. | -| `icon_right` | `false` | Align the icon to the right of the menu item. Applies to the menu item the attribute is declared on. `true` `false` | -| `divider` | `false` | Is this menu item a divider. `true` `false` | -| `header` | `false` | Is this menu item a header. `true` `false` | -| `hover` | `true` | Should this menu item change its background colour on mouseover. `true` `false` | -| `padded` | `false` | Should the menu item be padded. `true` `false` | -| `class` | blank | Additional css to add to the menu item. | +| icon | *blank* | Any Heroicon icon to prefix the menu item. | +| dir | *blank* | Directory to load the icon from. See the Icon component. | +| icon_css | *blank* | Additional CSS applied to the icon. | +| icon_right | false | Align the icon to the right, for this item only. `true` \| `false` | +| divider | false | Render this item as a divider. `true` \| `false` | +| header | false | Render this item as a header. `true` \| `false` | +| hover | true | Change background colour on mouseover. `true` \| `false` | +| padded | false | Pad the menu item. `true` \| `false` | +| class | *blank* | Additional CSS for the menu item. | + +## Using Dropmenu Inside Livewire + +The menu tracks its open/closed state outside of the DOM that Livewire manages, so an unrelated re-render resets it to closed — wrap the trigger and menu in `wire:ignore` if this happens. The component also guards against a Livewire re-render creating a second copy of itself, so re-rendering won't leave behind duplicate click listeners. ## Full Example @@ -246,8 +302,7 @@ If you have multiple Dropmenus on your page and experience issues with only the header="false" hover="false" class="p-2"> - ... + ...
-
``` diff --git a/mcp/empty-state.md b/mcp/empty-state.md index cfbf75c6..805d086c 100644 --- a/mcp/empty-state.md +++ b/mcp/empty-state.md @@ -6,9 +6,7 @@ url: /component/empty-state # Empty State -Display this when there is nothing to display. This prevents your users from seeing boring blank pages. The empty state component is intentionally minimal, bearing in mind that different applications have different empty state requirements. - -A default SVG image is bundled with BladewindUI at `public/vendor/bladewind/images/empty-state.svg` and used when no `image` attribute is specified. +Display this when there is nothing to display, instead of a blank page. The component is kept minimal since every application has its own specific empty state requirements. ## Basic Usage @@ -20,52 +18,59 @@ A default SVG image is bundled with BladewindUI at `public/vendor/bladewind/imag ``` -## Custom Image +This uses the default bundled empty state image, available at `public/vendor/bladewind/images/empty-state.svg`. + +## Custom Images + +Set the `image` attribute to use your own image. BladewindUI looks for the file relative to the `public` directory. ```blade - + onclick="alert('you clicked me')"> ``` -## With a Heading +## Headings + +Set `heading` to let the user know immediately what's happening, without reading the full message. ```blade ``` -## Custom Content (No Image) +## Custom Content -Set `show_image="false"` to take full control of the empty state content via the default slot. +Ignore the attributes entirely and put your own content inside the component. Set `show_image="false"` to suppress the default image. ```blade - ... -

You have no biometric data available

+ + + +
You have no biometric data available
Add biometric info
``` -## Without a Call to Action +## No Call to Action -Omit `button_label` (or set it to an empty string) to display an empty state with no action button. +Leave out `button_label` (or set it to an empty string) for an empty state with no action, such as a "Recent Activities" section. ```blade + message="Your recent activities list will take shape as
soon as your organization has some activity">
``` @@ -74,16 +79,16 @@ Omit `button_label` (or set it to an empty string) to display an empty state wit | Attribute | Default | Description | |---|---|---| -| image | /vendor/bladewind/images/empty-state.svg | Image to display | -| show_image | true | Show or hide the image. Set to `false` to control all content via slot. `true` \| `false` | +| image | /vendor/bladewind/images/empty-state.svg | Image to display. | +| show_image | true | Whether the image should be displayed. Set `false` to control the entire content yourself. `true` \| `false` | | image_size | medium | Size of the image. `small` \| `medium` \| `large` \| `xl` \| `omg` | -| for_select | false | Set to `true` when used inside a Select component. `true` \| `false` | -| heading | _(blank)_ | Optional heading displayed above the message | -| message | _(blank)_ | Main message text | -| button_label | _(blank)_ | Text for the call to action button. Omit to hide the button | -| onclick | _(blank)_ | JavaScript to execute when the button is clicked | -| image_css | _(blank)_ | Additional TailwindCSS classes for the image | -| class | bw-empty-state | Additional CSS classes for the wrapper | +| for_select | false | Whether this empty state is used by a select component. When `true`, it's hidden and only shown by the select component referencing its `name`. `true` \| `false` | +| button_label | *blank* | Text on the call to action button. | +| onclick | *blank* | Action to run when the button is clicked, e.g. `onclick="location.href='/dashboard'"` or a JS helper call. | +| heading | *blank* | Empty state heading. | +| message | *blank* | Empty state message. | +| class | bw-empty-state | Any additional CSS classes. | +| image_css | *blank* | Any additional CSS classes applied to the image. | ## Full Example diff --git a/mcp/filepicker.md b/mcp/filepicker.md index 19bf1cea..0b35d869 100644 --- a/mcp/filepicker.md +++ b/mcp/filepicker.md @@ -6,71 +6,111 @@ url: /component/filepicker # Filepicker -A wrapper around the popular [Filepond](https://pqina.nl/filepond/) file picker by PQINA. Supports drag-and-drop and click-to-browse. Includes image preview, cropping, resizing, automatic and manual uploads, base64 encoding, and multiple file selection. +A wrapper around the popular Filepond project by PQINA, including the most broadly applicable features. Supports both dragging and dropping files and browsing for files using the browser's native file picker. ## Basic Usage ```blade +``` + +By default the component provides a random name when none is specified. Set the `name` attribute if you intend to disable automatic uploads or need to access base64 versions of the files. -{{-- with a name (required for manual uploads and base64) --}} +```blade ``` -## Placeholder +## Changing the Placeholder -The default placeholder shows "Browse or drag and drop files" with accepted file types and max size on the second line. Customise with `placeholder_line1` and `placeholder_line2`. +The default placeholder has two lines: "Browse or drag and drop files" and a second line listing the accepted file types and max size, built from `accepted_file_types` and `max_file_size`. + +### Option 1: Text Placeholders + +Set `placeholder_line1` and `placeholder_line2` directly. ```blade +``` -{{-- use %s to dynamically inject accepted_file_types and max_file_size --}} +Include two `%s` placeholders in `placeholder_line2` to have the component dynamically insert `accepted_file_types` and `max_file_size`. + +```blade ``` -For a fully custom placeholder layout, define a hidden `div` with class `placeholder-[$name]` before the filepicker: +### Option 2: Custom Layout (Default) + +Define your own layout, icons, and colours. Requires setting the `name` attribute. Define a `
` with class `placeholder-[$name] hidden` (replacing `[$name]` with the filepicker's name) before the filepicker component. ```blade -
+ + + + + size="tiny" + color="red" + onclick="showModal('placeholder-example', { + auth_user: 'mike', + name: 'Alfred Rowe' + })">Delete + - ... + + + Hey :auth_user, to delete :name, first delete all the pictures they have uploaded + ``` ## Attributes | Attribute | Default | Description | |---|---|---| -| type | blank | `info` `error` `warning` `success` | -| title | blank | String. Defines the title of the modal | -| name | `'bw-modal-'.uniqid()` | Uniquely identifies a modal. Very important to prevent erratic behaviour | -| ok_button_label | `okay` | Specify the label to be displayed on the primary action button | -| cancel_button_label | `cancel` | Specify the label to be displayed on the secondary action button | -| ok_button_action | `close` | Expects a javascript function that will be called when the primary action button is clicked | -| cancel_button_action | `close` | Expects a javascript function that will be called when the secondary action button is clicked | -| close_after_action | `true` | Specify whether the modal stays open after any of the action buttons are clicked. `true` `false` | -| backdrop_can_close | `true` | Specify whether clicking on the modal backdrop should close the modal. `true` `false` | -| blur_size | `medium` | Specify the intensity of the backdrop blur. `none` `small` `medium` `large` `xl` `omg` | -| show_action_buttons | `true` | Specify whether the action buttons should be displayed. `true` `false` | -| align_buttons | `right` | Specify how the action buttons should be aligned in the modal footer. `left` `center` `right` | -| stretch_action_buttons | `false` | Specify whether the action buttons should stretch the entire width of the modal. `true` `false` | -| size | `big` | Defines the size of the modal. `tiny` `small` `medium` `large` `xl` `omg` | -| show_close_icon | `false` | Display a close icon in the top right corner of the modal window. `true` `false` | -| body_css | blank | Any extra css classes to add to the modal body | -| footer_css | blank | Any extra css classes to add to the modal footer | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts | +| type | blank | `info` \| `error` \| `warning` \| `success` | +| title | blank | Title of the modal. | +| name | 'bw-modal-'.uniqid() | Unique identifier for the modal. Important for avoiding erratic behaviour. | +| ok_button_label | okay | Label for the primary action button. | +| cancel_button_label | cancel | Label for the secondary action button. | +| ok_button_action | close | JavaScript function called when the primary action button is clicked. | +| cancel_button_action | close | JavaScript function called when the secondary action button is clicked. | +| close_after_action | true | Whether the modal closes after an action button is clicked. `true` \| `false` | +| backdrop_can_close | true | Whether clicking the backdrop closes the modal. `true` \| `false` | +| blur_size | medium | Intensity of the backdrop blur. `none` \| `small` \| `medium` \| `large` \| `xl` \| `omg` | +| show_action_buttons | true | Whether the action buttons are displayed. `true` \| `false` | +| align_buttons | right | Alignment of the action buttons in the modal footer. `left` \| `center` \| `right` | +| stretch_action_buttons | false | Whether action buttons stretch the full width of the modal, each on its own line. `true` \| `false` | +| size | big | Size of the modal, smallest to largest. `tiny` \| `small` \| `medium` \| `large` \| `xl` \| `omg` | +| show_close_icon | false | Show a close icon in the top-right corner; behaves like the Cancel button. `true` \| `false` | +| body_css | blank | Extra CSS classes for the modal body. | +| footer_css | blank | Extra CSS classes for the modal footer. | +| nonce | null | Nonce for content security policies on inline scripts. Can be set globally via `config/bladewind.php` under `script`. | ## Full Example diff --git a/mcp/notification.md b/mcp/notification.md index 2c3fed51..db3ce46b 100644 --- a/mcp/notification.md +++ b/mcp/notification.md @@ -6,64 +6,66 @@ url: /component/notification # Notification -Unlike the [Alert](/component/alert) component, the notification component is not permanently visible and is useful when you want to provide feedback to your users. The BladewindUI Notification component is solely triggered via JavaScript. - -Include the component anywhere on your page — ideally in a shared layout so it is available globally. +Unlike the [Alert](/component/alert) component, notifications are not permanently visible on screen and are useful for giving users transient feedback. The Notification component is triggered entirely from JavaScript. ## Basic Usage +Include the component once anywhere on the page, ideally in a layout shared across the app. + ```blade ``` -Trigger a notification using the JavaScript helper function: +Trigger a notification with the JavaScript helper function: ```js showNotification(title, message, type, dismiss_in); ``` -| Parameter | Required | Description | +| Parameter | Required? | Description | |---|---|---| -| title | optional | Brief title of the notification | -| message | required | Message to display in the body | -| type | optional | `success` (default) \| `info` \| `warning` \| `error` | -| dismiss_in | optional | Seconds before auto-dismiss. Default is 15 | +| title | optional | Brief title of the notification. | +| message | required | Message displayed in the body of the notification. Can be brief or descriptive. | +| type | optional | Type of notification. Default is `success`. `success` \| `info` \| `warning` \| `error`. Determines color and icon. | +| dismiss_in | optional | Number of seconds before the notification auto-dismisses if not closed manually. Default is 15. Value is in seconds, not milliseconds. | ```js showNotification('Delete Successful', 'Your file was deleted successfully'); +``` -showNotification('Delete Failed', 'Your message could not be deleted. Try again', 'error'); +## Notification Types -showNotification('Low Disk Space', 'You have used 20gb of your 25gb storage space.', 'warning'); +```blade +success -showNotification('Invitation Accepted', 'Samuel just accepted your invitation.', 'info'); -``` +error -## Multiple Notifications +warning -Multiple notifications can be triggered and are displayed as a stack, with the latest on top. +info +``` + +Multiple notifications can be triggered at once. They stack in chronological order, with the latest on top. ## Targeting Existing Notifications -By default, each `showNotification()` call creates a new notification. To prevent duplicate notifications (e.g., repeated file type errors), give the notification a `name` as the 6th parameter. BladewindUI will re-render the existing notification instead of creating a new one. +By default, each call to `showNotification()` creates a new notification. For events that might fire repeatedly in quick succession (e.g. a file picker rejecting a file type), this can stack duplicate messages. Pass a `name` as the sixth argument to reuse an existing notification of that name instead of creating a new one. -```js -showNotification( - 'Delete Failed', - 'Your message could not be deleted. Try again', - 'error', - 15, - 'regular', - 'same_one' -); +```blade +Same Notification ``` ## Attributes | Attribute | Default | Description | |---|---|---| -| position | top-right | Where to display notifications. `top-right` \| `bottom-right` \| `top-left` \| `bottom-left` | -| nonce | null | Nonce value for Content Security Policy | +| position | top-right | Where the notification is displayed. `top-right` \| `bottom-right` \| `top-left` \| `bottom-left` | +| nonce | null | Nonce for content security policies on inline scripts. Can be set globally via `config/bladewind.php` under `script`. | ## Full Example diff --git a/mcp/number.md b/mcp/number.md index 79119ac2..042ef7a2 100644 --- a/mcp/number.md +++ b/mcp/number.md @@ -6,20 +6,19 @@ url: /component/number # Number -Display a number input that allows incrementing and decrementing values via up/down buttons. Extends the BladewindUI [Input](/component/input) component using prefix/suffix icons and `numeric="true"`. +Displays a numeric stepper that lets users increment and decrease a number in a user-friendly way. It extends the BladewindUI [Input](/component/input) component by adding prefix/suffix increment icons and setting `numeric="true"`, so several Input attributes are also available here. ## Basic Usage ```blade -{{-- increment/decrement by 10 --}} ``` -## Sizes +## Different Sizes -Available sizes: `small`, `regular`, `medium` (default), `big`. Sizes match the Input component sizes. +All Input component sizes are available; the up and down arrows adjust to match. ```blade @@ -30,7 +29,7 @@ Available sizes: `small`, `regular`, `medium` (default), `big`. Sizes match the ## Button Transparency -By default the increment/decrement buttons are transparent. Set `transparent_icons="false"` to give them a solid background. +The up and down buttons are transparent by default. Set `transparent_icons="false"` for them to look like proper buttons (sets the Input component's `transparent_prefix="false"` and `transparent_suffix="false"` internally). ```blade @@ -39,49 +38,51 @@ By default the increment/decrement buttons are transparent. Set `transparent_ico ## Labels -Setting a `label` on a number with a default value (`selected_value`) moves the label to the top border of the field. Setting `selected_value=""` displays the label as a placeholder. +The component initializes with `selected_value="0"` by default. Setting `label` moves the label text to the top border of the field. ```blade -{{-- label at top border --}} +``` + +Traditional placeholders don't work in the number component. To avoid an initial value, set `selected_value=""` alongside `label`, and the label is displayed as a placeholder. -{{-- label as placeholder --}} +```blade ``` ## Minimum and Maximum Limits +Set `min` and `max` to constrain the range. The component enforces these limits both on click and on manual typing: clicking increment at the max keeps the value unchanged, and typing a value beyond the limit resets it to the limit. + ```blade ``` -The component enforces limits — clicking past `max` does nothing, and manually typing out-of-range values resets them to the limit. - ## Form Values -The `name` attribute is submitted with the form. A random name is used if none is specified. +The `name` given to the component is what's available when the form is submitted. A random name is generated if none is specified. ```php -$request->age; // if name="age" +$request->age; ``` ## Attributes | Attribute | Default | Description | |---|---|---| -| name | random | Name submitted with the form | -| label | _(blank)_ | Label displayed in or above the component | -| selected_value | null | Default value (edit mode) | -| min | 0 | Minimum allowed value | -| max | 100 | Maximum allowed value | -| step | 1 | Increment/decrement amount | -| size | medium | `small` \| `regular` \| `medium` \| `big` | -| transparent_icons | true | Transparent increment/decrement buttons. `true` \| `false` | -| icon_type | outline | Arrow icon style. `outline` \| `solid` | -| with_dots | true | Allow decimal values. `true` \| `false` | -| required | false | Append asterisk to label. `true` \| `false` | -| class | _(blank)_ | Additional CSS classes for the input field | -| nonce | null | Nonce value for Content Security Policy | +| name | 'input-'.uniqid() | Name accessible when the form is submitted. | +| with_dots | true | Whether decimal values are allowed. `true` \| `false` | +| selected_value | null | Default value, useful in edit mode. | +| label | blank | Label displayed in or above the component. | +| min | 0 | Minimum value allowed. | +| max | 100 | Maximum value allowed. | +| transparent_icons | true | Whether the up/down icons are transparent or have a background color. `true` \| `false` | +| icon_type | outline | Style of the up/down arrow icons. `outline` \| `solid` | +| size | medium | Size of the component. `small` \| `regular` \| `medium` \| `big` | +| required | false | Whether an asterisk is appended to the field. `true` \| `false` | +| step | 1 | Amount the value increases or decreases per click. | +| class | blank | Extra CSS classes for the input field, e.g. to adjust width. | +| nonce | null | Nonce for content security policies on inline scripts. Can be set globally via `config/bladewind.php` under `script`. | ## Full Example diff --git a/mcp/popover.md b/mcp/popover.md index 4fe2bff9..2e6ab446 100644 --- a/mcp/popover.md +++ b/mcp/popover.md @@ -6,9 +6,9 @@ url: /component/popover # Popover -Display a floating content panel that opens on click or hover. Unlike a tooltip, a popover can contain rich markup — links, lists, images, or custom HTML — not just a line of text. The trigger defaults to an information-circle icon; you can swap it for any other icon or for fully custom markup. +Displays a floating content panel that opens on click or hover. Unlike a [tooltip](/component/tooltip), a popover can contain rich markup — links, lists, images, or custom HTML — not just a line of text. The trigger defaults to an information-circle icon, but it can be swapped for any other icon or fully custom markup. -## Default Popover +## Basic Usage ```blade @@ -36,7 +36,7 @@ The default trigger icon is `information-circle` (Heroicons). Pass any Heroicons ## Custom Trigger Markup -When an icon is not enough, pass any HTML as the trigger via ``. This lets you use a button, a badge, an avatar, or any other element as the popover trigger. +When an icon isn't enough, pass any HTML as the trigger via ``. This allows a button, badge, avatar, or any other element to serve as the popover trigger. ```blade @@ -53,7 +53,7 @@ When an icon is not enough, pass any HTML as the trigger via ``. ## Title -An optional heading can be shown above the popover content by setting the `title` attribute. The title is separated from the content by a subtle border. +Set `title` to show an optional heading above the popover content, separated from it by a subtle border. ```blade @@ -67,28 +67,28 @@ An optional heading can be shown above the popover content by setting the `title ## Position -The popover panel can appear above, below, to the left, or to the right of its trigger. The default is `bottom`. +The panel can appear above, below, to the left, or to the right of its trigger. Default is `bottom`. ```blade -... -... -... -... +... +... +... +... ``` ## Trigger Event -By default the popover opens on `click`. Set `trigger_on="mouseover"` to open the panel when the user hovers over the trigger element instead. +The popover opens on `click` by default. Set `trigger_on="mouseover"` to open it on hover instead. ```blade - +

This popover opened on mouseover.

``` ## Width -The popover panel defaults to `280` pixels wide. Adjust the `width` attribute to suit your content. +The panel defaults to `280` pixels wide. Adjust `width` to suit content, e.g. wider panels for rich content like user cards. ```blade @@ -96,29 +96,46 @@ The popover panel defaults to `280` pixels wide. Adjust the `width` attribute to ``` +## Popovers In Scrolling Containers + +The panel is positioned against its trigger rather than laid out inside it, so it isn't cut off by whatever the trigger sits in. This matters most for tables: a wide table needing a horizontally scrolling wrapper used to clip vertically as well, swallowing any popover opened from inside it. No extra configuration is required — the panel keeps the requested `position`, flips vertically when the viewport can't hold it on the requested side, and follows its trigger when an inner scrolling container (not just the page) is scrolled. + +The panel is repositioned, not moved elsewhere in the page. It stays inside the popover component, so CSS selecting it through an ancestor still matches. + ## JavaScript API -The popover is driven by the `BladewindPopover` class. Each instance exposes `show()`, `hide()`, and `toggle()` methods. +Each popover creates a `BladewindPopover` instance assigned to a variable named after the component's `name`, callable directly from your own scripts or inline handlers. If setting `name` yourself, use only letters, numbers, and underscores since hyphens are invalid in a JavaScript identifier; the auto-generated default already follows this rule. + +| Method | Description | +|---|---| +| `name.show()` | Open the popover and position it against its trigger. | +| `name.hide()` | Close the popover. | +| `name.toggle()` | Open or close the popover based on its current state. | ```js -// Show a named popover programmatically -new BladewindPopover('my-popover').show(); +user_menu.show(); +user_menu.hide(); +user_menu.toggle(); ``` +## Using Popover Inside Livewire + +The popover tracks whether it's open or closed outside of the DOM that Livewire manages, so a Livewire re-render unrelated to the popover resets it to closed. If this happens, wrap the trigger and the popover in `wire:ignore` so Livewire leaves that part of the page alone. The component also guards against a Livewire re-render creating a second copy of itself, so re-rendering won't leave duplicate click listeners behind. + ## Attributes | Attribute | Default | Description | |---|---|---| -| name | auto-generated | Unique name used to identify the popover instance. A random name is generated if none is provided. | -| trigger | `information-circle-icon` | Icon to use as the trigger. Must be a Heroicons name suffixed with `-icon` (e.g. `bell-icon`). Ignored when `` is provided. | -| trigger_css | blank | Additional CSS classes to apply to the trigger wrapper element. | -| trigger_on | `click` | The DOM event that opens the popover. `click` \| `mouseover` | -| position | `bottom` | Where the panel appears relative to the trigger. `top` \| `bottom` \| `left` \| `right` | +| name | auto-generated | Unique name identifying the popover instance. A random name is generated if none is provided. | +| trigger | information-circle-icon | Icon to use as the trigger. Must be a Heroicons name suffixed with `-icon` (e.g. `bell-icon`). Ignored when `` is provided. | +| trigger_css | blank | Additional CSS classes for the trigger wrapper element. | +| trigger_on | click | DOM event that opens the popover. `click` \| `mouseover` | +| position | bottom | Where the panel appears relative to the trigger. `top` \| `bottom` \| `left` \| `right` | | title | blank | Optional heading displayed above the popover content, separated by a border. | -| width | `280` | Width of the popover panel in pixels. Must be a numeric value. | -| class | blank | Any additional CSS classes to apply to the popover panel container. | -| nonce | null | CSP nonce value applied to the inline script tags. You can set a global default in `config/bladewind.php` under the `script.nonce` key. | -| modular | `false` | Appends `type="module"` to the inline script tags. `true` \| `false` | +| width | 280 | Width of the popover panel in pixels. Numeric value. | +| class | blank | Additional CSS classes for the popover panel container. | +| nonce | null | CSP nonce applied to inline script tags. Can be set globally in `config/bladewind.php` under `script.nonce`. | +| modular | false | Appends `type="module"` to the inline script tags. `true` \| `false` | ## Full Example diff --git a/mcp/process-indicator.md b/mcp/process-indicator.md index 20cc077c..94696770 100644 --- a/mcp/process-indicator.md +++ b/mcp/process-indicator.md @@ -1,109 +1,142 @@ --- title: Process Indicator Component -component: x-bladewind::processing +component: x-bladewind::processing, x-bladewind::process-complete url: /component/process-indicator --- # Process Indicator -Show that a process is in progress and display the outcome when it completes. Best used inside a [Modal](/component/modal). There are two sub-components: - -- `x-bladewind::processing` — shown while a process is running -- `x-bladewind::process-complete` — shown when the process finishes (pass or fail) +Shows that a process is in progress, and its outcome, either passed or failed. Works within a page but looks best inside a [Modal](/component/modal). There are three parts: `processing`, and two `process-complete` states (`passed` and `failed`). ## Basic Usage ```blade -{{-- show process running --}} - + -{{-- show when process passes --}} - + -{{-- show when process fails --}} - + ``` ## Full Flow Example -A typical pattern wraps all three parts inside a modal, then uses JavaScript to show the right element based on the API result. +A typical flow combines all three parts inside a modal, driven by JavaScript. This example simulates deleting a pending payment. ```blade +Delete Payment and Pass + +Delete Payment and Fail + + + + + + ``` ```js deletePayment = (mode) => { + // it is preferred to hide all three elements + // and show only the element that needs to be shown hideHideables(); + + // show the modal and the processing delete element + // showModal() and unhide() are helper functions + // available in BladewindUI showModal('delete-paymentz'); unhide('.processing-delete'); + // this example only shows a specific outcome after 3 seconds + // based on which button was clicked. In your apps you will + // typically display an outcome based on an API return value. setTimeout(function() { hideHideables(); - (mode == 'pass') - ? unhide('.delete-payment-yes') - : unhide('.delete-payment-no'); + + // determine which process outcome to show + (mode == 'pass') ? + unhide('.delete-payment-yes') : + unhide('.delete-payment-no'); }, 3000); } hideHideables = () => { + // hide() is a helper function available in BladewindUI hide('.processing-delete'); hide('.delete-payment-yes'); hide('.delete-payment-no'); } ``` -`hide()`, `unhide()`, and `showModal()` are BladewindUI JavaScript helpers. +The buttons call `deletePayment(mode)`, which hides all three elements, opens the modal, shows the processing indicator, then after a delay hides everything again and reveals the matching pass/fail outcome. ## Attributes -### `x-bladewind::processing` +### Processing Component | Attribute | Default | Description | |---|---|---| -| name | processing | Unique name for this component | -| message | _(blank)_ | Message displayed below the spinner | -| hide | true | Hidden by default. `true` \| `false` | +| name | processing | Unique name for the processing component. Prevents erratic behaviour when multiple process indicators exist on the same page. | +| hide | true | Whether the processing component is hidden by default. `true` \| `false` | +| message | blank | Message displayed below the spinning icon. | -### `x-bladewind::process-complete` +### Process Complete Component | Attribute | Default | Description | |---|---|---| -| name | process-complete | Unique name for this component | -| process_completed_as | passed | Determines the icon shown. `passed` shows green thumbs-up; `failed` shows red thumbs-down. `passed` \| `failed` | -| message | _(blank)_ | Message displayed below the icon | -| button_label | _(blank)_ | Label for the call-to-action button | -| button_action | _(blank)_ | JavaScript to call when the button is clicked | -| hide | true | Hidden by default. `true` \| `false` | +| name | process-complete | Unique name for the process complete component. Prevents erratic behaviour when multiple exist on the same page. | +| process_completed_as | passed | Determines which icon to display. `passed` shows a green thumbs up; `failed` shows a red thumbs down. `passed` \| `failed` | +| message | blank | Message displayed below the thumbs up/down icon. | +| button_label | blank | Label for the call-to-action button shown when the process completes. | +| button_action | blank | JavaScript function called when the call-to-action button is clicked. | +| hide | true | Whether the process complete component is hidden by default. `true` \| `false` | + +## Full Example + +```blade + + + + + + + +``` diff --git a/mcp/progress-bar.md b/mcp/progress-bar.md index a53694e2..985b8b83 100644 --- a/mcp/progress-bar.md +++ b/mcp/progress-bar.md @@ -6,7 +6,7 @@ url: /component/progress-bar # Progress Bar -Display progress as a horizontal bar filled to a given percentage. Includes a subtle fill animation. The default colour is blue (primary). +Displays progress as a horizontal bar. It expects a percentage, and the bar fills to that percentage with a subtle animation. The default color is blue. ## Basic Usage @@ -16,39 +16,47 @@ Display progress as a horizontal bar filled to a given percentage. Includes a su ## Percentage Label +The percentage isn't displayed by default. Set `show_percentage_label="true"` to display it inside the bar. + ```blade -{{-- label inside the bar --}} +``` -{{-- label outside the bar (default position: top left) --}} - +To place the percentage outside the bar, set `show_percentage_label_inline="false"`. With the label out of the bar, position it with `percentage_label_position`: `top left`, `top center`, `top right`, `bottom left`, `bottom center`, `bottom right` (default `top left`). + +```blade + -{{-- label outside, positioned top center --}} + percentage_label_position="top center" + show_percentage_label="true" /> + + +``` -{{-- with a suffix --}} +Prepend or append text to the label with `percentage_prefix` and/or `percentage_suffix`, to produce things like "53% complete" or "Upload in progress: 53% complete". + +```blade + percentage_suffix="complete" + show_percentage_label="true" /> ``` -Available `percentage_label_position` values: `top-left` `top-center` `top-right` `bottom-left` `bottom-center` `bottom-right` +## Different Colours -## Colours +Set `color` for one of twelve colors. Each has two shades, `faint` (default) and `dark`, controlled via the `shade` attribute. -Set `color` to any supported colour. Two shades are available via `shade`: `faint` (default) and `dark`. +### Faint Colours ```blade -{{-- faint shades --}} @@ -58,23 +66,39 @@ Set `color` to any supported colour. Two shades are available via `shade`: `fain - + + +``` -{{-- dark shades --}} - - +### Dark Colours + +```blade + + + + + + + + + + + + ``` ## Striped and Animated +Set `striped="true"` for a striped bar, and add `animated="true"` to animate the stripes. + ```blade - + ``` @@ -83,18 +107,18 @@ Set `color` to any supported colour. Two shades are available via `shade`: `fain | Attribute | Default | Description | |---|---|---| -| percentage | 0 | Fill percentage: 0–100 | -| color | primary | Bar colour: `primary` `red` `yellow` `green` `blue` `pink` `cyan` `purple` `gray` `orange` `violet` `indigo` `fuchsia` | -| shade | faint | Colour shade: `faint` \| `dark` | -| show_percentage_label | false | Show the percentage label. `true` \| `false` | -| show_percentage_label_inline | true | Show label inside the bar. `true` \| `false` | -| percentage_label_position | top-left | Label placement when outside the bar. `top-left` \| `top-center` \| `top-right` \| `bottom-left` \| `bottom-center` \| `bottom-right` | -| percentage_prefix | _(blank)_ | Text before the percentage label | -| percentage_suffix | _(blank)_ | Text after the percentage label | -| percentage_label_opacity | 100 | Opacity of the percentage label (TailwindCSS opacity value without the `opacity-` prefix) | -| striped | false | Striped bar. `true` \| `false` | -| animated | false | Animate the stripes (requires `striped="true"`). `true` \| `false` | -| class | bw-progress-bar | Additional CSS classes | +| percentage | 0 | Value between 0 and 100. | +| color | primary | `primary` \| `red` \| `yellow` \| `green` \| `blue` \| `pink` \| `cyan` \| `purple` \| `gray` \| `orange` \| `violet` \| `indigo` \| `fuchsia` | +| show_percentage_label | false | Whether the percentage label is displayed. `true` \| `false` | +| show_percentage_label_inline | true | Whether the percentage label is displayed within the bar. `true` \| `false` | +| percentage_label_position | top-left | Placement of the percentage label. `top-left` \| `top-center` \| `top-right` \| `bottom-left` \| `bottom-center` \| `bottom-right` | +| shade | faint | Works with `color` to determine faintness or darkness. `faint` \| `dark` | +| percentage_prefix | blank | Text displayed before the percentage label. | +| percentage_suffix | blank | Text displayed after the percentage label. | +| percentage_label_opacity | 100 | Opacity of the percentage label, using TailwindCSS opacity scale values (without the `opacity-` prefix). `0` \| `5` \| `10` \| `20` \| `25` \| `30` \| `40` \| `50` \| `60` \| `70` \| `75` \| `80` \| `90` \| `95` \| `100` | +| class | bw-progress-bar | Additional CSS classes. | +| striped | false | Whether the bar is striped. `true` \| `false` | +| animated | false | Whether a striped bar is animated. `true` \| `false` | ## Full Example diff --git a/mcp/progress-circle.md b/mcp/progress-circle.md index b2dcbddc..afab529b 100644 --- a/mcp/progress-circle.md +++ b/mcp/progress-circle.md @@ -6,28 +6,27 @@ url: /component/progress-circle # Progress Circle -Display progress in a circular form based on a specified percentage. There is a subtle animation that can be turned off by setting `animate="false"`. +Displays progress in circular form based on a specified percentage, with a subtle animation that can be disabled via `animate="false"`. This component borrows code from Nikitahl's svg-circle-progress-generator. -This component borrows code from [Nikitahl](https://github.com/nikitahl) available [here](https://github.com/nikitahl/svg-circle-progress-generator). +## Basic Usage ```blade ``` -By default the progress circle label is not displayed. That can be changed by setting `show_label="true"`. The label (the percentage value) is then displayed but without the percentage sign. To display the percentage sign set the attribute `show_percent="true"`. +## Labels + +The percentage label isn't displayed by default. Set `show_label="true"` to show the value without a percentage sign, and `show_percent="true"` to add the sign. ```blade - + ``` ## Different Colours -You can display a progress circle in nine different colours by setting the `color` attribute to the preferred colour. Like most BladewindUI components that have colour options, there are two shades, `faint` and `dark`. The default shade is `faint` and the default colour is `blue`. +Set `color` for one of twelve colors, with two shades, `faint` (default) and `dark`, via `shade`. The default color is `blue`. ### Faint Colours @@ -65,19 +64,19 @@ You can display a progress circle in nine different colours by setting the `colo ## Different Sizes -The progress circle comes in five prebuilt sizes with `medium` being the default size. To change the size of the circle set the `size` attribute. The available sizes are `tiny`, `small`, `medium`, `big`, `large`. +Five prebuilt sizes are available via `size`, with `medium` as the default: `tiny`, `small`, `medium`, `big`, `large`. ```blade - + + + + + ``` ## Custom Sizes -It is quite difficult to determine the perfect circle size that'll fit designs we don't even know about. For this reason Bladewind allows you to specify a custom size for this component if the prebuilt sizes don't suit your needs. Set the `size` attribute to any number above 50. - -The prebuilt sizes and their corresponding pixel values are: +Set `size` to any number above 50 for a custom size. Reference for the prebuilt sizes' underlying pixel values: | Size | Value | |---|---| @@ -93,7 +92,7 @@ The prebuilt sizes and their corresponding pixel values are: percentage="89" /> ``` -You will notice from the example above the circle width is quite thin for a circle that big. To increase the width of the circle set the `circle_width` attribute to a reasonable value. The default value for custom circles is `10`. +For a large custom circle, increase the ring thickness with `circle_width` (default `10` for custom circles). ```blade ``` -Things get a bit quirky when you need to display labels in custom circles. Because the circle size is unknown, it is a bit tricky to properly centre the label in the circle. There are additional attributes to help position the label properly in the circle. +Centering a label inside a custom-size circle needs extra positioning attributes: `text_size`, `align`, and `valign`. ```blade ``` -Radio buttons are often used in groups. Give each radio in a group the same `name` to make them mutually exclusive. +## Grouping Radio Buttons + +Give each radio in a group the same `name` so only one can be selected at a time. ```blade @@ -21,45 +25,38 @@ Radio buttons are often used in groups. Give each radio in a group the same `nam ``` -A radio button can be checked by default using `checked="true"`. +## Checked and Disabled States ```blade - -``` + -Radio buttons can also be disabled. + -```blade - + ``` ## Coloured Radio Buttons -Like most of the BladewindUI components, radios also come in twelve colours to enable the components sit better in most designs with various colour schemes. +Radios come in twelve colors to fit various design color schemes. ```blade - - - - - - - - - - - + + + + + + + + + + + ``` -### Radio Buttons and Forms +## Radio Buttons and Forms -When using radio buttons with forms, it is always good practice to give the radio button a name and value. That way, when the form is submitted, the value of the radio button can be retrieved from its name. It is important to note that, in some cases, if the user does not select the radio button, the name of the radio button will be ignored completely from your payload. +Give each radio a `name` and `value` so the selected value can be retrieved when the form is submitted. Note that if the user doesn't select any radio in a group, the name may be omitted entirely from the submitted payload. ```blade ``` +## Laravel Form State + +When validation fails, Laravel redirects back with submitted values flashed to the session and messages in `$errors`. The Radio component can read both for you, so you no longer write `old('...')` and an error block on every field. + +```blade + +``` + +`fill_from_old` repopulates the field from `old()`. `show_validation_error` gives the field its error state and renders `$errors->first()` underneath it. Add `error_bag` if validating into a named bag. Only the radio whose value was previously submitted comes back selected. + +Both are off by default. If your form already prints its own validation messages, switching this on without removing them prints every message twice. + +### Turning It On For Every Form + +Rather than setting attributes field by field, set them once in `config/bladewind.php` and every form component follows. + +```php +// config/bladewind.php +'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, +], +``` + +An attribute on a single field always wins over the config, so a field can opt out with `show_validation_error="false"`. + ## Attributes | Attribute | Default | Description | |---|---|---| -| name | radio | This name can be accessed when the radio button is submitted in the form. The name is also available as part of the css classes. | -| label | _blank_ | Text to be displayed next to the radio button. | -| value | _blank_ | In case you are editing a form, the value passed will be set on the value attribute of the radio button. | -| checked | false | Determines if the radio button is checked or not. Value needs to be set as a string not boolean. `true` \| `false` | -| disabled | false | Determines if the radio button is disabled or not. Value needs to be set as a string not boolean. `true` \| `false` | -| add_clearing | true | Adds a margin to the bottom of the radio button to separate it from the next form element. `true` \| `false` | -| class | bw-radio button | Any additional css classes can be added using this attribute. | -| color | blue | There are twelve colors to choose from. `red` \| `yellow` \| `green` \| `blue` \| `pink` \| `cyan` \| `purple` \| `gray` \| `orange` \| `violet` \| `indigo` \| `fuchsia` | -| label_css | mr-6 | Applies styling to the radio button label. | +| name | radio | Name accessible when the radio button is submitted in the form. Also used as part of the CSS classes. | +| label | blank | Text displayed next to the radio button. | +| value | blank | Value set on the radio button's `value` attribute, useful when editing a form. | +| checked | false | Whether the radio button is checked. Set as a string, not boolean. `true` \| `false` | +| disabled | false | Whether the radio button is disabled. Set as a string, not boolean. `true` \| `false` | +| add_clearing | true | Adds a bottom margin to separate the radio from the next form element. Set as a string, not boolean. `true` \| `false` | +| class | bw-radio button | Additional CSS classes. | +| color | blue | `red` \| `yellow` \| `green` \| `blue` \| `pink` \| `cyan` \| `purple` \| `gray` \| `orange` \| `violet` \| `indigo` \| `fuchsia` | +| label_css | mr-6 | Styling applied to the radio button label. | +| fill_from_old | false | Repopulate the field from `old()` after a failed Laravel validation redirect. Defaults to `bladewind.forms.fill_from_old`. `true` \| `false` | +| show_validation_error | false | Give the field its error state and render `$errors->first()` beneath it. Defaults to `bladewind.forms.show_validation_error`. `true` \| `false` | +| error_bag | null | Error bag to read from when `show_validation_error` is on. Leave unset for Laravel's default bag. | ## Full Example diff --git a/mcp/rating.md b/mcp/rating.md index c4640e68..b23fe73a 100644 --- a/mcp/rating.md +++ b/mcp/rating.md @@ -6,19 +6,23 @@ url: /component/rating # Rating -Displays a five star rating system. The number of stars highlighted match the rating passed. There are nine star colors to choose from but the default is `orange`. Where there are multiple ratings on the same page, it is recommended to name each rating component. You can either display ratings as stars, hearts or thumbsup. +Displays a five-star rating system where the number of highlighted icons matches the rating passed. Ratings can render as stars, hearts, or thumbs-up icons. When multiple ratings appear on the same page, name each component uniquely. + +## Basic Usage ```blade ``` +## Rating Types + +Besides the default star type, ratings can display as hearts or thumbs-up icons. + ```blade -``` -```blade @@ -26,7 +30,7 @@ Displays a five star rating system. The number of stars highlighted match the ra ## Different Colors -The BladewindUI rating component allows you to specify different colours. There are twelve colour options to pick from. +The rating component supports twelve colors. The default is `orange`. ```blade @@ -45,7 +49,7 @@ The BladewindUI rating component allows you to specify different colours. There ## Different Sizes -The BladewindUI rating component comes not just in colors but also sizes. There are three sizes available. The default size is `small`. +Ratings come in three sizes. The default is `small`. ```blade @@ -65,13 +69,13 @@ The BladewindUI rating component comes not just in colors but also sizes. There ## Click Actions -A hidden input field is created in the background with every rating component that is created. The input field uses the `name` attribute set for the rating component to uniquely identify and update the hidden input. Assuming you named your rating component `small-rating`, the following hidden input will be created. The name is prefixed with `rating-value-` so the resulting name will be `rating-value-small-rating`. +Every rating component creates a hidden input field in the background, uniquely identified by the `name` attribute prefixed with `rating-value-`. For a component named `small-rating`, the hidden input is rendered as: ```blade ``` -You can access this element via Javascript using the custom function you pass to the `onclick` attribute. +Access this value from JavaScript by passing a function name to `onclick`: ```blade ``` -```blade +```js +} ``` ## Displaying Errors -The verification code component comes with a hidden field that has the error message to display when validation fails for the code the user entered. To allow for translatable messages, the error message is defined on the component using the `error_message` attribute. +The component has a hidden field holding the error message shown when validation fails. To support translatable messages, it's defined on the component via the `error_message` attribute. The example below expects `2024` as the code. ```blade - + ``` -```blade - +} ``` -The error message is displayed by invoking the Javascript helper function `showPinError(name)`. It accepts the name provided to the code component as a parameter. The error message is automatically hidden by calling the `hidePinError(name)` Javascript helper function. The second parameter to this function is what controls the automatic hiding of the error message. If you do not want to automatically close the error message, set the parameter to false. +The error message is shown by calling `showPinError(name)` and hidden by calling `hidePinError(name)`. The second parameter to `showPinError` controls whether the message auto-hides after 10 seconds — pass `false` to disable that: -```blade - +```js +showPinError('pcode', false); ``` +The error message can also be shown via a notification instead of the inline error, as in the Clear PIN example above — either approach works. + ## Show the Spinner -The verification code component comes with a hidden spinner that can be made visible by invoking the `showSpinner(name)` Javascript helper function. It accepts the name provided to the code component as a parameter. The verification code spinner can be useful if your verification is done via an ajax call to an API that may take a second or two. Showing the spinner will let the user know you are performing an action. +The component has a hidden spinner shown via `showSpinner(name)`, useful when verification happens over an ajax call that may take a moment. ```blade - + ``` -```blade - +```js +validatePin = (code, name) => { + showSpinner(name); + ajaxCall('/verify/pin', `code=${code}`, ...) +} ``` -Since Bladewind does not know how long your Ajax call might take or when your process is complete, it cannot automatically hide the spinner for you. You can do that by calling `hideSpinner(name)`, where `name` is the name of your verification code field. - -```blade - -``` +Bladewind can't know how long your ajax call takes, so you hide the spinner yourself by calling `hideSpinner(name)`. ## Show Success Icon -The verification code component also comes with a hidden checkmark to show when a pin is valid. This can be invoked using the `showPinSuccess(name)` Javascript helper function. It accepts the name provided to the code component as a parameter. In the example below, the spinner shows after the code is entered and disappears to give way to the checkmark after 5 seconds. +The component also has a hidden checkmark, shown via `showPinSuccess(name)`. In the example below, the spinner shows after the code is entered, then gives way to the checkmark after 5 seconds. ```blade - + ``` -```blade - +```js +spinAndSucceed = (code, name) => { + showSpinner(name); + setTimeout(() => { + showPinSuccess(name); + }, 5000); +} ``` ## Countdown To Resend Code -This can be useful for two scenarios. The user never received the code you sent so they will need to request another. The user received a code that somehow does not seem to work and will need to request for a new one. Specifying a value for the `timer` attribute automatically shows a countdown timer. The attributes accepts number of seconds to countdown to. - -Bladewind expects you to have an HTML element on your page with `class="bw-code-timer-done"`. Ideally this should be hidden. The innerHTML (content) of that element is what will be displayed when the timer is done. This approach provides you the flexibility of handling your code resend anyway you want. +Useful when a user never received their code, or received one that doesn't work and needs a new one. Setting the `timer` attribute (number of seconds) automatically shows a countdown timer. -```blade - -``` +Bladewind expects an HTML element on the page with `class="bw-code-timer-done"`, ideally hidden — its innerHTML is what displays once the timer finishes, giving you flexibility in how you handle the resend action. ```blade - - -``` -Once the countdown is done, the content of your `bw-code-timer-done` DIV is copied into a DIV that can be accessed using the class `.bw-[name-of-code-field]-pin-timer .done`. + +``` -```blade - +```js +sendNewCode = () => { + showButtonSpinner('.bw-time_me-pin-timer .done .send-code'); + setTimeout(() => { + showNotification('Code Sent', 'Please check your email or SMS for a new verification code'); + hideButtonSpinner('.bw-time_me-pin-timer .done .send-code'); + hide('.bw-time_me-pin-timer .done .send-code'); + setFocus('time_me'); + }, 5000); +} ``` +Once the countdown finishes, the content of your `bw-code-timer-done` div is copied into a div accessible via `.bw-[name-of-code-field]-pin-timer .done` — e.g. `.bw-time_me-pin-timer .done` for a field named `time_me`. + ### Manually Trigger the Timer -There are cases where you may want to manually trigger the timer. For example, you first want the user to have at least entered the code wrongly once or twice before you trigger a countdown. You can do this by calling the `showTimer(name, duration)` helper function. +You can manually trigger the timer via the `showTimer(name, duration)` helper — for example, only starting a countdown after the user has entered the wrong code once or twice. The example below expects `2024` as the code; enter it wrong twice to trigger the timer. ```blade - + ``` -```blade +```js let attempts = 0; triggerTimerManually = (code, name) => { - if(parseInt(code) !== 2024) { - attempts++ + if (parseInt(code) !== 2024) { + attempts++; showPinError(name); clearPin(name); } - if(attempts >= 2) showTimer(name, 15); + if (attempts >= 2) showTimer(name, 15); } ``` @@ -220,14 +211,16 @@ triggerTimerManually = (code, name) => { | Attribute | Default | Description | |---|---|---| -| name | pin-code-{uniqid()} | Unique name for the component. The code entered by the end user will be available in an input field with the specified name. | -| total_digits | 4 | Determines number of input boxes to be created for entry of the verification code. Any realistic number. | -| size | small | Displays the input boxes at either small or big sizes. `small` \| `big` | -| onverify | _(blank)_ | Function to call after user has finished entering the codes. This should just be the function name without parentheses and parameters. | -| error_message | Verification code is invalid | Error message to display when the verification code entered is invalid. | -| mask | false | Should the text being entered be hidden like a password field. `true` \| `false` | -| timer | null | Determines if the component should automatically display a timer for user to resend verification code. Accepts any positive integer counted in seconds. | -| nonce | null | Used when implementing context security policies and require to pass a nonce to inline scripts. | +| name | pin-code-{uniqid()} | Unique name for the component. The code entered will be available in a hidden input field with this name. | +| total_digits | 4 | Number of input boxes to create for entry of the verification code. No restriction on the value. | +| size | small | Displays the input boxes at either size. `small` \| `big` | +| onverify | _(blank)_ | Function to call after the user finishes entering the code. Just the function name, no parentheses — the code is passed as the argument. | +| error_message | Verification code is invalid | Error message to display when the entered code is invalid. | +| hide_input | false | Whether the text being entered should be hidden like a password field. `true` \| `false` | +| mask | false | Older name for `hide_input`, kept for backward compatibility. Use `hide_input` instead — this attribute will be removed in a future major release. `true` \| `false` | +| has_separator | false | Splits the boxes into two groups with a dash between them. When `total_digits` doesn't split evenly, the left group gets the extra box. `true` \| `false` | +| timer | null | Whether to automatically display a countdown timer for resending the code, in seconds. | +| nonce | null | Used with content security policies that require a nonce on inline scripts. Can also be set globally via the `script` key in `config/bladewind.php`. | ## Full Example @@ -236,8 +229,8 @@ triggerTimerManually = (code, name) => { name="pin-code" total_digits="5" onverify="verifyPin" - has_spinner="false" - mask="false" + hide_input="false" + has_separator="false" timer="15" - error_message="please enter the correct code" /> + error_message="please enter the correct code" /> ``` From adab2426bd64693c50fc0c04afe566eb33b4c611 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 02:52:40 +0000 Subject: [PATCH 26/44] Remove em dashes from newly added component docs Keeps the docs prose style consistent across the batch of pages added for recently merged components (kbd, meter, description-list, divider, context-menu, and others). --- resources/views/docs/confirm-dialog.blade.php | 10 +++++----- resources/views/docs/context-menu.blade.php | 10 +++++----- resources/views/docs/copy-button.blade.php | 8 ++++---- resources/views/docs/credit-card.blade.php | 2 +- resources/views/docs/currency-input.blade.php | 6 +++--- resources/views/docs/description-list.blade.php | 8 ++++---- resources/views/docs/divider.blade.php | 10 +++++----- resources/views/docs/file-preview.blade.php | 8 ++++---- resources/views/docs/inline-edit.blade.php | 4 ++-- resources/views/docs/kbd.blade.php | 4 ++-- resources/views/docs/meter.blade.php | 8 ++++---- resources/views/docs/password-meter.blade.php | 6 +++--- resources/views/docs/transfer-list.blade.php | 6 +++--- 13 files changed, 45 insertions(+), 45 deletions(-) diff --git a/resources/views/docs/confirm-dialog.blade.php b/resources/views/docs/confirm-dialog.blade.php index be9ca1f0..31ce6027 100644 --- a/resources/views/docs/confirm-dialog.blade.php +++ b/resources/views/docs/confirm-dialog.blade.php @@ -3,7 +3,7 @@ Confirm Dialog

- A purpose-built confirmation modal for destructive or consequential actions — deleting a record, cancelling a + A purpose-built confirmation modal for destructive or consequential actions: deleting a record, cancelling a subscription, discarding unsaved work. It composes Modal rather than duplicating it, and adds what a plain modal does not: a tone that picks a sensible icon and confirm colour for you, a backdrop that will not dismiss it by accident, and an async pending state for the confirm action @@ -24,7 +24,7 @@

- Like Modal, a confirm dialog is opened by name with the showModal() helper — give + Like Modal, a confirm dialog is opened by name with the showModal() helper: give it a unique name and call showModal('name') from anywhere on the page.

@@ -34,7 +34,7 @@ tone picks the icon and the confirm button's colour in one attribute: danger (default, for destructive actions), warning, info, or primary (no icon, the button's default - colour — for a consequential but non-destructive confirmation). + colour, for a consequential but non-destructive confirmation).

@@ -70,14 +70,14 @@ function deleteUser(id) {
         
     

- Set close-after-confirm="false" if you would rather close the dialog yourself — + Set close-after-confirm="false" if you would rather close the dialog yourself, for example from inside the onConfirm promise's own .then(), after also updating the rest of the page.

Backdrop

- Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default — a destructive action should be + Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default: a destructive action should be explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set backdrop-can-close="true" to restore Modal's usual behaviour.

diff --git a/resources/views/docs/context-menu.blade.php b/resources/views/docs/context-menu.blade.php index c38b91a4..e7355a8a 100644 --- a/resources/views/docs/context-menu.blade.php +++ b/resources/views/docs/context-menu.blade.php @@ -3,7 +3,7 @@ Context Menu

- x-bladewind::context-menu gives any region a right-click action menu — a table + x-bladewind::context-menu gives any region a right-click action menu, a table row, a card, a canvas element, anything. It follows the same visual language as Dropmenu, but opens at the pointer instead of anchored to a trigger, and adds nested submenus, disabled items, and separators. Placement is always viewport-aware: the menu (and any @@ -39,7 +39,7 @@

The region slot is the area that responds to a right-click (or the keyboard - context-menu key — both dispatch the same browser contextmenu event, so no + context-menu key: both dispatch the same browser contextmenu event, so no separate keyboard wiring is needed to trigger it). Every other child is a menu item, in the order they should appear.

@@ -47,7 +47,7 @@

Disabled items

Set disabled="true" on an item to grey it out and remove it from pointer and - keyboard interaction entirely — it is skipped by arrow-key navigation and cannot be clicked or activated. + keyboard interaction entirely: it is skipped by arrow-key navigation and cannot be clicked or activated.

@@ -66,7 +66,7 @@
     

Give an item a submenu slot containing further x-bladewind::context-menu.item elements to turn it into a submenu trigger. A - submenu opens on hover, click, or , and can itself contain another submenu — + submenu opens on hover, click, or , and can itself contain another submenu, nesting is unlimited. or Escape closes the deepest open submenu and returns focus to its parent item.

@@ -144,7 +144,7 @@
- + diff --git a/resources/views/docs/copy-button.blade.php b/resources/views/docs/copy-button.blade.php index db375cf4..99b46501 100644 --- a/resources/views/docs/copy-button.blade.php +++ b/resources/views/docs/copy-button.blade.php @@ -3,7 +3,7 @@ Copy Button

- x-bladewind::copy-button copies a value — or its own wrapped content — to the + x-bladewind::copy-button copies a value (or its own wrapped content) to the clipboard on click, briefly swapping its icon to a checkmark and announcing success or failure to assistive technology.

@@ -18,14 +18,14 @@

- With no value, the button copies its own slot's trimmed text — the display and + With no value, the button copies its own slot's trimmed text: the display and the copied value never drift apart because there is only one string to keep in sync.

Icon-only, with an explicit value

Pass value directly for an icon-only trigger next to something that isn't itself - plain copyable text — a masked API key, a formatted table cell, and so on. + plain copyable text: a masked API key, a formatted table cell, and so on.

@@ -42,7 +42,7 @@

A labelled button

- Add label for a full text-and-icon button instead of an icon-only trigger — only + Add label for a full text-and-icon button instead of an icon-only trigger; it only takes effect when there is no wrapped slot content.

diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php index 3ecf1865..714e7e41 100644 --- a/resources/views/docs/credit-card.blade.php +++ b/resources/views/docs/credit-card.blade.php @@ -138,7 +138,7 @@
- + diff --git a/resources/views/docs/currency-input.blade.php b/resources/views/docs/currency-input.blade.php index febca93f..0a185d29 100644 --- a/resources/views/docs/currency-input.blade.php +++ b/resources/views/docs/currency-input.blade.php @@ -26,7 +26,7 @@

Set currency to any ISO 4217 code. When PHP's intl extension is installed, locale (a BCP 47 tag) decides where the symbol sits and - which characters separate thousands and decimals — for example, French writes + which characters separate thousands and decimals: for example, French writes 1 234,56 € where U.S. English writes $1,234.56, for the same amount in the same currency.

@@ -49,8 +49,8 @@

Without the intl extension, every currency still gets a sensible symbol (a small built-in table covers the common ones; anything else falls back to the currency code itself) and the correct - number of decimal places — zero for currencies like JPY that have no minor unit, - two for everything else — always shown as a prefix with . and + number of decimal places (zero for currencies like JPY that have no minor unit, + two for everything else), always shown as a prefix with . and , separators.

diff --git a/resources/views/docs/description-list.blade.php b/resources/views/docs/description-list.blade.php index ed514d77..60a414ea 100644 --- a/resources/views/docs/description-list.blade.php +++ b/resources/views/docs/description-list.blade.php @@ -4,8 +4,8 @@

x-bladewind::description-list and - x-bladewind::description-list.item present label/value pairs — a profile, a - record's details, an order summary — as a real semantic <dl>, stacked on + x-bladewind::description-list.item present label/value pairs (a profile, a + record's details, an order summary) as a real semantic <dl>, stacked on mobile and laid out label-beside-value from the sm breakpoint up.

@@ -27,7 +27,7 @@

Action slots

- Give an item an action slot for a control shown beside its value — an edit link, + Give an item an action slot for a control shown beside its value: an edit link, a copy button, anything.

@@ -53,7 +53,7 @@

Striped rows

- Set striped on the list to alternate a subtle background on every row — it + Set striped on the list to alternate a subtle background on every row; it propagates from the list to each item automatically.

diff --git a/resources/views/docs/divider.blade.php b/resources/views/docs/divider.blade.php index 66b56499..8800d6df 100644 --- a/resources/views/docs/divider.blade.php +++ b/resources/views/docs/divider.blade.php @@ -3,7 +3,7 @@ Divider

- A horizontal or vertical rule for separating layout regions — sections of a form, rows in a list, or items in a + A horizontal or vertical rule for separating layout regions: sections of a form, rows in a list, or items in a toolbar. It ranges from a plain line to a line split by a centered label, and can be purely decorative or a real role="separator" a screen reader announces.

@@ -18,7 +18,7 @@

Label

- Pass label to split the line around centered text — the familiar "or" divider between + Pass label to split the line around centered text, the familiar "or" divider between a form and an alternate action.

@@ -29,7 +29,7 @@ <x-bladewind::divider label="OR" /> -

A label only applies to a horizontal divider — it is ignored on a vertical one.

+

A label only applies to a horizontal divider; it is ignored on a vertical one.

Orientation

@@ -60,7 +60,7 @@

Spacing

- spacing controls the margin either side of the line — none, + spacing controls the margin either side of the line: none, small, medium (default), or large.

@@ -95,7 +95,7 @@ By default a divider is purely visual: it renders role="none" and aria-hidden="true", so assistive technology skips it entirely. Set decorative="false" when the divider marks a real boundary a screen reader should - announce — for example, between distinct sections of a long form — which renders + announce (for example, between distinct sections of a long form), which renders role="separator" and aria-orientation instead.

diff --git a/resources/views/docs/file-preview.blade.php b/resources/views/docs/file-preview.blade.php index 97cbc188..f4b5a72a 100644 --- a/resources/views/docs/file-preview.blade.php +++ b/resources/views/docs/file-preview.blade.php @@ -4,7 +4,7 @@

x-bladewind::file-preview is the read-only display counterpart to - Filepicker — a compact row showing a thumbnail or file-type icon, the + Filepicker: a compact row showing a thumbnail or file-type icon, the filename, its size, and download/remove actions. Use it for a list of already-uploaded files: attachments on a record, documents in a table row, files a Filepicker has already accepted.

@@ -23,7 +23,7 @@

- size is plain bytes — the component formats it into B/KB/MB/GB itself. Without a + size is plain bytes, the component formats it into B/KB/MB/GB itself. Without a thumbnail, the icon is derived from the filename's extension (PDF, Word, Excel, images, video, audio, archives, and code files all get a distinct icon; anything unrecognised falls back to a generic document icon). @@ -31,7 +31,7 @@

Removing a file

- A remove control shows by default and removes the preview from the DOM directly — nothing to wire up for the + A remove control shows by default and removes the preview from the DOM directly, nothing to wire up for the common case of client-side removal from a list the user is still assembling. Pass on-remove with your own JavaScript (for example, an endpoint call) to handle it yourself instead; doing so replaces the default behaviour entirely, the same pattern @@ -44,7 +44,7 @@

- Set removable="false" to drop the control entirely — useful for a purely + Set removable="false" to drop the control entirely, useful for a purely informational list the viewer cannot edit.

diff --git a/resources/views/docs/inline-edit.blade.php b/resources/views/docs/inline-edit.blade.php index cf8fc1f3..f99ddd70 100644 --- a/resources/views/docs/inline-edit.blade.php +++ b/resources/views/docs/inline-edit.blade.php @@ -5,7 +5,7 @@

x-bladewind::inline-edit shows a value as plain text until the user clicks it (or its edit icon), then swaps in a text field with Save and Cancel controls. With no - onSave, it saves optimistically — the display updates the instant Save is + onSave, it saves optimistically: the display updates the instant Save is clicked, and a hidden field carries the current value for a normal form submission alongside the rest of the page.

@@ -61,7 +61,7 @@ function renameProject(id, name) {

Set required="true" to block saving an empty value; the field shows requiredMessage instead and stays in edit mode. Any rejection from - onSave — for a server-side validation failure, say — surfaces the same way. + onSave (for a server-side validation failure, say) surfaces the same way.

diff --git a/resources/views/docs/kbd.blade.php b/resources/views/docs/kbd.blade.php
index 52f5aec3..a32f7489 100644
--- a/resources/views/docs/kbd.blade.php
+++ b/resources/views/docs/kbd.blade.php
@@ -4,7 +4,7 @@
 
     

x-bladewind::kbd renders a semantic <kbd> - element styled as a physical key — for documenting a shortcut in help text, a menu item, or command + element styled as a physical key, for documenting a shortcut in help text, a menu item, or command documentation.

@@ -18,7 +18,7 @@

Key combinations

- Pass keys as an array (or JSON string) to render a combo — each key in its own + Pass keys as an array (or JSON string) to render a combo: each key in its own pill, joined by "+". When keys is given, it takes priority over the default slot.

diff --git a/resources/views/docs/meter.blade.php b/resources/views/docs/meter.blade.php index 8941ba02..7badd981 100644 --- a/resources/views/docs/meter.blade.php +++ b/resources/views/docs/meter.blade.php @@ -3,8 +3,8 @@ Meter

- x-bladewind::meter visualises a bounded measurement — disk usage, a score, a - signal strength — as opposed to Progress Bar's task completion. Give it + x-bladewind::meter visualises a bounded measurement (disk usage, a score, a + signal strength) as opposed to Progress Bar's task completion. Give it low and high boundaries and it colours itself semantically: green for the good zone, red for the bad one, yellow for the zone in between. A real, visually hidden <meter> element carries the actual accessible semantics; the coloured @@ -28,7 +28,7 @@

When lower is better

- Some measurements go the other way — an error rate, latency, CPU load. Set optimum + Some measurements go the other way: an error rate, latency, CPU load. Set optimum to a value inside the zone that should read as "good"; the meter works out which end is bad from there.

@@ -46,7 +46,7 @@

Without zones

Omit low/high for a plain bounded bar with no - semantic colouring — a single neutral colour, still a real measurement rather than a completion percentage. + semantic colouring: a single neutral colour, still a real measurement rather than a completion percentage.

diff --git a/resources/views/docs/password-meter.blade.php b/resources/views/docs/password-meter.blade.php index 8c880e41..2e021ee9 100644 --- a/resources/views/docs/password-meter.blade.php +++ b/resources/views/docs/password-meter.blade.php @@ -4,7 +4,7 @@

x-bladewind::password-meter watches an existing password field and shows a - rules-based strength reading as the user types — a segmented bar plus a text label, live-updated on every + rules-based strength reading as the user types: a segmented bar plus a text label, live-updated on every keystroke. It is a standalone companion, not a wrapper: point it at any password field with for, BladewindUI's own or otherwise.

@@ -22,7 +22,7 @@

for is the watched field's name (or, failing that, its - id) — exactly what you already passed the field itself, nothing extra to keep in + id): exactly what you already passed the field itself, nothing extra to keep in sync.

@@ -30,7 +30,7 @@

A password earns up to four points: one for reaching minLength characters (8 by default), a second for reaching strongLength (12 by default), and up to two - more for character variety — lowercase, uppercase, digits, and symbols each count, capped at two points so + more for character variety: lowercase, uppercase, digits, and symbols each count, capped at two points so length still matters. Four points is "Strong", one is "Weak", and an empty field shows nothing at all.

diff --git a/resources/views/docs/transfer-list.blade.php b/resources/views/docs/transfer-list.blade.php index ec13d7b4..fb270012 100644 --- a/resources/views/docs/transfer-list.blade.php +++ b/resources/views/docs/transfer-list.blade.php @@ -3,8 +3,8 @@ Transfer List

- x-bladewind::transfer-list moves items between two panels — "Available" and - "Selected" — with per-panel search and select-all, arrow controls in the middle, and a double-click on any + x-bladewind::transfer-list moves items between two panels, "Available" and + "Selected", with per-panel search and select-all, arrow controls in the middle, and a double-click on any row as a shortcut for moving just that one item. It submits as a normal array field: only items currently in the "Selected" panel are enabled, so the form only ever sends what is actually selected.

@@ -77,7 +77,7 @@

Each panel gets its own search box by default, filtering that panel's rows as you type. Set - searchable="false" to remove both boxes — worth doing once a list is short enough + searchable="false" to remove both boxes, worth doing once a list is short enough that scanning it is faster than typing.

From 72d8829dd608c0e085c599ce47d36c4ac1571dfb Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 02:56:34 +0000 Subject: [PATCH 27/44] Republish compiled BladewindUI assets Refreshes the published CSS/JS to match the latest component set now that the local package checkout includes the newly merged components. --- .../vendor/bladewind/css/bladewind-ui.min.css | 2 +- public/vendor/bladewind/js/datepicker.js | 11 +++- public/vendor/bladewind/js/helpers.js | 64 ++++++++++++++++++- public/vendor/bladewind/js/tooltip.js | 3 + 4 files changed, 74 insertions(+), 6 deletions(-) diff --git a/public/vendor/bladewind/css/bladewind-ui.min.css b/public/vendor/bladewind/css/bladewind-ui.min.css index b33ca26e..61979aa3 100644 --- a/public/vendor/bladewind/css/bladewind-ui.min.css +++ b/public/vendor/bladewind/css/bladewind-ui.min.css @@ -1 +1 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:12.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:9px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:13.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:25px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-transparent::placeholder{color:#0000}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.backdrop-filter{-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:#d2d4d7}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:#a7aaad}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){color:#f0f1f2;background:#4a4e53}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#020617b3;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:1.5rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #02061740}.bw-command-palette-panel:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;min-height:2.5rem;color:inherit;box-shadow:none;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;background:#f1f5f9;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;transition:background-color .15s,color .15s;display:grid}.bw-command-palette-close:is(.dark,.dark *){color:#a7aaad;background:#262a2f}.bw-command-palette-close:hover{color:#0f172a;background:#e2e8f0}.bw-command-palette-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.75rem .875rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:#d2d4d7}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:#f0f1f2;background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:12rem;padding:1.5rem;display:flex}.bw-command-palette-empty[hidden],.bw-command-palette-loading[hidden]{display:none}.bw-command-palette-empty-icon{color:#94a3b8;background:#f1f5f9;border-radius:1rem;place-items:center;width:3rem;height:3rem;display:grid}.bw-command-palette-empty-icon:is(.dark,.dark *){color:#a7aaad;background:#262a2f}.bw-command-palette-empty-title{color:#1e293b;margin-top:1rem;font-size:.875rem;font-weight:600}.bw-command-palette-empty-title:is(.dark,.dark *){color:#f0f1f2}.bw-command-palette-empty-description{color:#64748b;margin-top:.25rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-empty-description:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-loading{color:#64748b;font-size:.75rem}.bw-command-palette-loading:is(.dark,.dark *){color:#a7aaad}.bw-command-palette-loading-icon{color:#94a3b8;animation:1s linear infinite bw-command-palette-spin}.bw-command-palette-loading p{margin-top:.75rem}@keyframes bw-command-palette-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bw-command-palette-loading-icon{animation-duration:2.4s}}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:#a7aaad}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{flex:1;min-width:12rem;max-width:22rem;position:relative}.bw-data-grid-search-input{width:100%;padding-left:3rem!important}.bw-data-grid-search-prefix{z-index:20;color:#1e3a8a80;pointer-events:none;inset-block:0;align-items:center;padding-left:.875rem;padding-right:.5rem;display:inline-flex;position:absolute;left:0}.bw-data-grid-search-prefix:is(.dark,.dark *){color:#a7aaad}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:#f0f1f2}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;cursor:pointer;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:#d2d4d7}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:#a7aaad;background:#22262b;border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td,.bw-data-grid-table tbody tr:not([hidden]):not(:has(~tr:not([hidden]))) td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:#22262b}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-table th.bw-data-grid-align-center,.bw-data-grid-table td.bw-data-grid-align-center{text-align:center}.bw-data-grid-table th.bw-data-grid-align-right,.bw-data-grid-table td.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-align-center .bw-data-grid-sort-button{justify-content:center;width:100%}.bw-data-grid-table th.bw-data-grid-align-right .bw-data-grid-sort-button{justify-content:flex-end;width:100%}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-checkbox{color:var(--color-primary-600, oklch(47% .2 250));cursor:pointer;border-width:2px;border-color:#94a3b899}.bw-data-grid-checkbox:is(.dark,.dark *){background-color:#22262b;border-color:#64748b80}.bw-data-grid-checkbox[type=checkbox]{border-radius:.25rem}.bw-data-grid-checkbox[type=radio]{border-radius:100%}.bw-data-grid-checkbox:focus,.bw-data-grid-checkbox:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:#a7aaad;border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:#22262b}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:#a7aaad}.bw-data-grid-loading-overlay{display:none}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));z-index:2;inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));z-index:2;inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}.bw-data-grid[data-loading=true] .bw-data-grid-loading-overlay{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){color:#d2d4d7;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:#a7aaad}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:#d2d4d7;border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:#22262b}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:#a7aaad;background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:#f0f1f2;background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:#6c7075}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.125rem;min-height:0;margin-top:.1875rem;display:flex;overflow-y:auto}.bw-calendar-cell-events>.bw-calendar-event,.bw-calendar-cell-events>.bw-calendar-event-more{flex-shrink:0}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:0 .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:0 .375rem;font-size:.6875rem;font-weight:600;line-height:1.3;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:#a7aaad}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:#1c1f24;border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-date{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-date:is(.dark,.dark *){color:#a7aaad}.bw-calendar-event-drawer-time{color:#64748b;margin-top:.25rem;font-size:.8125rem}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:#a7aaad}.bw-calendar-event-drawer-time:empty{display:none}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:#d2d4d7}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:#d2d4d7}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{color:#fff;box-shadow:none;background:#1b1c1d;border-color:#1b1c1d}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){color:#d2d4d7;background:#262a2f;border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){color:#f0f1f2;background:#33373c}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:12.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:9px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:13.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:25px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.-top-2{top:calc(var(--spacing) * -2)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.-left-3{left:calc(var(--spacing) * -3)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing) * 0)!important}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-0{margin-inline:calc(var(--spacing) * 0)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-8{margin-inline:calc(var(--spacing) * 8)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing) * 0)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-8{margin-block:calc(var(--spacing) * 8)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[86\/54\]{aspect-ratio:86/54}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.size-full{width:100%;height:100%}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.max-h-full{max-height:100%}.min-h-\[1em\]{min-height:1em}.min-h-\[2rem\]{min-height:2rem}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/60{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/70{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/70{background-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-slate-800\/70{background-color:#1d293db3}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/70{background-color:color-mix(in oklab,var(--color-slate-800) 70%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-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-primary-500{--tw-gradient-from:var(--color-primary-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-yellow-200{--tw-gradient-from:var(--color-yellow-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))}.to-yellow-500{--tw-gradient-to:var(--color-yellow-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))}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-14{padding-right:calc(var(--spacing) * 14)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.\!whitespace-pre-wrap{white-space:pre-wrap!important}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-500{color:var(--color-primary-500)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-600\!{color:var(--color-red-600)!important}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-transparent::placeholder{color:#0000}.placeholder-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.placeholder-white\/50::placeholder{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-offset-2{outline-offset:2px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.backdrop-filter{-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.hover\:bg-black\/60:hover{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/60:hover{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:opacity-100:focus{opacity:1}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-white:focus{--tw-ring-color:var(--color-white)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:grid{display:grid}.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:rotate-0{rotate:0deg}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:py-4{padding-block:calc(var(--spacing) * 4)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}:where(.dark\:divide-dark-700:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-700)}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:#1c1f2466}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 40%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:#0076d21a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 10%,transparent)}}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-white\/10:is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/10:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-400\!:is(.dark,.dark *){color:var(--color-red-400)!important}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-dark-500:is(.dark,.dark *)::placeholder{color:var(--color-dark-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-800:is(.dark,.dark *):hover{background-color:var(--color-dark-800)}.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-green-900) 20%,transparent)}}.dark\:hover\:bg-white\/20:is(.dark,.dark *):hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-white\/20:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){background:var(--color-dark-500, #4a4e53);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#020617b3;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:1.5rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #02061740}.bw-command-palette-panel:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;min-height:2.5rem;color:inherit;box-shadow:none;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;background:#f1f5f9;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;transition:background-color .15s,color .15s;display:grid}.bw-command-palette-close:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-close:hover{color:#0f172a;background:#e2e8f0}.bw-command-palette-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.75rem .875rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:12rem;padding:1.5rem;display:flex}.bw-command-palette-empty[hidden],.bw-command-palette-loading[hidden]{display:none}.bw-command-palette-empty-icon{color:#94a3b8;background:#f1f5f9;border-radius:1rem;place-items:center;width:3rem;height:3rem;display:grid}.bw-command-palette-empty-icon:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-empty-title{color:#1e293b;margin-top:1rem;font-size:.875rem;font-weight:600}.bw-command-palette-empty-title:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-empty-description{color:#64748b;margin-top:.25rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-empty-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading{color:#64748b;font-size:.75rem}.bw-command-palette-loading:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading-icon{color:#94a3b8;animation:1s linear infinite bw-command-palette-spin}.bw-command-palette-loading p{margin-top:.75rem}@keyframes bw-command-palette-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bw-command-palette-loading-icon{animation-duration:2.4s}}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{flex:1;min-width:12rem;max-width:22rem;position:relative}.bw-data-grid-search-input.bw-input{width:100%;padding-left:3rem}.bw-data-grid-search-prefix{z-index:20;color:#1e3a8a80;pointer-events:none;inset-block:0;align-items:center;padding-left:.875rem;padding-right:.5rem;display:inline-flex;position:absolute;left:0}.bw-data-grid-search-prefix:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;cursor:pointer;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-700, #262a2f);border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td,.bw-data-grid-table tbody tr:not([hidden]):not(:has(~tr:not([hidden]))) td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-table th.bw-data-grid-align-center,.bw-data-grid-table td.bw-data-grid-align-center{text-align:center}.bw-data-grid-table th.bw-data-grid-align-right,.bw-data-grid-table td.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-align-center .bw-data-grid-sort-button{justify-content:center;width:100%}.bw-data-grid-table th.bw-data-grid-align-right .bw-data-grid-sort-button{justify-content:flex-end;width:100%}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-checkbox{color:var(--color-primary-600, oklch(47% .2 250));cursor:pointer;border-width:2px;border-color:#94a3b899}.bw-data-grid-checkbox:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f);border-color:#64748b80}.bw-data-grid-checkbox[type=checkbox]{border-radius:.25rem}.bw-data-grid-checkbox[type=radio]{border-radius:100%}.bw-data-grid-checkbox:focus,.bw-data-grid-checkbox:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-loading-overlay{display:none}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));z-index:2;inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));z-index:2;inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}.bw-data-grid[data-loading=true] .bw-data-grid-loading-overlay{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.125rem;min-height:0;margin-top:.1875rem;display:flex;overflow-y:auto}.bw-calendar-cell-events>.bw-calendar-event,.bw-calendar-cell-events>.bw-calendar-event-more{flex-shrink:0}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:0 .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:0 .375rem;font-size:.6875rem;font-weight:600;line-height:1.3;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-date{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-date:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time{color:#64748b;margin-top:.25rem;font-size:.8125rem}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time:empty{display:none}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;border:1px solid var(--color-dark-200, #d2d4d7);background:#fff;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{background:var(--color-dark-800, #1c1f24);color:#fff;border-color:var(--color-dark-800, #1c1f24);box-shadow:none}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} diff --git a/public/vendor/bladewind/js/datepicker.js b/public/vendor/bladewind/js/datepicker.js index ee37828f..1d38ad12 100644 --- a/public/vendor/bladewind/js/datepicker.js +++ b/public/vendor/bladewind/js/datepicker.js @@ -12,6 +12,13 @@ function initCalendar({ console.error(`Input field with id "${inputId}" not found.`); return; } + // Guard against a duplicate popup and duplicate document-level listeners + // when a framework like Livewire re-renders this markup (and therefore + // re-executes this script) without a full page reload. + if (dateInput.dataset.bwInitialised === 'true') { + return; + } + dateInput.dataset.bwInitialised = 'true'; if (minDate && !(minDate instanceof Date)) { minDate = new Date(minDate); } @@ -349,9 +356,9 @@ function initCalendar({ startDate = date < startDate ? date : startDate; } - dateInput.value = endDate + setFieldValue(dateInput, endDate ? `${formatDate(startDate)} - ${formatDate(endDate)}` - : formatDate(startDate); + : formatDate(startDate)); renderCalendar(); } diff --git a/public/vendor/bladewind/js/helpers.js b/public/vendor/bladewind/js/helpers.js index febe3953..ef04b31d 100644 --- a/public/vendor/bladewind/js/helpers.js +++ b/public/vendor/bladewind/js/helpers.js @@ -444,7 +444,9 @@ const showDrawer = (name) => { requestAnimationFrame(() => { if (drawer.getAttribute('data-state') !== 'opening') return; drawer.setAttribute('data-state', 'open'); - focusDrawer(drawer); + // something (a script, assistive tech) may have already moved focus into the + // drawer during the frame this was waiting on, don't steal it back + if (!drawer.contains(document.activeElement)) focusDrawer(drawer); drawer.dispatchEvent(new CustomEvent('bladewind:drawer-opened', {bubbles: true, detail: {name}})); }); return true; @@ -534,6 +536,43 @@ const hideModalActionButtons = (element) => { hide(`.bw-${element} .modal-footer`); }; +/** + * Run a confirm dialog's confirm action, showing a spinner and disabling both + * buttons for as long as it is pending. A rejection re-enables the buttons and + * leaves the dialog open, so a consumer can surface its own error state before + * the user retries. + * @param {string} name - The confirm dialog's name. + * @param {function} action - Runs on confirm; its return value is passed + * through Promise.resolve(), so a plain (non-async) function is fine too. + * @param {boolean} closeAfter - Close the dialog once action resolves. + * @return {void} + * @see {@link https://bladewindui.com/component/confirm-dialog} + */ +const runBwConfirmDialogAction = (name, action, closeAfter = true) => { + const confirmButton = domEl(`.bw-${name}-confirm`); + const cancelButton = domEl(`.bw-${name}-cancel`); + + if (confirmButton) confirmButton.disabled = true; + if (cancelButton) cancelButton.disabled = true; + showButtonSpinner(`.bw-${name}-confirm`); + + const resetButtons = () => { + if (confirmButton) confirmButton.disabled = false; + if (cancelButton) cancelButton.disabled = false; + hideButtonSpinner(`.bw-${name}-confirm`); + }; + + Promise.resolve() + .then(action) + .then(() => { + resetButtons(); + if (closeAfter) hideModal(name); + }) + .catch((error) => { + resetButtons(); + console.error(error); + }); +}; /** * Alias for unhide(). @@ -907,6 +946,20 @@ const filterTableDebounced = (keyword, table, field = null, delay = 0, minLength }; +/** + * Set a form field's value and dispatch a native `input`/`change` event so + * framework bindings (e.g. Livewire's wire:model) observe the change, not + * just listeners on the specific widget that made it. + * @param {HTMLElement} element - The input/hidden field to update. + * @param {*} value - The value to assign. + * @param {string} eventType - 'change' (default) or 'input'. + * @return {void} + */ +const setFieldValue = (element, value, eventType = 'change') => { + element.value = value; + element.dispatchEvent(new Event(eventType, {bubbles: true, cancelable: true})); +}; + /** * Remove trailing comma from string. * @param {string} element - The input field to remove trailing comma from. @@ -1027,8 +1080,8 @@ const checkMinMax = (min, max, element, enforceLimits = false) => { if (field.value !== '') { if (enforceLimits) { - if (!isNaN(minimum) && field.value < minimum) field.value = minimum; - if (!isNaN(maximum) && field.value > maximum) field.value = maximum; + if (!isNaN(minimum) && field.value < minimum) setFieldValue(field, minimum); + if (!isNaN(maximum) && field.value > maximum) setFieldValue(field, maximum); } else { if (((!isNaN(minimum) && field.value < minimum) || (!isNaN(maximum) && field.value > maximum))) { changeCss(field, 'focus:outline-primary-500,focus:border-primary-500', 'remove', true); @@ -2021,6 +2074,9 @@ bwOn('click', '[data-bw-tag-value]', (tag) => { // a closable tag with no custom onclick simply removes itself bwOn('click', '[data-bw-tag-remove]', (link) => link.parentElement?.remove()); +// a removable file preview with no custom onclick simply removes itself +bwOn('click', '[data-bw-file-preview-remove]', (link) => link.closest('.bw-file-preview')?.remove()); + // the modal's own close buttons. a consumer-supplied ok/cancel action is their // javascript and stays inline, so it is not handled here bwOn('click', '[data-bw-modal-close]', (el) => hideModal(el.getAttribute('data-bw-modal-close'))); @@ -3373,6 +3429,7 @@ Object.assign(window, { hideButtonSpinner, showModalActionButtons, hideModalActionButtons, + runBwConfirmDialogAction, show, addToStorage, getFromStorage, @@ -3389,6 +3446,7 @@ Object.assign(window, { initialiseSteppers, getPrefixSuffixOffsetWidth, positionPrefix, + setFieldValue, positionSuffix, togglePassword, partition, diff --git a/public/vendor/bladewind/js/tooltip.js b/public/vendor/bladewind/js/tooltip.js index 9d0212d8..5d5d0f66 100644 --- a/public/vendor/bladewind/js/tooltip.js +++ b/public/vendor/bladewind/js/tooltip.js @@ -45,6 +45,7 @@ this.bubble = document.createElement('div'); this.bubble.className = 'bw-tooltip-bubble'; + this.bubble.id = 'bw-tooltip-bubble'; this.bubble.setAttribute('role', 'tooltip'); this.bubble.setAttribute('data-open', '0'); document.body.appendChild(this.bubble); @@ -82,6 +83,7 @@ show = (trigger, text) => { const bubble = this.ensureBubble(); + trigger.setAttribute('aria-describedby', bubble.id); bubble.textContent = text; bubble.setAttribute('data-size', trigger.getAttribute('data-size') || 'small'); bubble.setAttribute('data-inverted', trigger.hasAttribute('data-inverted') ? '1' : '0'); @@ -95,6 +97,7 @@ }; hide = () => { + if (this.trigger) this.trigger.removeAttribute('aria-describedby'); this.trigger = null; if (this.bubble) this.bubble.setAttribute('data-open', '0'); }; From 46f86b1092ea67f4d08d4f85959815ea532bf994 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 03:29:08 +0000 Subject: [PATCH 28/44] Update scheduler slot_minutes default to 30 in docs --- mcp/scheduler.md | 2 +- resources/views/docs/scheduler.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mcp/scheduler.md b/mcp/scheduler.md index 5779e523..26378d15 100644 --- a/mcp/scheduler.md +++ b/mcp/scheduler.md @@ -89,7 +89,7 @@ This component does not convert times itself. Pass event times already converted | events | _empty_ | `['id', 'label', 'start' => 'Y-m-d H:i', 'end' => 'Y-m-d H:i', 'color', 'resource_id', 'href']`. An event outside the visible hour range is clipped to it, not hidden. | | start_hour | 8 | First visible hour (0-23). | | end_hour | 18 | Last visible hour, exclusive (1-24). | -| slot_minutes | 60 | Grid line granularity. `60` \| `30` \| `15` | +| slot_minutes | 30 | Grid line granularity. `60` \| `30` \| `15` | | week_starts | 1 | First day of the week used by week view. `0` (Sunday) or `1` (Monday) | | timezone | _blank_ | A display-only label. Convert event times to the viewer's timezone yourself before passing them in. | | on_slot_click | _blank_ | Name of a JavaScript function called as `(columnId, "H:i")` when an empty slot is clicked. | diff --git a/resources/views/docs/scheduler.blade.php b/resources/views/docs/scheduler.blade.php index 38e32db4..16b91c5e 100644 --- a/resources/views/docs/scheduler.blade.php +++ b/resources/views/docs/scheduler.blade.php @@ -178,7 +178,7 @@ function showBookingDetails(eventId) { - + From e09cbae4a9f3ae1a1eafc9f5ab7dcb62e5a22fc0 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 03:36:44 +0000 Subject: [PATCH 29/44] Remove Banner component docs (duplicated Alert, removed from package) --- mcp/banner.md | 101 -------- mcp/index.md | 1 - resources/views/docs/banner.blade.php | 218 ------------------ .../views/docs/components-list.blade.php | 1 - resources/views/docs/components.blade.php | 1 - routes/web.php | 1 - 6 files changed, 323 deletions(-) delete mode 100644 mcp/banner.md delete mode 100644 resources/views/docs/banner.blade.php diff --git a/mcp/banner.md b/mcp/banner.md deleted file mode 100644 index 015b3ae4..00000000 --- a/mcp/banner.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Banner Component -component: x-bladewind::banner -url: /component/banner ---- - -# Banner - -The banner component is a page-level or global announcement bar. Where the Alert component sits inline next to the content it relates to, a banner spans the full width of its container, typically at the very top of a page, and stays there for as long as it is relevant. Use it for things everyone visiting the page should notice, such as planned maintenance, an outage that is being worked on, a new feature announcement, or a policy change. - -```blade - - Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable. - -``` - -## Tones - -There are five tones to choose from, each with a matching colour and default icon. - -```blade -Your changes were published successfully. -Your trial ends in 3 days. Add a payment method to keep your account active. -Payment failed. Please update your billing details to avoid service interruption. -A new version of the dashboard is available. -``` - -## Title - -Give a banner a short bold `title` above its message when the message alone needs more emphasis. - -```blade - - Your account will be suspended on March 4, 2027 unless you verify your email address. - -``` - -## Actions - -Give a banner an `actions` slot for one or more buttons or links, shown beside the message. - -```blade - - A new version of the dashboard is available. - - Learn more - Refresh now - - -``` - -## Dismissibility - -Banners show a close icon by default. Set `dismissible="false"` when the announcement is important enough that visitors should not be able to hide it. - -```blade - - The payments system is currently down. We are working on a fix. - -``` - -## Persistence - -Dismissing a banner is normally only remembered for the current page view. Give the banner a `persist_key` and its dismissal is remembered in the visitor's browser via `localStorage`, so it stays gone on later visits too. Pick a key that will not clash with any other banner on the site, and change it whenever the announcement itself changes, so returning visitors see the new one. - -```blade - - We have a new look. Let us know what you think. - -``` - -## Icons - -Each tone shows a matching default icon. Set `icon` to use any icon name from [Heroicons](https://heroicons.com) instead, or set `show_icon="false"` to hide it altogether. - -```blade -A new feature just shipped. Take a look. -This banner has no icon. -``` - -## Rounded Corners - -By default a banner has square corners, since it usually spans the full width of the page. Set `rounded="true"` when placing it inside a narrower container instead. - -```blade -Your export is ready to download. -``` - -## Attributes - -| Attribute | Default | Description | -|---|---|---| -| tone | info | `info` \| `success` \| `warning` \| `error` \| `primary` | -| title | _blank_ | An optional bold heading shown above the message. | -| show_icon | true | Determines if the tone's icon is displayed. `true` \| `false` | -| icon | _blank_ | Use any icon name from [Heroicons](https://heroicons.com) instead of the tone's default icon. | -| dismissible | true | Determines if a close icon is shown so visitors can hide the banner. `true` \| `false` | -| persist_key | _blank_ | Remembers a dismissal in the visitor's browser under this key, so the banner stays hidden on later visits. Leave blank and the banner shows again on every page load. | -| rounded | false | Determines if the banner has rounded corners. `true` \| `false` | -| actions | _none_ | A named slot for one or more buttons or links, shown beside the message. | -| class | _blank_ | Any additional CSS classes you wish to add. | diff --git a/mcp/index.md b/mcp/index.md index 60158b71..595d278b 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -25,7 +25,6 @@ Start here for installation, configuration, and theming. | Accordion | `x-bladewind::accordion` | [accordion.md](accordion.md) | | Alert | `x-bladewind::alert` | [alert.md](alert.md) | | Avatar | `x-bladewind::avatar` | [avatar.md](avatar.md) | -| Banner | `x-bladewind::banner` | [banner.md](banner.md) | | Bell | `x-bladewind::bell` | [bell.md](bell.md) | | Button | `x-bladewind::button` | [button.md](button.md) | | Calendar | `x-bladewind::calendar` | [calendar.md](calendar.md) | diff --git a/resources/views/docs/banner.blade.php b/resources/views/docs/banner.blade.php deleted file mode 100644 index d7f292ab..00000000 --- a/resources/views/docs/banner.blade.php +++ /dev/null @@ -1,218 +0,0 @@ - - Banner Component - Banner - -

- The banner component is a page-level or global announcement bar. Where the Alert - component is meant to sit inline next to the content it relates to, a banner spans the full width of its - container, typically at the very top of a page, and stays there for as long as it is relevant. Use it for - things everyone visiting the page should notice: planned maintenance, an outage that is being worked on, a - new feature announcement, or a policy change. -

-

- There are five tones to choose from: info success - warning error and primary. - Each tone comes with a matching colour and a default icon, and each banner can be dismissed unless you turn - that off. -

- -

Basic Usage

- - Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable. - -
-        
-            <x-bladewind::banner>
-                Scheduled maintenance runs tonight from 11pm to 1am. Some features may be unavailable.
-            </x-bladewind::banner>
-        
-    
- -

Tones

-

Set tone to match the seriousness of what you are announcing.

- Your changes were published successfully. - Your trial ends in 3 days. Add a payment method to keep your account active. - Payment failed. Please update your billing details to avoid service interruption. - A new version of the dashboard is available. -
-        
-            <x-bladewind::banner tone="success">Your changes were published successfully.</x-bladewind::banner>
-            <x-bladewind::banner tone="warning">Your trial ends in 3 days. Add a payment method to keep your account active.</x-bladewind::banner>
-            <x-bladewind::banner tone="error">Payment failed. Please update your billing details to avoid service interruption.</x-bladewind::banner>
-            <x-bladewind::banner tone="primary">A new version of the dashboard is available.</x-bladewind::banner>
-        
-    
- -

Title

-

Give a banner a short bold title above its message when the message alone needs more emphasis.

- - Your account will be suspended on March 4, 2027 unless you verify your email address. - -
-        
-            <x-bladewind::banner tone="warning" title="Action needed">
-                Your account will be suspended on March 4, 2027 unless you verify your email address.
-            </x-bladewind::banner>
-        
-    
- -

Actions

-

Give a banner an actions slot for one or more buttons or links, shown beside the message.

- - A new version of the dashboard is available. - - Learn more - Refresh now - - -
-        
-            <x-bladewind::banner tone="primary">
-                A new version of the dashboard is available.
-                <x-slot:actions>
-                    <x-bladewind::button size="small" color="white">Learn more</x-bladewind::button>
-                    <x-bladewind::button size="small">Refresh now</x-bladewind::button>
-                </x-slot:actions>
-            </x-bladewind::banner>
-        
-    
- -

Dismissibility

-

- Banners show a close icon by default. Click it and the banner is removed from the page. Set - dismissible="false" when the announcement is important enough that visitors - should not be able to hide it. -

- - The payments system is currently down. We are working on a fix. - -
-        
-            <x-bladewind::banner tone="error" dismissible="false">
-                The payments system is currently down. We are working on a fix.
-            </x-bladewind::banner>
-        
-    
- -

Persistence

-

- Dismissing a banner is normally only remembered for the current page view. Reload the page and it comes - back. Give the banner a persist_key and its dismissal is remembered in the - visitor's browser, so it stays gone on later visits too. Pick a key that will not clash with any other - banner on your site, and change it whenever the announcement itself changes, so returning visitors see the - new one. -

- - We have a new look. Let us know what you think. - -
-        
-            <x-bladewind::banner tone="info" persist_key="banner-demo-2027-03">
-                We have a new look. Let us know what you think.
-            </x-bladewind::banner>
-        
-    
- -

Icons

-

- Each tone shows a matching default icon. Set icon to use any icon name from - Heroicons instead, or set - show_icon="false" to hide it altogether. -

- A new feature just shipped. Take a look. - This banner has no icon. -
-        
-            <x-bladewind::banner tone="primary" icon="gift">A new feature just shipped. Take a look.</x-bladewind::banner>
-            <x-bladewind::banner tone="info" show_icon="false">This banner has no icon.</x-bladewind::banner>
-        
-    
- -

Rounded Corners

-

- By default a banner has square corners, since it usually spans the full width of the page. Set - rounded="true" when you are placing it inside a narrower container instead. -

- Your export is ready to download. -
-        
-            <x-bladewind::banner tone="success" rounded="true">Your export is ready to download.</x-bladewind::banner>
-        
-    
- -

Full List Of Attributes

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The source file for this component is available in resources > views > components > bladewind > banner.blade.php - - - - - - - - - - - - - - - - - - diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index 423e90b1..64e79ab5 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -4,7 +4,6 @@ - diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index 61b4a7a5..1dbfb678 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -37,7 +37,6 @@ 'icon_class' => 'bg-pink-50 text-pink-600 dark:bg-pink-400/10 dark:text-pink-300', 'items' => [ ['Alert', 'alert', 'Surface contextual information in multiple semantic styles.'], - ['Banner', 'banner', 'Show a page-level announcement with tone, actions and dismissibility.'], ['Bell', 'bell', 'Display notification counts and recent activity.'], ['Notification', 'notification', 'Show transient success, warning and error messages.'], ['Progress Bar', 'progress-bar', 'Represent completion with a horizontal progress track.'], diff --git a/routes/web.php b/routes/web.php index f0cec821..8b88466b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,7 +16,6 @@ Route::view('releasing', 'docs/releasing'); Route::view('component/accordion', 'docs/accordion'); Route::view('component/alert', 'docs/alert'); -Route::view('component/banner', 'docs/banner'); Route::view('component/avatar', 'docs/avatar'); Route::view('component/bell', 'docs/bell'); Route::view('component/button', 'docs/button'); From 3367ef77954fa14e64f35e41815919892a0b50f8 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 03:50:21 +0000 Subject: [PATCH 30/44] Alphabetize the sidebar component nav list Recently added components had been appended near their closest relative instead of in alphabetical order. --- .../views/docs/components-list.blade.php | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index 64e79ab5..4f9d4198 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -5,42 +5,45 @@ - + - - + + + + + + - - - + + + - + - - - + + + + - - @@ -48,11 +51,11 @@ + - @@ -60,14 +63,11 @@ - - - - - + + From 8e585e948e2e17146c88ac00c948dbb1be60c623 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 03:54:06 +0000 Subject: [PATCH 31/44] Republish compiled CSS to match current component set --- public/vendor/bladewind/css/bladewind-ui.min.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/vendor/bladewind/css/bladewind-ui.min.css b/public/vendor/bladewind/css/bladewind-ui.min.css index 61979aa3..89122797 100644 --- a/public/vendor/bladewind/css/bladewind-ui.min.css +++ b/public/vendor/bladewind/css/bladewind-ui.min.css @@ -1 +1 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:12.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:9px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:13.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:25px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.-top-2{top:calc(var(--spacing) * -2)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.-left-3{left:calc(var(--spacing) * -3)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing) * 0)!important}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-0{margin-inline:calc(var(--spacing) * 0)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-8{margin-inline:calc(var(--spacing) * 8)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing) * 0)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-8{margin-block:calc(var(--spacing) * 8)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[86\/54\]{aspect-ratio:86/54}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.size-full{width:100%;height:100%}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.max-h-full{max-height:100%}.min-h-\[1em\]{min-height:1em}.min-h-\[2rem\]{min-height:2rem}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/60{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/70{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/70{background-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-slate-800\/70{background-color:#1d293db3}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/70{background-color:color-mix(in oklab,var(--color-slate-800) 70%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-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-primary-500{--tw-gradient-from:var(--color-primary-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-yellow-200{--tw-gradient-from:var(--color-yellow-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))}.to-yellow-500{--tw-gradient-to:var(--color-yellow-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))}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-14{padding-right:calc(var(--spacing) * 14)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.\!whitespace-pre-wrap{white-space:pre-wrap!important}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-500{color:var(--color-primary-500)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-600\!{color:var(--color-red-600)!important}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-transparent::placeholder{color:#0000}.placeholder-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.placeholder-white\/50::placeholder{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-offset-2{outline-offset:2px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.backdrop-filter{-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.hover\:bg-black\/60:hover{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/60:hover{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:opacity-100:focus{opacity:1}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-white:focus{--tw-ring-color:var(--color-white)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:grid{display:grid}.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:rotate-0{rotate:0deg}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:py-4{padding-block:calc(var(--spacing) * 4)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}:where(.dark\:divide-dark-700:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-700)}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:#1c1f2466}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 40%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:#0076d21a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 10%,transparent)}}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-white\/10:is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/10:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-400\!:is(.dark,.dark *){color:var(--color-red-400)!important}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-dark-500:is(.dark,.dark *)::placeholder{color:var(--color-dark-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-800:is(.dark,.dark *):hover{background-color:var(--color-dark-800)}.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-green-900) 20%,transparent)}}.dark\:hover\:bg-white\/20:is(.dark,.dark *):hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-white\/20:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){background:var(--color-dark-500, #4a4e53);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#020617b3;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:1.5rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #02061740}.bw-command-palette-panel:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;min-height:2.5rem;color:inherit;box-shadow:none;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;background:#f1f5f9;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;transition:background-color .15s,color .15s;display:grid}.bw-command-palette-close:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-close:hover{color:#0f172a;background:#e2e8f0}.bw-command-palette-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.75rem .875rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:12rem;padding:1.5rem;display:flex}.bw-command-palette-empty[hidden],.bw-command-palette-loading[hidden]{display:none}.bw-command-palette-empty-icon{color:#94a3b8;background:#f1f5f9;border-radius:1rem;place-items:center;width:3rem;height:3rem;display:grid}.bw-command-palette-empty-icon:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-empty-title{color:#1e293b;margin-top:1rem;font-size:.875rem;font-weight:600}.bw-command-palette-empty-title:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-empty-description{color:#64748b;margin-top:.25rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-empty-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading{color:#64748b;font-size:.75rem}.bw-command-palette-loading:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading-icon{color:#94a3b8;animation:1s linear infinite bw-command-palette-spin}.bw-command-palette-loading p{margin-top:.75rem}@keyframes bw-command-palette-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bw-command-palette-loading-icon{animation-duration:2.4s}}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{flex:1;min-width:12rem;max-width:22rem;position:relative}.bw-data-grid-search-input.bw-input{width:100%;padding-left:3rem}.bw-data-grid-search-prefix{z-index:20;color:#1e3a8a80;pointer-events:none;inset-block:0;align-items:center;padding-left:.875rem;padding-right:.5rem;display:inline-flex;position:absolute;left:0}.bw-data-grid-search-prefix:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;cursor:pointer;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-700, #262a2f);border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td,.bw-data-grid-table tbody tr:not([hidden]):not(:has(~tr:not([hidden]))) td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-table th.bw-data-grid-align-center,.bw-data-grid-table td.bw-data-grid-align-center{text-align:center}.bw-data-grid-table th.bw-data-grid-align-right,.bw-data-grid-table td.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-align-center .bw-data-grid-sort-button{justify-content:center;width:100%}.bw-data-grid-table th.bw-data-grid-align-right .bw-data-grid-sort-button{justify-content:flex-end;width:100%}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-checkbox{color:var(--color-primary-600, oklch(47% .2 250));cursor:pointer;border-width:2px;border-color:#94a3b899}.bw-data-grid-checkbox:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f);border-color:#64748b80}.bw-data-grid-checkbox[type=checkbox]{border-radius:.25rem}.bw-data-grid-checkbox[type=radio]{border-radius:100%}.bw-data-grid-checkbox:focus,.bw-data-grid-checkbox:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-loading-overlay{display:none}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));z-index:2;inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));z-index:2;inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}.bw-data-grid[data-loading=true] .bw-data-grid-loading-overlay{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.125rem;min-height:0;margin-top:.1875rem;display:flex;overflow-y:auto}.bw-calendar-cell-events>.bw-calendar-event,.bw-calendar-cell-events>.bw-calendar-event-more{flex-shrink:0}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:0 .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:0 .375rem;font-size:.6875rem;font-weight:600;line-height:1.3;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-date{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-date:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time{color:#64748b;margin-top:.25rem;font-size:.8125rem}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time:empty{display:none}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;border:1px solid var(--color-dark-200, #d2d4d7);background:#fff;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{background:var(--color-dark-800, #1c1f24);color:#fff;border-color:var(--color-dark-800, #1c1f24);box-shadow:none}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary-50:oklch(97% .01 250);--color-primary-100:oklch(94% .03 250);--color-primary-200:oklch(88% .06 250);--color-primary-300:oklch(79% .1 250);--color-primary-400:oklch(68% .14 250);--color-primary-500:oklch(56% .18 250);--color-primary-600:oklch(47% .2 250);--color-primary-700:oklch(40% .19 250);--color-primary-900:oklch(27% .1 250);--color-primary-950:oklch(20% .07 250);--color-dark-100:#f0f1f2;--color-dark-200:#d2d4d7;--color-dark-300:#a7aaad;--color-dark-400:#6c7075;--color-dark-500:#4a4e53;--color-dark-600:#33373c;--color-dark-700:#262a2f;--color-dark-800:#1c1f24;--color-dark-900:#101114;--color-dark-950:#0a0b0d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--slide-distance:2rem;--fade-distance:1rem;--zoom-duration:.5s;--shimmer-duration:1.5s;--shimmer-angle:90deg;--shimmer-mode:alternate;--shimmer-direction:1;--shimmer-color:#fff9}.dark{--shimmer-color:#ffffff1a}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.bw-button{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.3s;align-items:center;transition-duration:.3s;display:inline-block}.bw-button-circle{border-radius:3.40282e38px;justify-content:center;place-items:center;display:inline-flex}.bw-button-circle:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width, 0) var(--tw-ring-offset-color, #fff);--tw-outline-style:none;outline-style:none}.bw-button.regular{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-button.tiny{padding-inline:calc(var(--spacing, .25rem) * 3.75);padding-block:calc(var(--spacing, .25rem) * 1.5);font-size:10px}.bw-button.small{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:9.5px;font-size:11px}.bw-button.medium{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 4)}.bw-button.medium.has-icon{padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3.75)}.bw-button.big{padding-inline:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 6);font-size:14px}.bw-button.big.has-icon{padding-inline:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 4.75);padding-bottom:calc(var(--spacing, .25rem) * 5);font-size:16px}.bw-button.primary:not(.outlined),.bw-button-circle.primary:not(.outlined),.bw-button.secondary:not(.outlined),.bw-button-circle.secondary:not(.outlined){color:#ffffffe6}.bw-button.primary:not(.outlined):hover,.bw-button-circle.primary:not(.outlined):hover,.bw-button.secondary:not(.outlined):hover,.bw-button-circle.secondary:not(.outlined):hover{color:#fff;text-decoration-line:none}.bw-button.primary:not(.outlined):active,.bw-button-circle.primary:not(.outlined):active,.bw-button.secondary:not(.outlined):active,.bw-button-circle.secondary:not(.outlined):active{opacity:1;transform:translateY(.125rem)}.bw-button.primary:not(.outlined):focus,.bw-button-circle.primary:not(.outlined):focus,.bw-button.secondary:not(.outlined):focus,.bw-button-circle.secondary:not(.outlined):focus{--tw-ring-offset-width:0px;outline:none}.bw-button.primary.outlined,.bw-button-circle.primary.outlined,.bw-button.secondary.outlined,.bw-button-circle.secondary.outlined{background-color:#0000}.bw-button.primary.outlined:focus,.bw-button-circle.primary.outlined:focus,.bw-button.secondary.outlined:focus,.bw-button-circle.secondary.outlined:focus{--tw-ring-offset-width:0px;outline:none}.bw-button.disabled:disabled,.bw-button-circle.disabled:disabled{opacity:.5;cursor:not-allowed}.bw-button.outlined{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-button.tiny.outlined{padding-block:calc(var(--spacing, .25rem) * 1.25)}.bw-button.small.outlined{padding-block:8.5px}.bw-button.medium.outlined{padding-block:calc(var(--spacing, .25rem) * 3.5)}.bw-button.big.outlined{padding-block:calc(var(--spacing, .25rem) * 5.5)}.bw-button-circle.tiny{width:calc(var(--spacing, .25rem) * 7.75);height:calc(var(--spacing, .25rem) * 7.75)}.bw-button-circle.small{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.regular{width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.medium{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big{width:calc(var(--spacing, .25rem) * 16.25);height:calc(var(--spacing, .25rem) * 16.25);padding:calc(var(--spacing, .25rem) * 3)}.bw-button-circle.tiny.outlined{width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}.bw-button-circle.small.outlined{padding:calc(var(--spacing, .25rem) * .5)}.bw-button-circle.medium.outlined{width:calc(var(--spacing, .25rem) * 12.5);height:calc(var(--spacing, .25rem) * 12.5);padding:calc(var(--spacing, .25rem) * 1)}.bw-button-circle.big.outlined{width:calc(var(--spacing, .25rem) * 16.5);height:calc(var(--spacing, .25rem) * 16.5);padding:calc(var(--spacing, .25rem) * 3)}.bw-breadcrumb-list{gap:0}.bw-breadcrumb-item,.bw-breadcrumb-overflow-marker{min-width:0}.bw-breadcrumb-overflow-marker{display:none}.bw-breadcrumb-link{align-items:center;gap:.375rem;min-width:0;line-height:1.5;display:inline-flex}.bw-breadcrumb-label{text-overflow:ellipsis;white-space:nowrap;max-width:min(18rem,55vw);display:block;overflow:hidden}.bw-breadcrumb-separator{margin-inline:.5rem;display:inline-flex}.bw-breadcrumb-item:nth-child(2)>.bw-breadcrumb-separator{display:none}@media(max-width:639px){.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-overflow-marker{order:1;display:flex}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:nth-child(2){order:0}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child){opacity:0;pointer-events:none;order:2;max-width:0;overflow:hidden}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:not(:nth-child(2)):not(:last-child):focus-within{opacity:1;pointer-events:auto;max-width:min(18rem,65vw);overflow:visible}.bw-breadcrumbs.collapsible .bw-breadcrumb-list:has(>.bw-breadcrumb-item:nth-child(5))>.bw-breadcrumb-item:last-child{order:3}.bw-breadcrumbs.collapsible .bw-breadcrumb-label{max-width:45vw}}.bw-stepper{min-width:calc(var(--spacing, .25rem) * 0);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-list{margin:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);padding:calc(var(--spacing, .25rem) * 0);counter-reset:bw-step;list-style-type:none;display:flex}.bw-stepper-item{min-width:calc(var(--spacing, .25rem) * 0);counter-increment:bw-step;flex:1;position:relative}.bw-stepper-trigger{z-index:1;width:100%;min-width:calc(var(--spacing, .25rem) * 0);-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 1);text-align:left;background-color:#0000;border-width:0;display:flex;position:relative}.bw-stepper-trigger:focus-visible{outline-style:var(--tw-outline-style, solid);outline-offset:4px;outline-width:2px;outline-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-trigger:not(:disabled){cursor:pointer}.bw-stepper[data-clickable=false] .bw-stepper-trigger:not(:disabled),.bw-stepper-trigger[data-clickable=false]{cursor:default}.bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));background-color:var(--color-white, #fff);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-500, oklch(55.1% .027 264.364));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-300, #a7aaad)}.bw-stepper-copy{min-width:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 1);flex-direction:column;display:flex}.bw-stepper-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word;color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-label:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-stepper-description{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-leading:calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);overflow-wrap:break-word;color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-stepper-description:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-stepper-connector{background-color:var(--color-gray-200, oklch(92.8% .006 264.531));position:absolute}.bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-stepper-complete-indicator,.bw-stepper-error-indicator,.bw-stepper-custom-indicator:empty{display:none}.bw-stepper[data-show-numbers=true] .bw-stepper-number:empty:before{content:counter(bw-step)}.bw-stepper-item[data-state=current] .bw-stepper-indicator{border-color:var(--color-primary-600, oklch(47% .2 250));background-color:var(--color-primary-600, oklch(47% .2 250));color:var(--color-white, #fff)}.bw-stepper-item[data-state=current] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250));background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-stepper-item[data-state=current] .bw-stepper-label{color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-item[data-state=current] .bw-stepper-label:is(.dark,.dark *){color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-item[data-state=complete] .bw-stepper-indicator{border-color:var(--color-green-600, oklch(62.7% .194 149.214));background-color:var(--color-green-600, oklch(62.7% .194 149.214));color:var(--color-white, #fff)}.bw-stepper-item[data-state=complete] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-green-400, oklch(79.2% .209 151.711));background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-stepper-item[data-state=complete] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=complete] .bw-stepper-complete-indicator{display:block}.bw-stepper-item[data-state=error] .bw-stepper-indicator{border-color:var(--color-red-600, oklch(57.7% .245 27.325));background-color:var(--color-red-50, oklch(97.1% .013 17.38));color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-stepper-item[data-state=error] .bw-stepper-indicator:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216));background-color:var(--color-red-950, oklch(25.8% .092 26.042));color:var(--color-red-300, oklch(80.8% .114 19.571))}.bw-stepper-item[data-state=error] .bw-stepper-default-indicator{display:none}.bw-stepper-item[data-state=error] .bw-stepper-error-indicator{display:block}.bw-stepper-item[data-state=disabled]{opacity:.55}.bw-stepper-item[data-state=disabled] .bw-stepper-trigger{cursor:not-allowed}.bw-stepper-horizontal{padding-bottom:calc(var(--spacing, .25rem) * 2);overflow-x:auto}.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 0);min-width:max-content}.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 48);min-width:calc(var(--spacing, .25rem) * 48)}.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column}.bw-stepper-horizontal .bw-stepper-copy{padding-top:calc(var(--spacing, .25rem) * 0);text-align:center;align-items:center}.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + 1.125rem) calc(1.125rem - 50%);height:.125rem;top:1.3125rem}.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-vertical .bw-stepper-list{flex-direction:column}.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 20);padding-bottom:calc(var(--spacing, .25rem) * 5)}.bw-stepper-vertical .bw-stepper-connector{top:calc(var(--spacing, .25rem) * 10);bottom:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * .5);inset-inline-start:1.3125rem}.bw-stepper-vertical .bw-stepper-item:last-child .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));overflow:hidden}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-list:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item{background-color:var(--color-white, #fff)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 8);padding-block:calc(var(--spacing, .25rem) * 4);text-align:start;border-radius:0;flex-direction:row}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-connector{display:none}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:not(:last-child):after{content:"";z-index:2;background:inherit;border-block-start:1px solid #d1d5db;border-inline-end:1px solid #d1d5db;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));inset-inline-end:-.8rem;width:1.6rem;height:1.6rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]{background-color:var(--color-primary-50, oklch(97% .01 250))}.bw-stepper-style-chevrons .bw-stepper-item[data-state=current]:is(.dark,.dark *){background-color:var(--color-primary-950, oklch(20% .07 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]{border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item[data-state=current]:not(:last-child):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-chevrons.bw-stepper-horizontal .bw-stepper-item:has(+.bw-stepper-item[data-state=current]):after{border-color:var(--color-primary-300, oklch(79% .1 250))}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 8)}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 0);padding-inline:calc(var(--spacing, .25rem) * 0);padding-top:calc(var(--spacing, .25rem) * 7);padding-bottom:calc(var(--spacing, .25rem) * 1);text-align:start}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-copy{text-align:start;align-items:flex-start}.bw-stepper-style-bars .bw-stepper-indicator{display:none}.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-connector,.bw-stepper-style-bars.bw-stepper-horizontal .bw-stepper-item:last-child .bw-stepper-connector{inset-inline:0;height:.25rem;display:block;top:.25rem}.bw-stepper-style-bars .bw-stepper-label:before{content:"Step " counter(bw-step);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:var(--color-gray-500, oklch(55.1% .027 264.364));display:block}.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector{background-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars .bw-stepper-item[data-state=current] .bw-stepper-connector,.bw-stepper-style-bars .bw-stepper-item[data-state=complete] .bw-stepper-connector):is(.dark,.dark *){background-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector{background-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars .bw-stepper-item[data-state=error] .bw-stepper-connector:is(.dark,.dark *){background-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-list{gap:calc(var(--spacing, .25rem) * 5)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 0);border-inline-start-style:var(--tw-border-style, solid);border-inline-start-width:4px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));padding-inline-start:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]{border-color:var(--color-primary-600, oklch(47% .2 250))}:is(.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=current],.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=complete]):is(.dark,.dark *){border-color:var(--color-primary-400, oklch(68% .14 250))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]{border-color:var(--color-red-600, oklch(57.7% .245 27.325))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-item[data-state=error]:is(.dark,.dark *){border-color:var(--color-red-400, oklch(70.4% .191 22.216))}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-trigger{padding:calc(var(--spacing, .25rem) * 0)}.bw-stepper-style-bars.bw-stepper-vertical .bw-stepper-connector{display:none}.bw-stepper-style-line .bw-stepper-indicator{width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);border-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);color:0;border-width:2px}.bw-stepper-style-line .bw-stepper-indicator:is(.dark,.dark *){background-color:var(--color-dark-800, #1c1f24)}.bw-stepper-style-line .bw-stepper-item[data-state=current] .bw-stepper-indicator{background-color:#0000}.bw-stepper-style-line .bw-stepper-indicator svg,.bw-stepper-style-line .bw-stepper-number{display:none}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-trigger{align-items:center;gap:calc(var(--spacing, .25rem) * 3);padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center;flex-direction:column-reverse}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-copy{text-align:center;align-items:center}.bw-stepper-style-line.bw-stepper-horizontal .bw-stepper-connector{inset-inline:calc(50% + .5rem) calc(.5rem - 50%);top:auto;bottom:.6875rem}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-item{min-height:calc(var(--spacing, .25rem) * 16);padding-bottom:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-trigger{align-items:flex-start;gap:calc(var(--spacing, .25rem) * 4)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-copy{margin-top:calc(var(--spacing, .25rem) * -.5)}.bw-stepper-style-line.bw-stepper-vertical .bw-stepper-connector{inset-inline-start:.6875rem;top:1.5rem}.bw-stepper-panel{margin-top:calc(var(--spacing, .25rem) * 6);min-width:calc(var(--spacing, .25rem) * 0);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 5);color:var(--color-gray-700, oklch(37.3% .034 259.733))}.bw-stepper-panel:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7)}.bw-stepper-panel-borderless{border-style:var(--tw-border-style, solid);border-width:0}.bw-stepper-panel[hidden]{display:none}[dir=rtl] .bw-stepper-trigger{text-align:right}@media(max-width:639px){.bw-stepper-horizontal .bw-stepper-item{width:calc(var(--spacing, .25rem) * 40);min-width:calc(var(--spacing, .25rem) * 40)}.bw-stepper-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media(prefers-reduced-motion:reduce){.bw-stepper *{scroll-behavior:auto;transition-duration:.01ms}}.bw-card.shadowed{box-shadow:0 0 0 1px #0f172a0f,0 1px 2px #0f172a08}.dark .bw-card.shadowed{box-shadow:0 0 0 1px #e2e8f014,0 1px 2px #02061766}.bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #0f172a1a,0 2px 6px #0f172a0f}.dark .bw-card.shadowed-hover:hover{box-shadow:0 0 0 1px #e2e8f024,0 2px 6px #02061780}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.bw-textarea,.bw-raw-select,.bw-input{border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style, solid);width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-gray-600, oklch(44.6% .03 256.802));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width, 0)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-width:2px;padding-block:8.5px}:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:#00274f66}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input)::placeholder{color:color-mix(in oklab,var(--color-primary-900, oklch(27% .1 250)) 40%,transparent)}}:is(.bw-textarea,.bw-raw-select,.bw-input):focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background-color:#0000}:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:#6c707599}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea,.bw-raw-select,.bw-input):is(.dark,.dark *)::placeholder{color:color-mix(in oklab,var(--color-dark-400, #6c7075) 60%,transparent)}}.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error){border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}@media(hover:hover){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){:is(.bw-textarea:not(.has-error),.bw-raw-select:not(.has-error),.bw-input:not(.has-error)):is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331));outline-color:var(--color-red-500, oklch(63.7% .237 25.331))}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *){border-color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}}:is(.bw-textarea.has-error,.bw-raw-select.has-error,.bw-input.has-error):is(.dark,.dark *):focus{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:#99a1afb3}@supports (color:color-mix(in lab,red,red)){.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input{color:color-mix(in oklab,var(--color-gray-400, oklch(70.7% .022 261.325)) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:#4a4e53b3}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 70%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white, #fff) 10%,transparent)}}:is(.bw-input[disabled],.bw-input[readonly],fieldset[disabled] .bw-input):is(.dark,.dark *){color:var(--color-dark-400, #6c7075);opacity:.4}.bw-input.small{padding-block:6px}.bw-input.medium{padding-block:12px}.bw-input.big{padding-block:calc(var(--spacing, .25rem) * 5)}:is(input.no-label,.bw-input.no-label,.bw-textarea.bw-input.no-label)::placeholder{color:#0000}.form-label{top:calc(var(--spacing) * -2);left:calc(var(--spacing) * 3);z-index:20;cursor:text;background-color:var(--color-white);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:#00274f66;display:inline-block;position:absolute}@supports (color:color-mix(in lab,red,red)){.form-label{color:color-mix(in oklab,var(--color-primary-900) 40%,transparent)}}.form-label{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.form-label:is(:where(.peer):placeholder-shown~*){top:12.2px}.form-label:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(var(--spacing) * 3);left:unset}.form-label:is(.dark,.dark *){border-radius:var(--radius-md);background-color:#262a2ff2}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 95%,transparent)}}.form-label:is(.dark,.dark *){padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);color:#a7aaad80}@supports (color:color-mix(in lab,red,red)){.form-label:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 50%,transparent)}}.form-label.small:is(:where(.peer):placeholder-shown~*){top:9px}.form-label.small:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.form-label.medium:is(:where(.peer):placeholder-shown~*){top:13.5px}.form-label.medium:is(:where(.peer):focus~*){top:-9px}.form-label.big:is(:where(.peer):placeholder-shown~*){top:25px}.form-label.big:is(:where(.peer):focus~*){top:calc(var(--spacing) * -2)}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{cursor:not-allowed;background-color:#f3f4f699}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 60%,transparent)}}.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select{opacity:.95;-webkit-user-select:none;user-select:none}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:#a7aaad0d}@supports (color:color-mix(in lab,red,red)){:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 5%,transparent)}}:is(.bw-select div.clickable.disabled,.bw-select div.clickable.readonly,fieldset[disabled] .bw-select):is(.dark,.dark *){opacity:.4}.bw-select div.clickable.enabled.has-error,.bw-select div.clickable.enabled.has-error:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-select div.clickable.enabled{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@media(hover:hover){.bw-select div.clickable.enabled:hover{border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-select div.clickable.enabled:focus{outline-style:var(--tw-outline-style, solid);outline-offset:-1px;outline-width:2px}.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 50%,transparent)}}.bw-select div.clickable.enabled:is(.dark,.dark *){background-color:#0000}@media(hover:hover){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:#4a4e5366}@supports (color:color-mix(in lab,red,red)){.bw-select div.clickable.enabled:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500, #4a4e53) 40%,transparent)}}}.prefix svg,.suffix svg{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6)}:is(.prefix svg,.suffix svg):where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 1)}:is(.prefix svg,.suffix svg):is(.dark,.dark *){color:var(--color-dark-500)}.ql-toolbar.ql-snow{border-top-left-radius:var(--radius-lg)!important;border-top-right-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-toolbar.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-toolbar.ql-snow:is(.dark,.dark *){background-color:#0000!important}:is(.ql-toolbar.ql-snow .ql-stroke,.ql-stroke.ql-thin):is(.dark,.dark *){stroke:var(--color-dark-500)!important;color:var(--color-dark-500)!important}.ql-snow.ql-toolbar button:hover .ql-stroke{stroke:var(--color-primary-500)!important}.ql-container.ql-snow{border-bottom-right-radius:var(--radius-lg)!important;border-bottom-left-radius:var(--radius-lg)!important;border-style:var(--tw-border-style)!important;border-width:2px!important;border-color:var(--color-gray-200)!important}.ql-container.ql-snow:is(.dark,.dark *){border-color:#33373c80!important}@supports (color:color-mix(in lab,red,red)){.ql-container.ql-snow:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)!important}}.ql-container.ql-snow:is(.dark,.dark *){background-color:#0000!important}.ql-editor.ql-blank:before{color:var(--color-gray-300)!important;font-style:normal!important}.bw-input-wrapper.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 4)}.bw-textarea-wrapper.has-clearing,.bw-select.has-clearing{margin-bottom:calc(var(--spacing, .25rem) * 3)}.bw-input-group{margin-bottom:calc(var(--spacing, .25rem) * 4);align-items:flex-start;width:100%;display:flex}.bw-input-group.gapped{gap:calc(var(--spacing, .25rem) * 2)}.bw-input-group>:is(.bw-input-wrapper,.bw-textarea-wrapper,.bw-select){margin-bottom:calc(var(--spacing, .25rem) * 0)}.bw-input-group>.bw-button{flex-shrink:0}.bw-input-group.attached>:not(:first-child){margin-left:calc(var(--spacing, .25rem) * -.5)}.bw-input-group .shrink-control{flex-grow:0;flex-shrink:0}.bw-datepicker{z-index:50;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-gray-100, oklch(96.7% .003 264.542));background-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000);flex-direction:column;display:flex;position:absolute}.bw-datepicker:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c);background-color:var(--color-dark-700, #262a2f);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow, 0 0 #0000),var(--tw-inset-ring-shadow, 0 0 #0000),var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow, 0 0 #0000)}.bw-datepicker .in-range{border-style:var(--tw-border-style, solid);border-width:1px}.bw-datepicker .selected{border-radius:var(--radius-md, .375rem);color:var(--color-white, #fff);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));--tw-duration:.1s;--tw-ease:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1));transition-duration:.1s;transition-timing-function:var(--ease-in-out, cubic-bezier(.4, 0, .2, 1))}.bw-datepicker .selected:is(.dark,.dark *){background-color:var(--color-dark-900, #101114)}.bw-datepicker .disabled{pointer-events:none;cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-datepicker .disabled:is(.dark,.dark *){color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-datepicker .a-month{cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 7);padding-block:calc(var(--spacing, .25rem) * 4);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-month:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-month:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-month:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker .a-year{cursor:pointer;padding:calc(var(--spacing, .25rem) * 5);font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287));text-transform:none}@media(hover:hover){.bw-datepicker .a-year:hover{background-color:var(--color-gray-100, oklch(96.7% .003 264.542))}}.bw-datepicker .a-year:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-datepicker .a-year:is(.dark,.dark *):hover{background-color:var(--color-dark-600, #33373c);color:var(--color-dark-200, #d2d4d7)}}.bw-datepicker table{border-collapse:collapse;width:100%}.bw-datepicker td{cursor:pointer;border-style:var(--tw-border-style, solid);border-width:1px;border-color:var(--color-white, #fff);padding:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-light, 300);font-weight:var(--font-weight-light, 300);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:var(--color-slate-700, oklch(37.2% .044 257.287))}.bw-datepicker td:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-datepicker td:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-datepicker td:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker th{width:calc(var(--spacing, .25rem) * 10);cursor:pointer;padding-inline:calc(var(--spacing, .25rem) * 2);padding-top:calc(var(--spacing, .25rem) * 3.5);padding-bottom:calc(var(--spacing, .25rem) * 2);text-align:center;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);--tw-tracking:var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:var(--color-slate-500, oklch(55.4% .046 257.417));text-transform:uppercase}.bw-datepicker th:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-datepicker td:hover:not(.selected,.empty){border-radius:var(--radius-md, .375rem)}.bw-datepicker td:empty:hover{background-color:var(--color-white, #fff)}.bw-datepicker td:empty:hover:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f)}.bw-datepicker .datepicker-header{margin-inline:calc(var(--spacing, .25rem) * -2);margin-top:calc(var(--spacing, .25rem) * -2);border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 5);color:var(--color-white, #fff);justify-content:space-between;align-items:center;display:flex}.bw-slider{height:calc(var(--spacing, .25rem) * 2);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-gray-200, oklch(92.8% .006 264.531));opacity:.9;outline-style:var(--tw-outline-style, solid);width:100%;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration, .15s));border-radius:3.40282e38px;outline-width:0;position:absolute}.bw-slider:is(.dark,.dark *){background-color:var(--color-dark-600, #33373c)}.bw-slider::-webkit-slider-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider::-moz-range-thumb{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3.40282e38px}.bw-slider.primary::-webkit-slider-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.primary::-moz-range-thumb{background-color:var(--color-primary-500, oklch(56% .18 250))}.bw-slider.pink::-webkit-slider-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.pink::-moz-range-thumb{background-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-slider.blue::-webkit-slider-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.blue::-moz-range-thumb{background-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-slider.red::-webkit-slider-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.red::-moz-range-thumb{background-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-slider.yellow::-webkit-slider-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.yellow::-moz-range-thumb{background-color:var(--color-amber-500, oklch(76.9% .188 70.08))}.bw-slider.black::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.black::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-webkit-slider-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.gray::-moz-range-thumb{background-color:var(--color-slate-500, oklch(55.4% .046 257.417))}.bw-slider.purple::-webkit-slider-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.purple::-moz-range-thumb{background-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-slider.cyan::-webkit-slider-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.cyan::-moz-range-thumb{background-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-slider.orange::-webkit-slider-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.orange::-moz-range-thumb{background-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-slider.violet::-webkit-slider-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.violet::-moz-range-thumb{background-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-slider.indigo::-webkit-slider-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.indigo::-moz-range-thumb{background-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-slider.fuchsia::-webkit-slider-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.fuchsia::-moz-range-thumb{background-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-slider.green::-webkit-slider-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-slider.green::-moz-range-thumb{background-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-table.divided tr:not(:has(th),:last-child){border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-bottom-style:var(--tw-border-style, solid);border-color:#e5e7eb26;border-bottom-width:8px}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 15%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child){border-top-color:#e5e7eb66}@supports (color:color-mix(in lab,red,red)){.bw-table.divided tr:not(:has(th),:last-child){border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 40%,transparent)}}.bw-table.divided tr:not(:has(th),:last-child):is(.dark,.dark *){border-color:var(--color-dark-700, #262a2f);border-bottom-color:var(--color-dark-700, #262a2f)}.bw-table.divided.thin tbody tr{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-top-color:var(--color-gray-200, oklch(92.8% .006 264.531));border-bottom-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr{border-bottom-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 60%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.divided.thin tbody tr:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table tr>td{border-inline-style:var(--tw-border-style, solid);background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:top;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading:calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);color:#45556ccc;border-inline-width:2px;border-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td{color:color-mix(in oklab,var(--color-slate-600, oklch(44.6% .043 257.281)) 80%,transparent)}}.bw-table tr>td:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 25%,transparent)}}.bw-table tr>td:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300, #a7aaad) 70%,transparent)}}.bw-table tr>td.group-heading{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}.bw-table tr>td.group-heading{color:var(--color-slate-700, oklch(37.2% .044 257.287))}@media(hover:hover){.bw-table tr>td.group-heading:hover{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover{background-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 70%,transparent)}}}.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table tr>td.group-heading:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}@media(hover:hover){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.bw-table tr>td.group-heading:hover:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}}.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td{background-color:color-mix(in oklab,var(--color-slate-100, oklch(96.8% .007 247.896)) 70%,transparent)}}:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:#1c1f2473}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.striped tr:nth-child(2n)>td,.bw-table.striped tr:nth-child(2n):hover>td):is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 45%,transparent)}}.bw-table.celled th,.bw-table.celled td{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-right-style:var(--tw-border-style, solid);border-color:#d1d5dc80;border-right-width:1px}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th,.bw-table.celled td{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th,.bw-table.celled td):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th{border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-top-color:#e5e7eb4d}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{border-top-color:color-mix(in oklab,var(--color-gray-200, oklch(92.8% .006 264.531)) 30%,transparent)}}.bw-table thead>tr>th{background-color:var(--color-white, #fff);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);text-align:left;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading,var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#000c}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th{color:color-mix(in oklab,var(--color-black, #000) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){background-color:#1c1f2499;border-bottom-color:#0000}@supports (color:color-mix(in lab,red,red)){.bw-table thead>tr>th:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 60%,transparent)}}.bw-table thead>tr>th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-collapse:collapse;border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.bw-table.celled th:first-child,.bw-table.celled td:first-child{border-color:color-mix(in oklab,var(--color-gray-300, oklch(87.2% .01 258.338)) 50%,transparent)}}:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:is(.bw-table.celled th:first-child,.bw-table.celled td:first-child):is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600, #33373c) 80%,transparent)}}.bw-table.has-no-data thead>tr{border-color:#0000}.bw-table.uppercase-headers thead>tr>th{text-transform:uppercase}.bw-table-filter-bar-unhinged input{margin-bottom:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar-unhinged input:focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table-filter-bar{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar{background-color:color-mix(in oklab,var(--color-slate-200, oklch(92.9% .013 255.508)) 50%,transparent)}}.bw-table-filter-bar:is(.dark,.dark *){background-color:#1c1f24cc}@supports (color:color-mix(in lab,red,red)){.bw-table-filter-bar:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 80%,transparent)}}.bw-table-filter-bar input:is(.dark,.dark *){border-style:var(--tw-border-style, solid);background-color:#0000;border-width:0}.bw-table-filter-bar input:is(.dark,.dark *):focus{border-style:var(--tw-border-style, solid);outline-style:var(--tw-outline-style, solid);border-width:0;outline-width:0}.bw-table.compact thead>tr>th{padding-block:calc(var(--spacing, .25rem) * 2.5)}.bw-table.compact tr>td{padding-block:calc(var(--spacing, .25rem) * 2)}.bw-table td.double-underline{border-collapse:separate;border-inline-style:var(--tw-border-style, solid);border-inline-width:0;border-top-style:var(--tw-border-style, solid);border-top-width:0;border-bottom-style:var(--tw-border-style, solid);--tw-border-style:double;border-style:double;border-bottom-width:4px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-table td.double-underline:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:#f3f4f666}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td{background-color:color-mix(in oklab,var(--color-gray-100, oklch(96.7% .003 264.542)) 40%,transparent)}}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.bw-table.with-hover-effect tr:not(.no-hover):hover>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-600, #33373c) 30%,transparent)}}.bw-table td:first-child,.bw-table th:first-child{padding-left:calc(var(--spacing, .25rem) * 5)}.bw-table td:last-child,.bw-table th:last-child{padding-right:calc(var(--spacing, .25rem) * 5)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child{border-left-style:var(--tw-border-style, solid);border-left-width:2px;border-left-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:first-child:is(.dark,.dark *){border-left-color:var(--color-dark-500, #4a4e53)}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child{border-right-style:var(--tw-border-style, solid);border-right-width:2px;border-right-color:var(--color-slate-400, oklch(70.4% .04 256.788))}.bw-table.with-hover-effect tr:not(.no-hover):hover>td:last-child:is(.dark,.dark *){border-right-color:var(--color-dark-500, #4a4e53)}.bw-table.selectable>tbody>tr{cursor:pointer}.bw-table.selectable>tbody>tr.selected{border-block-style:var(--tw-border-style, solid);border-block-width:1px;border-color:var(--color-primary-200, oklch(88% .06 250))}.bw-table.selectable>tbody>tr.selected:is(.dark,.dark *){border-color:var(--color-dark-600, #33373c)}.bw-table.selectable>tbody>tr.selected>td{background-color:#ddedffcc}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td{background-color:color-mix(in oklab,var(--color-primary-100, oklch(94% .03 250)) 80%,transparent)}}.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:#1c1f248c}@supports (color:color-mix(in lab,red,red)){.bw-table.selectable>tbody>tr.selected>td:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800, #1c1f24) 55%,transparent)}}.bw-table th:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * 1)}.bw-table td:first-child input[type=checkbox]{margin-top:calc(var(--spacing, .25rem) * .5)}.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td{background-color:#0000}@media(hover:hover){:is(.bw-table.transparent tr,.bw-table.transparent th,.bw-table.transparent td):hover{background-color:#0000}}.bw-tab{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-200, oklch(92.8% .006 264.531))}.bw-tab:is(.dark,.dark *){border-color:var(--color-dark-500, #4a4e53)}.bw-tab.simple{padding-bottom:1px;position:relative}.bw-tab.simple .atab{background-color:#0000}.bw-tab.simple .atab span{padding:calc(var(--spacing, .25rem) * 4);text-align:center;font-size:var(--text-base, 1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);display:inline-block}.bw-tab.simple .atab span:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-tab.simple .atab span.is-disabled{cursor:not-allowed;color:var(--color-gray-300, oklch(87.2% .01 258.338))}@media(hover:hover){.bw-tab.simple .atab span.is-disabled:hover{color:var(--color-gray-300, oklch(87.2% .01 258.338))}}.bw-tab.simple .atab span.is-disabled:is(.dark,.dark *){opacity:.2}.bw-tab.simple .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.simple .bw-tab-active-line{pointer-events:none;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * .5);opacity:0;background-color:var(--bw-tab-active-line-color,var(--color-primary-500, oklch(56% .18 250)));width:0;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1),opacity .15s;position:absolute;transform:translate(0)}.bw-tab.simple.primary{--bw-tab-active-line-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.simple.blue{--bw-tab-active-line-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.simple.red{--bw-tab-active-line-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.simple.yellow{--bw-tab-active-line-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.simple.green{--bw-tab-active-line-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.simple.gray{--bw-tab-active-line-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.simple.purple{--bw-tab-active-line-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.simple.pink{--bw-tab-active-line-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.simple.cyan{--bw-tab-active-line-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.simple.indigo{--bw-tab-active-line-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.simple.violet{--bw-tab-active-line-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.simple.fuchsia{--bw-tab-active-line-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.simple.orange{--bw-tab-active-line-color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(prefers-reduced-motion:reduce){.bw-tab.simple .bw-tab-active-line{transition:none}}.bw-tab .atab span.primary{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}@media(hover:hover){.bw-tab .atab span.primary:hover{border-color:var(--color-primary-500, oklch(56% .18 250));color:var(--color-primary-500, oklch(56% .18 250))}}.bw-tab .atab span.primary:is(.dark,.dark *){color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab .atab span.blue{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}@media(hover:hover){.bw-tab .atab span.blue:hover{border-color:var(--color-blue-500, oklch(62.3% .214 259.815));color:var(--color-blue-500, oklch(62.3% .214 259.815))}}.bw-tab .atab span.red{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}@media(hover:hover){.bw-tab .atab span.red:hover{border-color:var(--color-red-500, oklch(63.7% .237 25.331));color:var(--color-red-500, oklch(63.7% .237 25.331))}}.bw-tab .atab span.yellow{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}@media(hover:hover){.bw-tab .atab span.yellow:hover{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047));color:var(--color-yellow-500, oklch(79.5% .184 86.047))}}.bw-tab .atab span.green{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}@media(hover:hover){.bw-tab .atab span.green:hover{border-color:var(--color-green-500, oklch(72.3% .219 149.579));color:var(--color-green-500, oklch(72.3% .219 149.579))}}.bw-tab .atab span.gray{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}@media(hover:hover){.bw-tab .atab span.gray:hover{border-color:var(--color-gray-500, oklch(55.1% .027 264.364));color:var(--color-gray-500, oklch(55.1% .027 264.364))}}.bw-tab .atab span.purple{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}@media(hover:hover){.bw-tab .atab span.purple:hover{border-color:var(--color-purple-500, oklch(62.7% .265 303.9));color:var(--color-purple-500, oklch(62.7% .265 303.9))}}.bw-tab .atab span.pink{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}@media(hover:hover){.bw-tab .atab span.pink:hover{border-color:var(--color-pink-500, oklch(65.6% .241 354.308));color:var(--color-pink-500, oklch(65.6% .241 354.308))}}.bw-tab .atab span.cyan{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}@media(hover:hover){.bw-tab .atab span.cyan:hover{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221));color:var(--color-cyan-500, oklch(71.5% .143 215.221))}}.bw-tab .atab span.indigo{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}@media(hover:hover){.bw-tab .atab span.indigo:hover{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117));color:var(--color-indigo-500, oklch(58.5% .233 277.117))}}.bw-tab .atab span.violet{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}@media(hover:hover){.bw-tab .atab span.violet:hover{border-color:var(--color-violet-500, oklch(60.6% .25 292.717));color:var(--color-violet-500, oklch(60.6% .25 292.717))}}.bw-tab .atab span.fuchsia{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}@media(hover:hover){.bw-tab .atab span.fuchsia:hover{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15));color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}}.bw-tab .atab span.orange{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}@media(hover:hover){.bw-tab .atab span.orange:hover{border-color:var(--color-orange-500, oklch(70.5% .213 47.604));color:var(--color-orange-500, oklch(70.5% .213 47.604))}}.bw-tab.system{padding-left:calc(var(--spacing, .25rem) * 8)}.bw-tab.system .atab span.is-inactive{margin-top:calc(var(--spacing, .25rem) * 1.5);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);border-top-width:1px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.bw-tab.system .atab span.is-inactive:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system .atab span{border-top-left-radius:var(--radius-lg, .5rem);border-top-right-radius:var(--radius-lg, .5rem);border-inline-style:var(--tw-border-style, solid);border-inline-width:1px;border-top-style:var(--tw-border-style, solid);padding:calc(var(--spacing, .25rem) * 3.5);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);border-top-width:1px;display:inline-block}.bw-tab.system .atab span.is-active{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:2px;border-bottom-color:var(--color-white, #fff);margin-bottom:-2px}.bw-tab.system .atab span.is-active:is(.dark,.dark *){border-bottom-color:var(--color-dark-700, #262a2f)}.bw-tab.system.primary{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.system.primary:is(.dark,.dark *){border-color:var(--color-primary-700, oklch(40% .19 250))}.bw-tab.system.blue{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.system.blue:is(.dark,.dark *){border-color:var(--color-blue-700, oklch(48.8% .243 264.376))}.bw-tab.system.red{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.system.red:is(.dark,.dark *){border-color:var(--color-red-700, oklch(50.5% .213 27.518))}.bw-tab.system.yellow{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.system.yellow:is(.dark,.dark *){border-color:var(--color-yellow-700, oklch(55.4% .135 66.442))}.bw-tab.system.green{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-tab.system.green:is(.dark,.dark *){border-color:var(--color-green-700, oklch(52.7% .154 150.069))}.bw-tab.system.orange{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.system.orange:is(.dark,.dark *){border-color:var(--color-orange-700, oklch(55.3% .195 38.402))}.bw-tab.system.violet{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.system.violet:is(.dark,.dark *){border-color:var(--color-violet-700, oklch(49.1% .27 292.581))}.bw-tab.system.gray{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.system.gray:is(.dark,.dark *){border-color:var(--color-gray-600, oklch(44.6% .03 256.802))}.bw-tab.system.pink{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.system.pink:is(.dark,.dark *){border-color:var(--color-pink-700, oklch(52.5% .223 3.958))}.bw-tab.system.indigo{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.system.indigo:is(.dark,.dark *){border-color:var(--color-indigo-700, oklch(45.7% .24 277.023))}.bw-tab.system.cyan{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.system.cyan:is(.dark,.dark *){border-color:var(--color-cyan-700, oklch(52% .105 223.128))}.bw-tab.system.fuchsia{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.system.fuchsia:is(.dark,.dark *){border-color:var(--color-fuchsia-700, oklch(51.8% .253 323.949))}.bw-tab.system.purple{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:1px;border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.system.purple:is(.dark,.dark *){border-color:var(--color-purple-700, oklch(49.6% .265 301.924))}.bw-tab.pills{border-bottom-style:var(--tw-border-style, solid);border-bottom-width:0}.bw-tab.pills .atab span{border-radius:var(--radius-xl, .75rem);background-color:var(--color-gray-100, oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);display:inline-block}.bw-tab.pills .atab span.is-active{border-style:var(--tw-border-style, solid);border-width:2px;border-color:var(--color-gray-300, oklch(87.2% .01 258.338))}.bw-tab.pills.primary span.is-active{border-color:var(--color-primary-500, oklch(56% .18 250))}.bw-tab.pills.pink span.is-active{border-color:var(--color-pink-500, oklch(65.6% .241 354.308))}.bw-tab.pills.red span.is-active{border-color:var(--color-red-500, oklch(63.7% .237 25.331))}.bw-tab.pills.yellow span.is-active{border-color:var(--color-yellow-500, oklch(79.5% .184 86.047))}.bw-tab.pills.cyan span.is-active{border-color:var(--color-cyan-500, oklch(71.5% .143 215.221))}.bw-tab.pills.orange span.is-active{border-color:var(--color-orange-500, oklch(70.5% .213 47.604))}.bw-tab.pills.gray span.is-active{border-color:var(--color-gray-500, oklch(55.1% .027 264.364))}.bw-tab.pills.violet span.is-active{border-color:var(--color-violet-500, oklch(60.6% .25 292.717))}.bw-tab.pills.indigo span.is-active{border-color:var(--color-indigo-500, oklch(58.5% .233 277.117))}.bw-tab.pills.fuchsia span.is-active{border-color:var(--color-fuchsia-500, oklch(66.7% .295 322.15))}.bw-tab.pills.purple span.is-active{border-color:var(--color-purple-500, oklch(62.7% .265 303.9))}.bw-tab.pills.blue span.is-active{border-color:var(--color-blue-500, oklch(62.3% .214 259.815))}.bw-tab.pills.green span.is-active{border-color:var(--color-green-500, oklch(72.3% .219 149.579))}.bw-side-nav>nav>a{margin-block:calc(var(--spacing, .25rem) * 2);--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-tracking:var(--tracking-wider, .05em);letter-spacing:var(--tracking-wider, .05em);color:color-mix(in oklab,var(--color-white, #fff) 80%,transparent);text-transform:capitalize;display:block}@media(hover:hover){.bw-side-nav>nav>a:hover{cursor:pointer;border-radius:var(--radius-md, .375rem);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}}.bw-side-nav>nav>a.active{border-radius:var(--radius-md, .375rem);background-color:color-mix(in oklab,var(--color-blue-500, oklch(62.3% .214 259.815)) 60%,transparent);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab, var(--color-blue-500, oklch(62.3% .214 259.815)) 60%, transparent);--tw-gradient-to:var(--color-blue-700, oklch(48.8% .243 264.376));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from, #0000) var(--tw-gradient-from-position, 0%), var(--tw-gradient-to, #0000) var(--tw-gradient-to-position, 100%))}@media(hover:hover){.bw-side-nav>nav>a.active:hover{cursor:default}}.bw-side-nav>nav>label{margin-bottom:calc(var(--spacing, .25rem) * 3);margin-left:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading,var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight:var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);--tw-tracking:var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:#fff6;display:block}@supports (color:color-mix(in lab,red,red)){.bw-side-nav>nav>label{color:color-mix(in oklab,var(--color-white, #fff) 40%,transparent)}}.bw-side-nav>nav>label{text-transform:uppercase}.bw-side-nav>nav>a>svg{margin-right:calc(var(--spacing, .25rem) * 4);opacity:.6;display:inline-block}.bw-progress-bar .striped{background-image:linear-gradient(45deg,#ffffff59 25%,#0000 25%,#0000 50%,#ffffff59 50%,#ffffff59 75%,#0000 75%,#0000);background-size:2.5rem 2.5rem}.bw-progress-bar .striped.animated{animation:8s linear infinite move-stripes}@keyframes move-stripes{0%{background-position:0 0}to{background-position:100% 100%}}.bw-shimmer:after{content:"";background:linear-gradient(var(--shimmer-angle,90deg),transparent,var(--shimmer-color,#fff9),transparent);width:150%;height:100%;animation:shimmerAlternate var(--shimmer-duration,1.5s) infinite;animation-direction:var(--shimmer-mode,alternate);position:absolute;top:0;left:-150%}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!relative{position:relative!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.\!top-\[13px\]{top:13px!important}.-top-1{top:calc(var(--spacing) * -1)}.-top-2{top:calc(var(--spacing) * -2)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-auto{top:auto}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-auto{right:auto}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.-left-3{left:calc(var(--spacing) * -3)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-\[31px\]{left:31px}.left-\[46px\]{left:46px}.left-\[58px\]{left:58px}.left-\[79px\]{left:79px}.left-auto{left:auto}.left-full{left:100%}.\!z-20{z-index:20!important}.\!z-50{z-index:50!important}.\!z-\[9999\]{z-index:9999!important}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.clear-both{clear:both}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing) * 0)!important}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.\!mx-0\.5{margin-inline:calc(var(--spacing) * .5)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-0{margin-inline:calc(var(--spacing) * 0)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-8{margin-inline:calc(var(--spacing) * 8)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing) * 0)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-8{margin-block:calc(var(--spacing) * 8)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.\!mt-0\.5{margin-top:calc(var(--spacing) * .5)!important}.\!mt-\[4px\]{margin-top:4px!important}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.-mt-\[2px\]{margin-top:-2px}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.5\!{margin-top:calc(var(--spacing) * .5)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[-2px\]{margin-top:-2px}.mt-\[-2px\]\!{margin-top:-2px!important}.\!-mr-2{margin-right:calc(var(--spacing) * -2)!important}.\!-mr-3{margin-right:calc(var(--spacing) * -3)!important}.\!mr-0{margin-right:calc(var(--spacing) * 0)!important}.\!mr-0\.5{margin-right:calc(var(--spacing) * .5)!important}.\!mr-2\.5{margin-right:calc(var(--spacing) * 2.5)!important}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\!{margin-right:calc(var(--spacing) * -1)!important}.-mr-2\!{margin-right:calc(var(--spacing) * -2)!important}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\!{margin-right:calc(var(--spacing) * 2)!important}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-3\.5{margin-right:calc(var(--spacing) * 3.5)}.mr-6{margin-right:calc(var(--spacing) * 6)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.\!-ml-1{margin-left:calc(var(--spacing) * -1)!important}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.\!-ml-3{margin-left:calc(var(--spacing) * -3)!important}.\!ml-0\.5{margin-left:calc(var(--spacing) * .5)!important}.\!ml-2{margin-left:calc(var(--spacing) * 2)!important}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-2\!{margin-left:calc(var(--spacing) * -2)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[86\/54\]{aspect-ratio:86/54}.\!size-0{width:calc(var(--spacing) * 0)!important;height:calc(var(--spacing) * 0)!important}.\!size-3{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.\!size-5{width:calc(var(--spacing) * 5)!important;height:calc(var(--spacing) * 5)!important}.\!size-6{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.\!size-7{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.\!size-8{width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.\!size-9{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.\!size-10{width:calc(var(--spacing) * 10)!important;height:calc(var(--spacing) * 10)!important}.\!size-12{width:calc(var(--spacing) * 12)!important;height:calc(var(--spacing) * 12)!important}.\!size-14{width:calc(var(--spacing) * 14)!important;height:calc(var(--spacing) * 14)!important}.\!size-16{width:calc(var(--spacing) * 16)!important;height:calc(var(--spacing) * 16)!important}.\!size-\[18px\]{width:18px!important;height:18px!important}.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\!{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\!{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-7\!{width:calc(var(--spacing) * 7)!important;height:calc(var(--spacing) * 7)!important}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9\!{width:calc(var(--spacing) * 9)!important;height:calc(var(--spacing) * 9)!important}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-\[9px\]{width:9px;height:9px}.size-\[16px\]\!{width:16px!important;height:16px!important}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]\!{width:20px!important;height:20px!important}.size-\[22px\]\!{width:22px!important;height:22px!important}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]\!{width:25px!important;height:25px!important}.size-\[29px\]{width:29px;height:29px}.size-\[36px\]{width:36px;height:36px}.size-\[52px\]{width:52px;height:52px}.size-full{width:100%;height:100%}.\!h-2{height:calc(var(--spacing) * 2)!important}.\!h-3{height:calc(var(--spacing) * 3)!important}.\!h-5{height:calc(var(--spacing) * 5)!important}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[calc\(100vh-120px\)\]{max-height:calc(100vh - 120px)}.max-h-full{max-height:100%}.min-h-\[1em\]{min-height:1em}.min-h-\[2rem\]{min-height:2rem}.\!w-2{width:calc(var(--spacing) * 2)!important}.\!w-3{width:calc(var(--spacing) * 3)!important}.\!w-5{width:calc(var(--spacing) * 5)!important}.\!w-auto{width:auto!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-11\/12{width:91.6667%}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-\[2px\]{width:2px}.w-\[4\.5rem\]{width:4.5rem}.w-\[75px\]{width:75px}.w-\[105px\]{width:105px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-initial{flex:0 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-default\!{cursor:default!important}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200\/70>:not(:last-child)){border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){:where(.divide-gray-200\/70>:not(:last-child)){border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}:where(.divide-slate-200\/90>:not(:last-child)){border-color:#e2e8f0e6}@supports (color:color-mix(in lab,red,red)){:where(.divide-slate-200\/90>:not(:last-child)){border-color:color-mix(in oklab,var(--color-slate-200) 90%,transparent)}}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!overflow-hidden{overflow:hidden!important}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.\!rounded-full{border-radius:3.40282e38px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-md{border-top-left-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-2xl{border-bottom-right-radius:var(--radius-2xl);border-bottom-left-radius:var(--radius-2xl)}.rounded-b-3xl{border-bottom-right-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-br-2xl{border-bottom-right-radius:var(--radius-2xl)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-y,.border-y-\[1px\]{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.\!border-gray-200{border-color:var(--color-gray-200)!important}.\!border-primary-500{border-color:var(--color-primary-500)!important}.\!border-red-400{border-color:var(--color-red-400)!important}.\!border-red-500{border-color:var(--color-red-500)!important}.border-black{border-color:var(--color-black)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400) 50%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/50{border-color:color-mix(in oklab,var(--color-blue-500) 50%,transparent)}}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400\/50{border-color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/50{border-color:color-mix(in oklab,var(--color-cyan-400) 50%,transparent)}}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/50{border-color:#00b7d780}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/50{border-color:color-mix(in oklab,var(--color-cyan-500) 50%,transparent)}}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-fuchsia-400\/50{border-color:#ec6cff80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-400\/50{border-color:color-mix(in oklab,var(--color-fuchsia-400) 50%,transparent)}}.border-fuchsia-500{border-color:var(--color-fuchsia-500)}.border-fuchsia-500\/50{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/50{border-color:color-mix(in oklab,var(--color-fuchsia-500) 50%,transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-100\/30{border-color:#f3f4f64d}@supports (color:color-mix(in lab,red,red)){.border-gray-100\/30{border-color:color-mix(in oklab,var(--color-gray-100) 30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-200\/70{border-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.border-gray-200\/70{border-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400\/50{border-color:#99a1af80}@supports (color:color-mix(in lab,red,red)){.border-gray-400\/50{border-color:color-mix(in oklab,var(--color-gray-400) 50%,transparent)}}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/50{border-color:#6a728280}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/50{border-color:color-mix(in oklab,var(--color-gray-500) 50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/50{border-color:#05df7280}@supports (color:color-mix(in lab,red,red)){.border-green-400\/50{border-color:color-mix(in oklab,var(--color-green-400) 50%,transparent)}}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400\/50{border-color:#7d87ff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-400\/50{border-color:color-mix(in oklab,var(--color-indigo-400) 50%,transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-indigo-500\/50{border-color:#625fff80}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/50{border-color:color-mix(in oklab,var(--color-indigo-500) 50%,transparent)}}.border-neutral-200{border-color:var(--color-neutral-200)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab,red,red)){.border-orange-400\/50{border-color:color-mix(in oklab,var(--color-orange-400) 50%,transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.border-pink-200{border-color:var(--color-pink-200)}.border-pink-400\/50{border-color:#fb64b680}@supports (color:color-mix(in lab,red,red)){.border-pink-400\/50{border-color:color-mix(in oklab,var(--color-pink-400) 50%,transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/50{border-color:#f6339a80}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/50{border-color:color-mix(in oklab,var(--color-pink-500) 50%,transparent)}}.border-primary-50{border-color:var(--color-primary-50)}.border-primary-200{border-color:var(--color-primary-200)}.border-primary-400\/50{border-color:#4c9deb80}@supports (color:color-mix(in lab,red,red)){.border-primary-400\/50{border-color:color-mix(in oklab,var(--color-primary-400) 50%,transparent)}}.border-primary-500{border-color:var(--color-primary-500)}.border-primary-500\/50{border-color:#0076d280}@supports (color:color-mix(in lab,red,red)){.border-primary-500\/50{border-color:color-mix(in oklab,var(--color-primary-500) 50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400\/50{border-color:#c07eff80}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/50{border-color:color-mix(in oklab,var(--color-purple-400) 50%,transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/50{border-color:color-mix(in oklab,var(--color-purple-500) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-400\/50{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.border-red-400\/50{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300\/50{border-color:#cad5e280}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/50{border-color:color-mix(in oklab,var(--color-slate-300) 50%,transparent)}}.border-slate-300\/80{border-color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.border-slate-300\/80{border-color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-slate-400\/50{border-color:#90a1b980}@supports (color:color-mix(in lab,red,red)){.border-slate-400\/50{border-color:color-mix(in oklab,var(--color-slate-400) 50%,transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-500\/50{border-color:#62748e80}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/50{border-color:color-mix(in oklab,var(--color-slate-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-violet-400\/50{border-color:#a685ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-400\/50{border-color:color-mix(in oklab,var(--color-violet-400) 50%,transparent)}}.border-violet-500{border-color:var(--color-violet-500)}.border-violet-500\/50{border-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/50{border-color:color-mix(in oklab,var(--color-violet-500) 50%,transparent)}}.border-white{border-color:var(--color-white)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400\/50{border-color:#fac80080}@supports (color:color-mix(in lab,red,red)){.border-yellow-400\/50{border-color:color-mix(in oklab,var(--color-yellow-400) 50%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500) 50%,transparent)}}.border-y-gray-200\/50{border-block-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.border-y-gray-200\/50{border-block-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.border-t-gray-200{border-top-color:var(--color-gray-200)}.border-t-slate-200\/75{border-top-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-t-slate-200\/75{border-top-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-slate-200\/75{border-bottom-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.border-b-slate-200\/75{border-bottom-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.border-b-white{border-bottom-color:var(--color-white)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-fuchsia-500{border-left-color:var(--color-fuchsia-500)}.border-l-gray-500{border-left-color:var(--color-gray-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-indigo-500{border-left-color:var(--color-indigo-500)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-pink-500{border-left-color:var(--color-pink-500)}.border-l-primary-500{border-left-color:var(--color-primary-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.border-l-slate-500{border-left-color:var(--color-slate-500)}.border-l-violet-500{border-left-color:var(--color-violet-500)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-amber-200\/80{background-color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-200\/80{background-color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/70{background-color:#dbeafeb3}@supports (color:color-mix(in lab,red,red)){.bg-blue-100\/70{background-color:color-mix(in oklab,var(--color-blue-100) 70%,transparent)}}.bg-blue-200\/80{background-color:#bedbffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-200\/80{background-color:color-mix(in oklab,var(--color-blue-200) 80%,transparent)}}.bg-blue-300{background-color:var(--color-blue-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\!{background-color:var(--color-blue-500)!important}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-100\/70{background-color:#cefafeb3}@supports (color:color-mix(in lab,red,red)){.bg-cyan-100\/70{background-color:color-mix(in oklab,var(--color-cyan-100) 70%,transparent)}}.bg-cyan-200\/80{background-color:#a2f4fdcc}@supports (color:color-mix(in lab,red,red)){.bg-cyan-200\/80{background-color:color-mix(in oklab,var(--color-cyan-200) 80%,transparent)}}.bg-cyan-300{background-color:var(--color-cyan-300)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\!{background-color:var(--color-cyan-500)!important}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-fuchsia-100\/70{background-color:#fae8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-100\/70{background-color:color-mix(in oklab,var(--color-fuchsia-100) 70%,transparent)}}.bg-fuchsia-200\/80{background-color:#f6cfffcc}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-200\/80{background-color:color-mix(in oklab,var(--color-fuchsia-200) 80%,transparent)}}.bg-fuchsia-300{background-color:var(--color-fuchsia-300)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\!{background-color:var(--color-fuchsia-500)!important}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/60{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/70{background-color:#f3f4f6b3}@supports (color:color-mix(in lab,red,red)){.bg-gray-100\/70{background-color:color-mix(in oklab,var(--color-gray-100) 70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200) 50%,transparent)}}.bg-gray-200\/70{background-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/70{background-color:color-mix(in oklab,var(--color-gray-200) 70%,transparent)}}.bg-gray-200\/80{background-color:#e5e7ebcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/80{background-color:color-mix(in oklab,var(--color-gray-200) 80%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\!{background-color:var(--color-gray-500)!important}.bg-gray-900\/10{background-color:#1018281a}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/10{background-color:color-mix(in oklab,var(--color-gray-900) 10%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-100\/70{background-color:#dcfce7b3}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/70{background-color:color-mix(in oklab,var(--color-green-100) 70%,transparent)}}.bg-green-200\/80{background-color:#b9f8cfcc}@supports (color:color-mix(in lab,red,red)){.bg-green-200\/80{background-color:color-mix(in oklab,var(--color-green-200) 80%,transparent)}}.bg-green-300{background-color:var(--color-green-300)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\!{background-color:var(--color-green-500)!important}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-100\/70{background-color:#e0e7ffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-100\/70{background-color:color-mix(in oklab,var(--color-indigo-100) 70%,transparent)}}.bg-indigo-200\/80{background-color:#c7d2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-indigo-200\/80{background-color:color-mix(in oklab,var(--color-indigo-200) 80%,transparent)}}.bg-indigo-300{background-color:var(--color-indigo-300)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\!{background-color:var(--color-indigo-500)!important}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/70{background-color:#ffedd5b3}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/70{background-color:color-mix(in oklab,var(--color-orange-100) 70%,transparent)}}.bg-orange-200\/80{background-color:#ffd7a8cc}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/80{background-color:color-mix(in oklab,var(--color-orange-200) 80%,transparent)}}.bg-orange-300{background-color:var(--color-orange-300)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\!{background-color:var(--color-orange-500)!important}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-100\/70{background-color:#fce7f3b3}@supports (color:color-mix(in lab,red,red)){.bg-pink-100\/70{background-color:color-mix(in oklab,var(--color-pink-100) 70%,transparent)}}.bg-pink-200\/80{background-color:#fccee8cc}@supports (color:color-mix(in lab,red,red)){.bg-pink-200\/80{background-color:color-mix(in oklab,var(--color-pink-200) 80%,transparent)}}.bg-pink-300{background-color:var(--color-pink-300)}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\!{background-color:var(--color-pink-500)!important}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/70{background-color:#ddedffb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/70{background-color:color-mix(in oklab,var(--color-primary-100) 70%,transparent)}}.bg-primary-200\/70{background-color:#badbfeb3}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/70{background-color:color-mix(in oklab,var(--color-primary-200) 70%,transparent)}}.bg-primary-200\/80{background-color:#badbfecc}@supports (color:color-mix(in lab,red,red)){.bg-primary-200\/80{background-color:color-mix(in oklab,var(--color-primary-200) 80%,transparent)}}.bg-primary-300{background-color:var(--color-primary-300)}.bg-primary-500{background-color:var(--color-primary-500)}.bg-primary-500\!{background-color:var(--color-primary-500)!important}.bg-primary-600{background-color:var(--color-primary-600)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-100\/70{background-color:#f3e8ffb3}@supports (color:color-mix(in lab,red,red)){.bg-purple-100\/70{background-color:color-mix(in oklab,var(--color-purple-100) 70%,transparent)}}.bg-purple-200\/80{background-color:#e9d5ffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-200\/80{background-color:color-mix(in oklab,var(--color-purple-200) 80%,transparent)}}.bg-purple-300{background-color:var(--color-purple-300)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\!{background-color:var(--color-purple-500)!important}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/70{background-color:#ffe2e2b3}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/70{background-color:color-mix(in oklab,var(--color-red-100) 70%,transparent)}}.bg-red-200\/80{background-color:#ffcacacc}@supports (color:color-mix(in lab,red,red)){.bg-red-200\/80{background-color:color-mix(in oklab,var(--color-red-200) 80%,transparent)}}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\!{background-color:var(--color-red-500)!important}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/70{background-color:#f1f5f9b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/70{background-color:color-mix(in oklab,var(--color-slate-100) 70%,transparent)}}.bg-slate-100\/90{background-color:#f1f5f9e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\/90{background-color:color-mix(in oklab,var(--color-slate-100) 90%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\/70{background-color:#e2e8f0b3}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/70{background-color:color-mix(in oklab,var(--color-slate-200) 70%,transparent)}}.bg-slate-200\/80{background-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\/80{background-color:color-mix(in oklab,var(--color-slate-200) 80%,transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-500\!{background-color:var(--color-slate-500)!important}.bg-slate-800\/70{background-color:#1d293db3}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/70{background-color:color-mix(in oklab,var(--color-slate-800) 70%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-100\/70{background-color:#ede9feb3}@supports (color:color-mix(in lab,red,red)){.bg-violet-100\/70{background-color:color-mix(in oklab,var(--color-violet-100) 70%,transparent)}}.bg-violet-200\/80{background-color:#ddd6ffcc}@supports (color:color-mix(in lab,red,red)){.bg-violet-200\/80{background-color:color-mix(in oklab,var(--color-violet-200) 80%,transparent)}}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\!{background-color:var(--color-violet-500)!important}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-100\/70{background-color:#fef9c2b3}@supports (color:color-mix(in lab,red,red)){.bg-yellow-100\/70{background-color:color-mix(in oklab,var(--color-yellow-100) 70%,transparent)}}.bg-yellow-200\/80{background-color:#fff085cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-200\/80{background-color:color-mix(in oklab,var(--color-yellow-200) 80%,transparent)}}.bg-yellow-300{background-color:var(--color-yellow-300)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\!{background-color:var(--color-yellow-500)!important}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-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-primary-500{--tw-gradient-from:var(--color-primary-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-yellow-200{--tw-gradient-from:var(--color-yellow-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))}.to-yellow-500{--tw-gradient-to:var(--color-yellow-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))}.stroke-white{stroke:var(--color-white)}.\!stroke-1{stroke-width:1px!important}.\!stroke-2{stroke-width:2px!important}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.object-cover{object-fit:cover}.object-center{object-position:center}.\!p-0{padding:calc(var(--spacing) * 0)!important}.\!p-0\.5{padding:calc(var(--spacing) * .5)!important}.\!p-5{padding:calc(var(--spacing) * 5)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.\!px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[8px\]{padding-inline:8px}.px-\[12px\]{padding-inline:12px}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.\!py-2\.5{padding-block:calc(var(--spacing) * 2.5)!important}.\!py-5{padding-block:calc(var(--spacing) * 5)!important}.\!py-\[5px\]{padding-block:5px!important}.\!py-\[8\.5px\]{padding-block:8.5px!important}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[2\.5px\]{padding-block:2.5px}.py-\[6\.5px\]{padding-block:6.5px}.py-\[6px\]{padding-block:6px}.py-\[10px\]{padding-block:10px}.py-\[18\.5px\]{padding-block:18.5px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[1px\]{padding-top:1px}.\!pr-0{padding-right:calc(var(--spacing) * 0)!important}.\!pr-1{padding-right:calc(var(--spacing) * 1)!important}.\!pr-3{padding-right:calc(var(--spacing) * 3)!important}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-14{padding-right:calc(var(--spacing) * 14)}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.\!pl-5{padding-left:calc(var(--spacing) * 5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.\!text-center{text-align:center!important}.\!text-right{text-align:right!important}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-left\!{text-align:left!important}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\!{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.\!whitespace-pre-wrap{white-space:pre-wrap!important}.whitespace-nowrap{white-space:nowrap}.\!text-gray-600{color:var(--color-gray-600)!important}.\!text-red-400{color:var(--color-red-400)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-900\/40{color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/40{color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.text-blue-900\/50{color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.text-blue-900\/50{color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.text-cyan-50{color:var(--color-cyan-50)}.text-cyan-600{color:var(--color-cyan-600)}.text-fuchsia-50{color:var(--color-fuchsia-50)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-400\!{color:var(--color-gray-400)!important}.text-gray-500{color:var(--color-gray-500)}.text-gray-500\/90{color:#6a7282e6}@supports (color:color-mix(in lab,red,red)){.text-gray-500\/90{color:color-mix(in oklab,var(--color-gray-500) 90%,transparent)}}.text-gray-600{color:var(--color-gray-600)}.text-gray-600\/80{color:#4a5565cc}@supports (color:color-mix(in lab,red,red)){.text-gray-600\/80{color:color-mix(in oklab,var(--color-gray-600) 80%,transparent)}}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-50{color:var(--color-green-50)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-50{color:var(--color-indigo-50)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-50{color:var(--color-orange-50)}.text-orange-600{color:var(--color-orange-600)}.text-pink-50{color:var(--color-pink-50)}.text-pink-600{color:var(--color-pink-600)}.text-primary-50{color:var(--color-primary-50)}.text-primary-400{color:var(--color-primary-400)}.text-primary-500{color:var(--color-primary-500)}.text-primary-600{color:var(--color-primary-600)}.text-purple-50{color:var(--color-purple-50)}.text-purple-600{color:var(--color-purple-600)}.text-red-50{color:var(--color-red-50)}.text-red-400{color:var(--color-red-400)}.text-red-400\!{color:var(--color-red-400)!important}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-600\!{color:var(--color-red-600)!important}.text-slate-50{color:var(--color-slate-50)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-600\/70{color:#45556cb3}@supports (color:color-mix(in lab,red,red)){.text-slate-600\/70{color:color-mix(in oklab,var(--color-slate-600) 70%,transparent)}}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-violet-50{color:var(--color-violet-50)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.text-yellow-50{color:var(--color-yellow-50)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-transparent::placeholder{color:#0000}.placeholder-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.placeholder-white\/50::placeholder{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.\!opacity-70{opacity:.7!important}.\!opacity-85{opacity:.85!important}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-200\/70{--tw-shadow-color:#e5e7ebb3}@supports (color:color-mix(in lab,red,red)){.shadow-gray-200\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-gray-200) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-gray-400{--tw-shadow-color:oklch(70.7% .022 261.325)}@supports (color:color-mix(in lab,red,red)){.shadow-gray-400{--tw-shadow-color:color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent)}}.shadow-slate-200\/80{--tw-shadow-color:#e2e8f0cc}@supports (color:color-mix(in lab,red,red)){.shadow-slate-200\/80{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-200) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black\/25{--tw-ring-color:#00000040}@supports (color:color-mix(in lab,red,red)){.ring-black\/25{--tw-ring-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.ring-blue-200{--tw-ring-color:var(--color-blue-200)}.ring-cyan-200{--tw-ring-color:var(--color-cyan-200)}.ring-fuchsia-200{--tw-ring-color:var(--color-fuchsia-200)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-green-200{--tw-ring-color:var(--color-green-200)}.ring-indigo-200{--tw-ring-color:var(--color-indigo-200)}.ring-orange-200{--tw-ring-color:var(--color-orange-200)}.ring-pink-200{--tw-ring-color:var(--color-pink-200)}.ring-primary-200{--tw-ring-color:var(--color-primary-200)}.ring-purple-200{--tw-ring-color:var(--color-purple-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-slate-800\/5{--tw-ring-color:#1d293d0d}@supports (color:color-mix(in lab,red,red)){.ring-slate-800\/5{--tw-ring-color:color-mix(in oklab, var(--color-slate-800) 5%, transparent)}}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-yellow-200{--tw-ring-color:var(--color-yellow-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-offset-2{outline-offset:2px}.\!outline-transparent{outline-color:#0000!important}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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,);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,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-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,);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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,);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,)}.backdrop-blur-none{--tw-backdrop-blur: ;-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,);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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,);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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,);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,)}.backdrop-filter{-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,);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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\:bg-black:is(:where(.group):hover *){background-color:var(--color-black)}.group-hover\:bg-blue-500:is(:where(.group):hover *){background-color:var(--color-blue-500)}.group-hover\:bg-cyan-500:is(:where(.group):hover *){background-color:var(--color-cyan-500)}.group-hover\:bg-fuchsia-500:is(:where(.group):hover *){background-color:var(--color-fuchsia-500)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:bg-green-500:is(:where(.group):hover *){background-color:var(--color-green-500)}.group-hover\:bg-indigo-500:is(:where(.group):hover *){background-color:var(--color-indigo-500)}.group-hover\:bg-orange-500:is(:where(.group):hover *){background-color:var(--color-orange-500)}.group-hover\:bg-pink-500:is(:where(.group):hover *){background-color:var(--color-pink-500)}.group-hover\:bg-primary-500:is(:where(.group):hover *){background-color:var(--color-primary-500)}.group-hover\:bg-purple-500:is(:where(.group):hover *){background-color:var(--color-purple-500)}.group-hover\:bg-red-500:is(:where(.group):hover *){background-color:var(--color-red-500)}.group-hover\:bg-slate-500:is(:where(.group):hover *){background-color:var(--color-slate-500)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:bg-yellow-500:is(:where(.group):hover *){background-color:var(--color-yellow-500)}.group-hover\:text-gray-700:is(:where(.group):hover *){color:var(--color-gray-700)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:bg-cyan-600:is(:where(.peer):checked~*){background-color:var(--color-cyan-600)}.peer-checked\:bg-fuchsia-600:is(:where(.peer):checked~*){background-color:var(--color-fuchsia-600)}.peer-checked\:bg-gray-600:is(:where(.peer):checked~*){background-color:var(--color-gray-600)}.peer-checked\:bg-green-600:is(:where(.peer):checked~*){background-color:var(--color-green-600)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:bg-orange-600:is(:where(.peer):checked~*){background-color:var(--color-orange-600)}.peer-checked\:bg-pink-600:is(:where(.peer):checked~*){background-color:var(--color-pink-600)}.peer-checked\:bg-primary-600:is(:where(.peer):checked~*){background-color:var(--color-primary-600)}.peer-checked\:bg-purple-600:is(:where(.peer):checked~*){background-color:var(--color-purple-600)}.peer-checked\:bg-red-600:is(:where(.peer):checked~*){background-color:var(--color-red-600)}.peer-checked\:bg-slate-600:is(:where(.peer):checked~*){background-color:var(--color-slate-600)}.peer-checked\:bg-violet-600:is(:where(.peer):checked~*){background-color:var(--color-violet-600)}.peer-checked\:bg-yellow-600:is(:where(.peer):checked~*){background-color:var(--color-yellow-600)}@media(hover:hover){.peer-hover\:opacity-80:is(:where(.peer):hover~*){opacity:.8}.peer-hover\:opacity-90:is(:where(.peer):hover~*){opacity:.9}}.peer-disabled\:opacity-40:is(:where(.peer):disabled~*){opacity:.4}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-1:after{content:var(--tw-content);inset-inline-start:calc(var(--spacing) * 1)}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:h-8:after{content:var(--tw-content);height:calc(var(--spacing) * 8)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:w-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8)}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border-blue-100:after{content:var(--tw-content);border-color:var(--color-blue-100)}.after\:border-cyan-100:after{content:var(--tw-content);border-color:var(--color-cyan-100)}.after\:border-fuchsia-100:after{content:var(--tw-content);border-color:var(--color-fuchsia-100)}.after\:border-gray-100:after{content:var(--tw-content);border-color:var(--color-gray-100)}.after\:border-green-100:after{content:var(--tw-content);border-color:var(--color-green-100)}.after\:border-indigo-100:after{content:var(--tw-content);border-color:var(--color-indigo-100)}.after\:border-orange-100:after{content:var(--tw-content);border-color:var(--color-orange-100)}.after\:border-pink-100:after{content:var(--tw-content);border-color:var(--color-pink-100)}.after\:border-primary-100:after{content:var(--tw-content);border-color:var(--color-primary-100)}.after\:border-purple-100:after{content:var(--tw-content);border-color:var(--color-purple-100)}.after\:border-red-100:after{content:var(--tw-content);border-color:var(--color-red-100)}.after\:border-slate-100:after{content:var(--tw-content);border-color:var(--color-slate-100)}.after\:border-violet-100:after{content:var(--tw-content);border-color:var(--color-violet-100)}.after\:border-yellow-100:after{content:var(--tw-content);border-color:var(--color-yellow-100)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-1:after{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\:ring-slate-700\/10:after{content:var(--tw-content);--tw-ring-color:#3141581a}@supports (color:color-mix(in lab,red,red)){.after\:ring-slate-700\/10:after{--tw-ring-color:color-mix(in oklab, var(--color-slate-700) 10%, transparent)}}.after\:transition:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-200:after{content:var(--tw-content);--tw-duration:.2s;transition-duration:.2s}.after\:ease-in-out:after{content:var(--tw-content);--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:translate-x-8:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:rounded-t-lg:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.last\:rounded-b-lg:last-child{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:rounded-md:hover{border-radius:var(--radius-md)}.hover\:border:hover{border-style:var(--tw-border-style);border-width:1px}.hover\:\!border-gray-400:hover{border-color:var(--color-gray-400)!important}.hover\:border-blue-500\/80:hover{border-color:#3080ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/80:hover{border-color:color-mix(in oklab,var(--color-blue-500) 80%,transparent)}}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyan-500\/80:hover{border-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-cyan-500\/80:hover{border-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.hover\:border-cyan-600:hover{border-color:var(--color-cyan-600)}.hover\:border-fuchsia-500\/80:hover{border-color:#e12afbcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/80:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500) 80%,transparent)}}.hover\:border-fuchsia-600:hover{border-color:var(--color-fuchsia-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-gray-500\/80:hover{border-color:#6a7282cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-gray-500\/80:hover{border-color:color-mix(in oklab,var(--color-gray-500) 80%,transparent)}}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-green-500\/80:hover{border-color:#00c758cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-green-500\/80:hover{border-color:color-mix(in oklab,var(--color-green-500) 80%,transparent)}}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:border-indigo-500\/80:hover{border-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-indigo-500\/80:hover{border-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.hover\:border-indigo-600:hover{border-color:var(--color-indigo-600)}.hover\:border-neutral-400\/70:hover{border-color:#a1a1a1b3}@supports (color:color-mix(in lab,red,red)){.hover\:border-neutral-400\/70:hover{border-color:color-mix(in oklab,var(--color-neutral-400) 70%,transparent)}}.hover\:border-orange-500\/80:hover{border-color:#fe6e00cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/80:hover{border-color:color-mix(in oklab,var(--color-orange-500) 80%,transparent)}}.hover\:border-orange-600:hover{border-color:var(--color-orange-600)}.hover\:border-pink-500\/80:hover{border-color:#f6339acc}@supports (color:color-mix(in lab,red,red)){.hover\:border-pink-500\/80:hover{border-color:color-mix(in oklab,var(--color-pink-500) 80%,transparent)}}.hover\:border-pink-600:hover{border-color:var(--color-pink-600)}.hover\:border-primary-500\/80:hover{border-color:#0076d2cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary-500\/80:hover{border-color:color-mix(in oklab,var(--color-primary-500) 80%,transparent)}}.hover\:border-primary-600:hover{border-color:var(--color-primary-600)}.hover\:border-purple-500\/80:hover{border-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/80:hover{border-color:color-mix(in oklab,var(--color-purple-500) 80%,transparent)}}.hover\:border-purple-600:hover{border-color:var(--color-purple-600)}.hover\:border-red-500\/80:hover{border-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/80:hover{border-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500\/80:hover{border-color:#62748ecc}@supports (color:color-mix(in lab,red,red)){.hover\:border-slate-500\/80:hover{border-color:color-mix(in oklab,var(--color-slate-500) 80%,transparent)}}.hover\:border-slate-600:hover{border-color:var(--color-slate-600)}.hover\:border-violet-500\/80:hover{border-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.hover\:border-violet-500\/80:hover{border-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-500\/80:hover{border-color:#edb200cc}@supports (color:color-mix(in lab,red,red)){.hover\:border-yellow-500\/80:hover{border-color:color-mix(in oklab,var(--color-yellow-500) 80%,transparent)}}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-black\/60:hover{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/60:hover{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-blue-600\!:hover{background-color:var(--color-blue-600)!important}.hover\:bg-cyan-600:hover{background-color:var(--color-cyan-600)}.hover\:bg-cyan-600\!:hover{background-color:var(--color-cyan-600)!important}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-fuchsia-600\!:hover{background-color:var(--color-fuchsia-600)!important}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-600\!:hover{background-color:var(--color-gray-600)!important}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-green-600\!:hover{background-color:var(--color-green-600)!important}.hover\:bg-indigo-600:hover{background-color:var(--color-indigo-600)}.hover\:bg-indigo-600\!:hover{background-color:var(--color-indigo-600)!important}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-orange-600\!:hover{background-color:var(--color-orange-600)!important}.hover\:bg-pink-600:hover{background-color:var(--color-pink-600)}.hover\:bg-pink-600\!:hover{background-color:var(--color-pink-600)!important}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-primary-600:hover{background-color:var(--color-primary-600)}.hover\:bg-primary-600\!:hover{background-color:var(--color-primary-600)!important}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-purple-600\!:hover{background-color:var(--color-purple-600)!important}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-600\!:hover{background-color:var(--color-red-600)!important}.hover\:bg-slate-200\/75:hover{background-color:#e2e8f0bf}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-200\/75:hover{background-color:color-mix(in oklab,var(--color-slate-200) 75%,transparent)}}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-600\!:hover{background-color:var(--color-slate-600)!important}.hover\:bg-violet-600:hover{background-color:var(--color-violet-600)}.hover\:bg-violet-600\!:hover{background-color:var(--color-violet-600)!important}.hover\:bg-white\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-600\!:hover{background-color:var(--color-yellow-600)!important}.hover\:text-blue-50:hover{color:var(--color-blue-50)}.hover\:text-cyan-50:hover{color:var(--color-cyan-50)}.hover\:text-fuchsia-50:hover{color:var(--color-fuchsia-50)}.hover\:text-gray-50:hover{color:var(--color-gray-50)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-green-50:hover{color:var(--color-green-50)}.hover\:text-indigo-50:hover{color:var(--color-indigo-50)}.hover\:text-orange-50:hover{color:var(--color-orange-50)}.hover\:text-pink-50:hover{color:var(--color-pink-50)}.hover\:text-primary-50:hover{color:var(--color-primary-50)}.hover\:text-primary-500:hover{color:var(--color-primary-500)}.hover\:text-primary-600:hover{color:var(--color-primary-600)}.hover\:text-purple-50:hover{color:var(--color-purple-50)}.hover\:text-red-50:hover{color:var(--color-red-50)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-slate-50:hover{color:var(--color-slate-50)}.hover\:text-slate-500:hover{color:var(--color-slate-500)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-violet-50:hover{color:var(--color-violet-50)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-50:hover{color:var(--color-yellow-50)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-30:hover{opacity:.3}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-black\/5:hover{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/5:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.focus\:\!border-none:focus{--tw-border-style:none!important;border-style:none!important}.focus\:\!border-primary-500:focus{border-color:var(--color-primary-500)!important}.focus\:\!border-primary-600:focus{border-color:var(--color-primary-600)!important}.focus\:border-primary-500:focus{border-color:var(--color-primary-500)}.focus\:opacity-100:focus{opacity:1}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-8:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-black:focus{--tw-ring-color:var(--color-black)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-cyan-500:focus{--tw-ring-color:var(--color-cyan-500)}.focus\:ring-fuchsia-500:focus{--tw-ring-color:var(--color-fuchsia-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-pink-500:focus{--tw-ring-color:var(--color-pink-500)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--color-primary-500)}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-slate-500:focus{--tw-ring-color:var(--color-slate-500)}.focus\:ring-violet-500:focus{--tw-ring-color:var(--color-violet-500)}.focus\:ring-white:focus{--tw-ring-color:var(--color-white)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:\!outline-primary-500:focus{outline-color:var(--color-primary-500)!important}.focus\:\!outline-transparent:focus{outline-color:#0000!important}.focus\:outline-primary-500:focus{outline-color:var(--color-primary-500)}.focus\:\!outline-none:focus{--tw-outline-style:none!important;outline-style:none!important}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary-500:focus-visible{outline-color:var(--color-primary-500)}.active\:border-blue-600:active{border-color:var(--color-blue-600)}.active\:border-cyan-600:active{border-color:var(--color-cyan-600)}.active\:border-fuchsia-600:active{border-color:var(--color-fuchsia-600)}.active\:border-gray-600:active{border-color:var(--color-gray-600)}.active\:border-green-600:active{border-color:var(--color-green-600)}.active\:border-indigo-600:active{border-color:var(--color-indigo-600)}.active\:border-orange-600:active{border-color:var(--color-orange-600)}.active\:border-pink-600:active{border-color:var(--color-pink-600)}.active\:border-primary-600:active{border-color:var(--color-primary-600)}.active\:border-purple-600:active{border-color:var(--color-purple-600)}.active\:border-red-600:active{border-color:var(--color-red-600)}.active\:border-slate-600:active{border-color:var(--color-slate-600)}.active\:border-violet-600:active{border-color:var(--color-violet-600)}.active\:border-yellow-600:active{border-color:var(--color-yellow-600)}.active\:bg-blue-600\!:active{background-color:var(--color-blue-600)!important}.active\:bg-cyan-600\!:active{background-color:var(--color-cyan-600)!important}.active\:bg-fuchsia-600\!:active{background-color:var(--color-fuchsia-600)!important}.active\:bg-gray-600\!:active{background-color:var(--color-gray-600)!important}.active\:bg-green-600\!:active{background-color:var(--color-green-600)!important}.active\:bg-indigo-600\!:active{background-color:var(--color-indigo-600)!important}.active\:bg-orange-600\!:active{background-color:var(--color-orange-600)!important}.active\:bg-pink-600\!:active{background-color:var(--color-pink-600)!important}.active\:bg-primary-600\!:active{background-color:var(--color-primary-600)!important}.active\:bg-purple-600\!:active{background-color:var(--color-purple-600)!important}.active\:bg-red-600\!:active{background-color:var(--color-red-600)!important}.active\:bg-slate-600\!:active{background-color:var(--color-slate-600)!important}.active\:bg-violet-600\!:active{background-color:var(--color-violet-600)!important}.active\:bg-yellow-600\!:active{background-color:var(--color-yellow-600)!important}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:grid{display:grid}.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-1\/6{width:16.6667%}.sm\:w-2\/3{width:66.6667%}.sm\:w-2\/5{width:40%}.sm\:w-11\/12{width:91.6667%}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[60rem\]{width:60rem}.sm\:w-\[86rem\]{width:86rem}.sm\:\!max-w-\[350px\]{max-width:350px!important}.sm\:\!max-w-\[450px\]{max-width:450px!important}.sm\:\!max-w-\[550px\]{max-width:550px!important}.sm\:rotate-0{rotate:0deg}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:px-12{padding-inline:calc(var(--spacing) * 12)}.sm\:py-4{padding-block:calc(var(--spacing) * 4)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:max-h-none{max-height:none}.md\:w-96{width:calc(var(--spacing) * 96)}.md\:overflow-visible{overflow:visible}}@media(min-width:64rem){.lg\:w-1\/3{width:33.3333%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:w-1\/6{width:16.6667%}.lg\:w-2\/3{width:66.6667%}.lg\:w-2\/5{width:40%}.lg\:w-11\/12{width:91.6667%}}.ltr\:right-\[2\.5px\]:where(:dir(ltr),[dir=ltr],[dir=ltr] *){right:2.5px}.ltr\:mr-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){margin-right:calc(var(--spacing) * 2)}.rtl\:\!right-\[unset\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:unset!important}.rtl\:right-\[31px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:31px}.rtl\:right-\[46px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:46px}.rtl\:right-\[58px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:58px}.rtl\:right-\[79px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:79px}.rtl\:\!left-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:calc(var(--spacing) * 0)!important}.rtl\:left-\[2\.5px\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:2.5px}.rtl\:-mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * -2)!important}.rtl\:mr-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-right:calc(var(--spacing) * 2)!important}.rtl\:-ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * -2)!important}.rtl\:ml-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)}.rtl\:ml-2\!:where(:dir(rtl),[dir=rtl],[dir=rtl] *){margin-left:calc(var(--spacing) * 2)!important}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing) * 4)}.rtl\:pl-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing) * 4)}.rtl\:peer-checked\:after\:-translate-x-5:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:peer-checked\:after\:-translate-x-8:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}:where(.dark\:divide-dark-600:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-600)}:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/30:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ccc}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/80:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 80%,transparent)}}:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-dark-600\/90:is(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}:where(.dark\:divide-dark-700:is(.dark,.dark *)>:not(:last-child)){border-color:var(--color-dark-700)}.dark\:border:is(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r-0:is(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:0}.dark\:border-l-0:is(.dark,.dark *){border-left-style:var(--tw-border-style);border-left-width:0}.dark\:\!border-dark-400:is(.dark,.dark *){border-color:var(--color-dark-400)!important}.dark\:\!border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)!important}.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:#4a4e531a}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/10:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 10%,transparent)}}.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:#4a4e53cc}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-500\/80:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-500) 80%,transparent)}}.dark\:border-dark-600:is(.dark,.dark *){border-color:var(--color-dark-600)}.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:#33373c4d}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/30:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 30%,transparent)}}.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:#33373c99}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/60:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 60%,transparent)}}.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:#33373ce6}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-600\/90:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-600) 90%,transparent)}}.dark\:border-dark-700:is(.dark,.dark *){border-color:var(--color-dark-700)}.dark\:border-dark-800:is(.dark,.dark *){border-color:var(--color-dark-800)}.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:#1c1f2433}@supports (color:color-mix(in lab,red,red)){.dark\:border-dark-800\/20:is(.dark,.dark *){border-color:color-mix(in oklab,var(--color-dark-800) 20%,transparent)}}.dark\:border-primary-500:is(.dark,.dark *){border-color:var(--color-primary-500)}.dark\:border-slate-500:is(.dark,.dark *){border-color:var(--color-slate-500)}.dark\:border-slate-600:is(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-transparent:is(.dark,.dark *){border-color:#0000}.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:border-y-dark-500\/50:is(.dark,.dark *){border-block-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:#33373c80}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-dark-600\/50:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-dark-600) 50%,transparent)}}.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:#1e293966!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-t-gray-800\/40\!:is(.dark,.dark *){border-top-color:color-mix(in oklab,var(--color-gray-800) 40%,transparent)!important}}.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:#f3f4f61a}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)}}.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:#f3f4f61a!important}@supports (color:color-mix(in lab,red,red)){.dark\:border-b-gray-100\/10\!:is(.dark,.dark *){border-bottom-color:color-mix(in oklab,var(--color-gray-100) 10%,transparent)!important}}.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:#10111499!important}@supports (color:color-mix(in lab,red,red)){.dark\:\!bg-dark-900\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 60%,transparent)!important}}.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-blue-600:is(.dark,.dark *){background-color:var(--color-blue-600)}.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.dark\:bg-cyan-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.dark\:bg-cyan-600:is(.dark,.dark *){background-color:var(--color-cyan-600)}.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:#f0f1f280}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-100\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-100) 50%,transparent)}}.dark\:bg-dark-500:is(.dark,.dark *){background-color:var(--color-dark-500)}.dark\:bg-dark-600:is(.dark,.dark *){background-color:var(--color-dark-600)}.dark\:bg-dark-700:is(.dark,.dark *){background-color:var(--color-dark-700)}.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:#262a2fe6}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-700\/90:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-700) 90%,transparent)}}.dark\:bg-dark-800:is(.dark,.dark *){background-color:var(--color-dark-800)}.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:#1c1f2440}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/25:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 25%,transparent)}}.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:#1c1f244d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/30:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 30%,transparent)}}.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:#1c1f2466}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/40:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 40%,transparent)}}.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:#1c1f2480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 50%,transparent)}}.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/60:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/70:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 70%,transparent)}}.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:#1c1f24f2}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-800\/95:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-800) 95%,transparent)}}.dark\:bg-dark-900:is(.dark,.dark *){background-color:var(--color-dark-900)}.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:#10111480}@supports (color:color-mix(in lab,red,red)){.dark\:bg-dark-900\/50:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-dark-900) 50%,transparent)}}.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-fuchsia-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.dark\:bg-fuchsia-600:is(.dark,.dark *){background-color:var(--color-fuchsia-600)}.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:#6a728226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-500) 15%,transparent)}}.dark\:bg-gray-600:is(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-green-600:is(.dark,.dark *){background-color:var(--color-green-600)}.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-indigo-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.dark\:bg-indigo-600:is(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.dark\:bg-orange-600:is(.dark,.dark *){background-color:var(--color-orange-600)}.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-pink-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.dark\:bg-pink-600:is(.dark,.dark *){background-color:var(--color-pink-600)}.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:#0076d21a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/10:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 10%,transparent)}}.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:#0076d226}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-500) 15%,transparent)}}.dark\:bg-primary-600:is(.dark,.dark *){background-color:var(--color-primary-600)}.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:bg-purple-600:is(.dark,.dark *){background-color:var(--color-purple-600)}.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-600:is(.dark,.dark *){background-color:var(--color-red-600)}.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.dark\:bg-slate-600:is(.dark,.dark *){background-color:var(--color-slate-600)}.dark\:bg-transparent:is(.dark,.dark *){background-color:#0000}.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.dark\:bg-violet-600:is(.dark,.dark *){background-color:var(--color-violet-600)}.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:#edb20026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-500\/15:is(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-500) 15%,transparent)}}.dark\:bg-yellow-600:is(.dark,.dark *){background-color:var(--color-yellow-600)}.dark\:\!text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)!important}.dark\:\!text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)!important}.dark\:text-amber-300:is(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-300:is(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-300\!:is(.dark,.dark *){color:var(--color-blue-300)!important}.dark\:text-blue-400:is(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:is(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-cyan-100:is(.dark,.dark *){color:var(--color-cyan-100)}.dark\:text-cyan-300:is(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-300\!:is(.dark,.dark *){color:var(--color-cyan-300)!important}.dark\:text-cyan-400:is(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-dark-100:is(.dark,.dark *){color:var(--color-dark-100)}.dark\:text-dark-200:is(.dark,.dark *){color:var(--color-dark-200)}.dark\:text-dark-300:is(.dark,.dark *){color:var(--color-dark-300)}.dark\:text-dark-300\/70:is(.dark,.dark *){color:#a7aaadb3}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-300\/70:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-300) 70%,transparent)}}.dark\:text-dark-400:is(.dark,.dark *){color:var(--color-dark-400)}.dark\:text-dark-400\/60:is(.dark,.dark *){color:#6c707599}@supports (color:color-mix(in lab,red,red)){.dark\:text-dark-400\/60:is(.dark,.dark *){color:color-mix(in oklab,var(--color-dark-400) 60%,transparent)}}.dark\:text-dark-500:is(.dark,.dark *){color:var(--color-dark-500)}.dark\:text-dark-500\!:is(.dark,.dark *){color:var(--color-dark-500)!important}.dark\:text-dark-600:is(.dark,.dark *){color:var(--color-dark-600)}.dark\:text-fuchsia-100:is(.dark,.dark *){color:var(--color-fuchsia-100)}.dark\:text-fuchsia-300:is(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-fuchsia-300\!:is(.dark,.dark *){color:var(--color-fuchsia-300)!important}.dark\:text-fuchsia-400:is(.dark,.dark *){color:var(--color-fuchsia-400)}.dark\:text-gray-300:is(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark,.dark *){color:var(--color-green-100)}.dark\:text-green-300:is(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-300\!:is(.dark,.dark *){color:var(--color-green-300)!important}.dark\:text-green-400:is(.dark,.dark *){color:var(--color-green-400)}.dark\:text-green-500:is(.dark,.dark *){color:var(--color-green-500)}.dark\:text-green-700:is(.dark,.dark *){color:var(--color-green-700)}.dark\:text-indigo-100:is(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-300:is(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-300\!:is(.dark,.dark *){color:var(--color-indigo-300)!important}.dark\:text-indigo-400:is(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-orange-100:is(.dark,.dark *){color:var(--color-orange-100)}.dark\:text-orange-300:is(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-300\!:is(.dark,.dark *){color:var(--color-orange-300)!important}.dark\:text-orange-400:is(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-pink-100:is(.dark,.dark *){color:var(--color-pink-100)}.dark\:text-pink-300:is(.dark,.dark *){color:var(--color-pink-300)}.dark\:text-pink-300\!:is(.dark,.dark *){color:var(--color-pink-300)!important}.dark\:text-pink-400:is(.dark,.dark *){color:var(--color-pink-400)}.dark\:text-primary-100:is(.dark,.dark *){color:var(--color-primary-100)}.dark\:text-primary-300:is(.dark,.dark *){color:var(--color-primary-300)}.dark\:text-primary-300\!:is(.dark,.dark *){color:var(--color-primary-300)!important}.dark\:text-primary-400:is(.dark,.dark *){color:var(--color-primary-400)}.dark\:text-purple-100:is(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-300:is(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-300\!:is(.dark,.dark *){color:var(--color-purple-300)!important}.dark\:text-purple-400:is(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-red-100:is(.dark,.dark *){color:var(--color-red-100)}.dark\:text-red-300:is(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-300\!:is(.dark,.dark *){color:var(--color-red-300)!important}.dark\:text-red-400:is(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-400\!:is(.dark,.dark *){color:var(--color-red-400)!important}.dark\:text-red-500:is(.dark,.dark *){color:var(--color-red-500)}.dark\:text-slate-100:is(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:is(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-300:is(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-300\!:is(.dark,.dark *){color:var(--color-slate-300)!important}.dark\:text-slate-400:is(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:is(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-violet-100:is(.dark,.dark *){color:var(--color-violet-100)}.dark\:text-violet-300:is(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-300\!:is(.dark,.dark *){color:var(--color-violet-300)!important}.dark\:text-violet-400:is(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-white:is(.dark,.dark *){color:var(--color-white)}.dark\:text-white\/80:is(.dark,.dark *){color:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:text-white\/80:is(.dark,.dark *){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.dark\:text-yellow-100:is(.dark,.dark *){color:var(--color-yellow-100)}.dark\:text-yellow-300:is(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-300\!:is(.dark,.dark *){color:var(--color-yellow-300)!important}.dark\:text-yellow-400:is(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:is(.dark,.dark *){color:var(--color-yellow-500)}.dark\:placeholder-dark-500:is(.dark,.dark *)::placeholder{color:var(--color-dark-500)}.dark\:placeholder-transparent:is(.dark,.dark *)::placeholder{color:#0000}.dark\:opacity-30:is(.dark,.dark *){opacity:.3}.dark\:shadow-md:is(.dark,.dark *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-none:is(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:ring-0:is(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:#1c1f24b3}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-800\/70:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-800) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:#0a0b0d33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-dark-950\/20:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-dark-950) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-slate-800\/50:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-800) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:#4a4e5340}@supports (color:color-mix(in lab,red,red)){.dark\:ring-dark-500\/25:is(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-dark-500) 25%, transparent)}}.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:ring-offset-dark-500\/50:is(.dark,.dark *){--tw-ring-offset-color:color-mix(in oklab, var(--color-dark-500) 50%, transparent)}}.dark\:\!outline-primary-500:is(.dark,.dark *){outline-color:var(--color-primary-500)!important}.dark\:invert:is(.dark,.dark *){--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(hover:hover){.dark\:group-hover\:text-slate-300:is(.dark,.dark *):is(:where(.group):hover *){color:var(--color-slate-300)}}.dark\:peer-focus\:pt-1:is(.dark,.dark *):is(:where(.peer):focus~*){padding-top:calc(var(--spacing) * 1)}.dark\:after\:bg-dark-400:is(.dark,.dark *):after{content:var(--tw-content);background-color:var(--color-dark-400)}@media(hover:hover){.dark\:hover\:\!border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)!important}.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:#6c7075b3}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-400\/70:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-400) 70%,transparent)}}.dark\:hover\:border-dark-500:is(.dark,.dark *):hover{border-color:var(--color-dark-500)}.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:#4a4e5380}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-dark-500\/50:is(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-dark-500) 50%,transparent)}}.dark\:hover\:\!bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)!important}.dark\:hover\:bg-dark-600:is(.dark,.dark *):hover{background-color:var(--color-dark-600)}.dark\:hover\:bg-dark-800:is(.dark,.dark *):hover{background-color:var(--color-dark-800)}.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:#1c1f2499}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-dark-800\/60:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-dark-800) 60%,transparent)}}.dark\:hover\:bg-dark-900:is(.dark,.dark *):hover{background-color:var(--color-dark-900)}.dark\:hover\:bg-dark-950:is(.dark,.dark *):hover{background-color:var(--color-dark-950)}.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-green-900\/20:is(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-green-900) 20%,transparent)}}.hover\:dark\:bg-dark-800\!:hover:is(.dark,.dark *){background-color:var(--color-dark-800)!important}.dark\:hover\:text-dark-100:is(.dark,.dark *):hover{color:var(--color-dark-100)}.dark\:hover\:text-dark-200:is(.dark,.dark *):hover{color:var(--color-dark-200)}.dark\:hover\:text-dark-300:is(.dark,.dark *):hover{color:var(--color-dark-300)}.dark\:hover\:text-dark-400:is(.dark,.dark *):hover{color:var(--color-dark-400)}.dark\:hover\:text-dark-400\!:is(.dark,.dark *):hover{color:var(--color-dark-400)!important}.dark\:hover\:text-dark-700:is(.dark,.dark *):hover{color:var(--color-dark-700)}.dark\:hover\:text-primary-400:is(.dark,.dark *):hover{color:var(--color-primary-400)}.hover\:dark\:text-dark-100:hover:is(.dark,.dark *){color:var(--color-dark-100)}.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:#101114}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:shadow-dark-900:hover:is(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-dark-900) var(--tw-shadow-alpha), transparent)}}}.dark\:focus\:\!border-primary-500:is(.dark,.dark *):focus{border-color:var(--color-primary-500)!important}.dark\:focus\:\!outline-primary-500:is(.dark,.dark *):focus{outline-color:var(--color-primary-500)!important}.bw-input-group.attached :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-radius:0}.bw-input-group.attached>:first-child,.bw-input-group.attached>:first-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-left-radius:var(--radius-md, .375rem);border-bottom-left-radius:var(--radius-md, .375rem)}.bw-input-group.attached>:last-child,.bw-input-group.attached>:last-child :is(.bw-input,.bw-textarea,.bw-button,.bw-select div.clickable){border-top-right-radius:var(--radius-md, .375rem);border-bottom-right-radius:var(--radius-md, .375rem)}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media(prefers-reduced-motion:reduce),print{.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scaleX(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleX(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scaleX(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scaleX(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scaleX(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translateZ(0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translateZ(0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translateZ(0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translateZ(0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(-1turn)}40%{animation-timing-function:ease-out;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translateZ(0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scaleX(1)translateZ(0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translateZ(0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translateZ(0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translateZ(0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translateZ(0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translateZ(0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translateZ(0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translateZ(0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}.bw-sidebar-desktop-host{min-width:0;display:none}.bw-sidebar{color:#334155;background:#fff;border:1px solid #e2e8f0;flex-direction:column;width:18rem;min-width:0;max-width:100%;transition:width .2s;display:flex;overflow:hidden}.bw-sidebar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-sidebar-height-full{height:100%;max-height:100dvh}.bw-sidebar-height-content{max-height:100dvh}.bw-sidebar-header,.bw-sidebar-footer{z-index:2;background:inherit;flex:none;position:sticky}.bw-sidebar-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;min-height:4rem;padding:.875rem;display:flex;top:0}.bw-sidebar-footer{border-top:1px solid #e2e8f0;padding:.875rem;bottom:0}:is(.bw-sidebar-header,.bw-sidebar-footer):is(.dark,.dark *){border-color:#4a4e53bf}.bw-sidebar-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-navigation{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow:hidden auto}.bw-sidebar-list,.bw-sidebar-group-list{margin:0;padding:0;list-style:none}.bw-sidebar-list{flex-direction:column;gap:.25rem;display:flex}.bw-sidebar-group{min-width:0}.bw-sidebar-item-action,.bw-sidebar-group-trigger{color:#475569;text-align:start;border-radius:.5rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}:is(.bw-sidebar-item-action,.bw-sidebar-group-trigger):is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-item-action:hover,.bw-sidebar-group-trigger:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-item-action:focus-visible,.bw-sidebar-group-trigger:focus-visible,.bw-sidebar-collapse-control:focus-visible,.bw-sidebar-mobile-close:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-sidebar-item[data-active=true]>.bw-sidebar-item-action:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-sidebar-item[data-disabled=true]>.bw-sidebar-item-action,.bw-sidebar-group[data-disabled=true]>.bw-sidebar-group-trigger{cursor:not-allowed;opacity:.5}.bw-sidebar-icon{flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-sidebar-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-sidebar-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-sidebar-item-label,.bw-sidebar-item-description{display:block}.bw-sidebar-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.25rem}.bw-sidebar-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-sidebar-badge{color:#475569;background:#e2e8f0;border-radius:9999px;flex:none;padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.bw-sidebar-badge:is(.dark,.dark *){background:var(--color-dark-500, #4a4e53);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-external{opacity:.65;flex:none}.bw-sidebar-group-label{overflow-wrap:anywhere;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:.75rem;font-weight:700}.bw-sidebar-group-chevron{flex:none;transition:transform .15s}.bw-sidebar-group[data-expanded=true]>.bw-sidebar-group-trigger .bw-sidebar-group-chevron{transform:rotate(180deg)}.bw-sidebar-group-panel{min-width:0}.bw-sidebar-group-list{flex-direction:column;gap:.125rem;padding-block:.25rem;display:flex}.bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:2.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:3.25rem}.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline-start:4.25rem}.bw-sidebar-collapse-control,.bw-sidebar-mobile-close{color:#64748b;border-radius:.375rem;flex:none;place-items:center;width:2rem;height:2rem;display:grid}.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover{color:#0f172a;background:#f1f5f9}:is(.bw-sidebar-collapse-control:hover,.bw-sidebar-mobile-close:hover):is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-sidebar-mobile-close{display:grid}.bw-sidebar[data-state=collapsed]{width:4.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:none}.bw-sidebar[data-state=collapsed] .bw-sidebar-header{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-navigation{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:center;padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-item-action,.bw-sidebar[data-state=collapsed] .bw-sidebar-group-list .bw-sidebar-group-trigger{padding-inline:.5rem}.bw-sidebar[data-state=collapsed] .bw-sidebar-collapse-control svg{transform:rotate(180deg)}.bw-sidebar-drawer .bw-drawer-body{min-height:0;padding:0;overflow:hidden}.bw-sidebar-mobile-host{height:100%;min-height:0}.bw-sidebar-mobile-host>.bw-sidebar{border:0;width:100%;height:100%;max-height:none}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed]{width:100%}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-header-content,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-footer,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-copy,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-badge,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-external,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-label,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-chevron{display:initial}.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-item-action,.bw-sidebar-mobile-host>.bw-sidebar[data-state=collapsed] .bw-sidebar-group-trigger{justify-content:flex-start;padding:.625rem .75rem}.bw-sidebar-mobile-host>.bw-sidebar .bw-sidebar-collapse-control{display:none}@media(min-width:1024px){.bw-sidebar-desktop-host{display:block}.bw-sidebar-mobile-close{display:none}}@media(prefers-reduced-motion:reduce){.bw-sidebar,.bw-sidebar-item-action,.bw-sidebar-group-trigger,.bw-sidebar-group-chevron{scroll-behavior:auto;transition-duration:.01ms}}.bw-command-palette{z-index:60;pointer-events:none;justify-content:center;align-items:flex-start;padding:10vh 1rem 2rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.bw-command-palette[hidden]{display:none}.bw-command-palette-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:auto;background:#020617b3;transition:opacity .2s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-command-palette[data-state=open] .bw-command-palette-backdrop{opacity:1}.bw-command-palette-panel{color:#1f2937;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:1.5rem;flex-direction:column;width:100%;max-width:34rem;max-height:70vh;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;transform:translateY(-.5rem)scale(.98);box-shadow:0 25px 50px -12px #02061740}.bw-command-palette-panel:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette[data-state=open] .bw-command-palette-panel{opacity:1;transform:translateY(0)scale(1)}.bw-command-palette-tiny .bw-command-palette-panel{max-width:24rem}.bw-command-palette-small .bw-command-palette-panel{max-width:28rem}.bw-command-palette-medium .bw-command-palette-panel{max-width:34rem}.bw-command-palette-big .bw-command-palette-panel{max-width:40rem}.bw-command-palette-large .bw-command-palette-panel{max-width:48rem}.bw-command-palette-xl .bw-command-palette-panel{max-width:56rem}.bw-command-palette-omg .bw-command-palette-panel{max-width:calc(100% - 2rem)}.bw-command-palette-search{border-bottom:1px solid #e2e8f0;flex:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.bw-command-palette-search:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-search-icon{color:#94a3b8;flex:none}.bw-command-palette-input{min-width:0;min-height:2.5rem;color:inherit;box-shadow:none;background:0 0;border:0;outline:none;flex:1;font-size:1rem;line-height:1.5rem}.bw-command-palette-input::placeholder{color:#94a3b8}.bw-command-palette-close{color:#64748b;background:#f1f5f9;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;transition:background-color .15s,color .15s;display:grid}.bw-command-palette-close:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-close:hover{color:#0f172a;background:#e2e8f0}.bw-command-palette-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-close:focus-visible,.bw-command-palette-item:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-command-palette-results{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:.75rem;overflow-y:auto}.bw-command-palette-group+.bw-command-palette-group{margin-top:.5rem}.bw-command-palette-group[hidden]{display:none}.bw-command-palette-group-label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .75rem .25rem;font-size:.6875rem;font-weight:700}.bw-command-palette-group-label:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-group-items{flex-direction:column;gap:.125rem;display:flex}.bw-command-palette-item{color:#334155;text-align:start;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.75rem .875rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.bw-command-palette-item:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-command-palette-item[hidden]{display:none}.bw-command-palette-item[data-highlighted=true]{background:var(--color-primary-50, oklch(97% .01 250));color:var(--color-primary-700, oklch(40% .19 250))}.bw-command-palette-item[data-highlighted=true]:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#4755698c}.bw-command-palette-item[aria-disabled=true]{cursor:not-allowed;opacity:.5}.bw-command-palette-item-icon{color:#64748b;flex:none;place-items:center;width:1.25rem;height:1.25rem;display:grid}.bw-command-palette-item[data-highlighted=true] .bw-command-palette-item-icon{color:inherit}.bw-command-palette-item-icon-dot{opacity:.6;background:currentColor;border-radius:9999px;width:.375rem;height:.375rem}.bw-command-palette-item-copy{overflow-wrap:anywhere;flex:1;min-width:0}.bw-command-palette-item-label,.bw-command-palette-item-description{display:block}.bw-command-palette-item-description{color:#64748b;margin-top:.125rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-item-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-item-shortcut{flex:none;gap:.25rem;display:flex}.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.3125rem;justify-content:center;align-items:center;min-width:1.25rem;padding:.0625rem .375rem;font-family:inherit;font-size:.6875rem;display:inline-flex}:is(.bw-command-palette-item-shortcut kbd,.bw-command-palette-hint kbd):is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-command-palette-item-external{opacity:.65;flex:none}.bw-command-palette-empty,.bw-command-palette-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:12rem;padding:1.5rem;display:flex}.bw-command-palette-empty[hidden],.bw-command-palette-loading[hidden]{display:none}.bw-command-palette-empty-icon{color:#94a3b8;background:#f1f5f9;border-radius:1rem;place-items:center;width:3rem;height:3rem;display:grid}.bw-command-palette-empty-icon:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-300, #a7aaad)}.bw-command-palette-empty-title{color:#1e293b;margin-top:1rem;font-size:.875rem;font-weight:600}.bw-command-palette-empty-title:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-command-palette-empty-description{color:#64748b;margin-top:.25rem;font-size:.75rem;line-height:1.25rem}.bw-command-palette-empty-description:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading{color:#64748b;font-size:.75rem}.bw-command-palette-loading:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-command-palette-loading-icon{color:#94a3b8;animation:1s linear infinite bw-command-palette-spin}.bw-command-palette-loading p{margin-top:.75rem}@keyframes bw-command-palette-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bw-command-palette-loading-icon{animation-duration:2.4s}}.bw-command-palette-footer{border-top:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.bw-command-palette-footer:is(.dark,.dark *){border-color:#4a4e53bf}.bw-command-palette-hints{flex-wrap:wrap;gap:.875rem;display:flex}.bw-command-palette-hint{color:#64748b;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.bw-command-palette-hint:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}@media(max-width:639px){.bw-command-palette{padding:4vh .75rem 1.5rem}.bw-command-palette-panel,.bw-command-palette-tiny .bw-command-palette-panel,.bw-command-palette-small .bw-command-palette-panel,.bw-command-palette-medium .bw-command-palette-panel,.bw-command-palette-big .bw-command-palette-panel,.bw-command-palette-large .bw-command-palette-panel,.bw-command-palette-xl .bw-command-palette-panel,.bw-command-palette-omg .bw-command-palette-panel{max-width:100%;max-height:85vh}}@media(prefers-reduced-motion:reduce){.bw-command-palette-backdrop,.bw-command-palette-panel{transition-duration:.01ms}}.bw-data-grid{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.bw-data-grid:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-toolbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem .875rem;display:flex}.bw-data-grid-toolbar:is(.dark,.dark *){border-color:#4a4e53bf}.bw-data-grid-search{flex:1;min-width:12rem;max-width:22rem;position:relative}.bw-data-grid-search-input.bw-input{width:100%;padding-left:3rem}.bw-data-grid-search-prefix{z-index:20;color:#1e3a8a80;pointer-events:none;inset-block:0;align-items:center;padding-left:.875rem;padding-right:.5rem;display:inline-flex;position:absolute;left:0}.bw-data-grid-search-prefix:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-toolbar-content{flex-wrap:wrap;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-selection-bar{background:var(--color-primary-50, oklch(97% .01 250));border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-selection-bar:is(.dark,.dark *){background:#4755694d;border-color:#4a4e53bf}.bw-data-grid-selection-count{color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-data-grid-selection-count:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2)}.bw-data-grid-clear-selection{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;cursor:pointer;text-decoration:underline}.bw-data-grid-clear-selection:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-data-grid-bulk-actions{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.bw-data-grid-scroll{min-height:0;overflow:auto}.bw-data-grid-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.875rem}.bw-data-grid-table thead th{color:#475569;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.625rem .875rem;font-size:.75rem;font-weight:600}.bw-data-grid-table thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-700, #262a2f);border-color:#4a4e53bf}.bw-data-grid-sticky .bw-data-grid-table thead th{z-index:1;position:sticky;top:0}.bw-data-grid-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;align-items:center;gap:.25rem;display:inline-flex}.bw-data-grid-sort-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-sort-icons{opacity:.35;flex-direction:column;gap:0;display:inline-flex}.bw-data-grid-sort-icon-asc{margin-bottom:-.3rem}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icons,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icons{opacity:1}.bw-data-grid-sort-button[data-direction=asc] .bw-data-grid-sort-icon-desc,.bw-data-grid-sort-button[data-direction=desc] .bw-data-grid-sort-icon-asc{opacity:.25}.bw-data-grid-table tbody td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.75rem .875rem}.bw-data-grid-table tbody td:is(.dark,.dark *){border-color:#4a4e5366}.bw-data-grid-table tbody tr:last-child td,.bw-data-grid-table tbody tr:not([hidden]):not(:has(~tr:not([hidden]))) td{border-bottom:0}.bw-data-grid-table tbody tr[hidden]{display:none}.bw-data-grid-table tbody tr:hover td{background:#f8fafc}.bw-data-grid-table tbody tr:hover td:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td{background:var(--color-primary-50, oklch(97% .01 250))}.bw-data-grid-table tbody tr.bw-data-grid-row-selected td:is(.dark,.dark *){background:#4755694d}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td{background:#f8fafc99}.bw-data-grid-striped .bw-data-grid-table tbody tr:nth-child(2n) td:is(.dark,.dark *){background:#262a2f99}.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td{border-right:1px solid #e2e8f0}:is(.bw-data-grid-bordered .bw-data-grid-table th,.bw-data-grid-bordered .bw-data-grid-table td):is(.dark,.dark *){border-right-color:#4a4e5366}.bw-data-grid-bordered .bw-data-grid-table th:last-child,.bw-data-grid-bordered .bw-data-grid-table td:last-child{border-right:0}.bw-data-grid-dense .bw-data-grid-table th,.bw-data-grid-dense .bw-data-grid-table td{padding-block:.375rem}.bw-data-grid-table th.bw-data-grid-align-center,.bw-data-grid-table td.bw-data-grid-align-center{text-align:center}.bw-data-grid-table th.bw-data-grid-align-right,.bw-data-grid-table td.bw-data-grid-align-right{text-align:right}.bw-data-grid-table th.bw-data-grid-align-center .bw-data-grid-sort-button{justify-content:center;width:100%}.bw-data-grid-table th.bw-data-grid-align-right .bw-data-grid-sort-button{justify-content:flex-end;width:100%}.bw-data-grid-table th.bw-data-grid-select-col,.bw-data-grid-table td.bw-data-grid-select-col{text-align:center;width:2.75rem;padding-inline:.5rem}.bw-data-grid-select-col input{vertical-align:middle}.bw-data-grid-checkbox{color:var(--color-primary-600, oklch(47% .2 250));cursor:pointer;border-width:2px;border-color:#94a3b899}.bw-data-grid-checkbox:is(.dark,.dark *){background-color:var(--color-dark-700, #262a2f);border-color:#64748b80}.bw-data-grid-checkbox[type=checkbox]{border-radius:.25rem}.bw-data-grid-checkbox[type=radio]{border-radius:100%}.bw-data-grid-checkbox:focus,.bw-data-grid-checkbox:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-data-grid-pagination{color:#64748b;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.bw-data-grid-pagination:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);border-color:#4a4e53bf}.bw-data-grid-pagination[hidden]{display:none}.bw-data-grid-pagination-controls{align-items:center;gap:.625rem;display:flex}.bw-data-grid-pagination-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-data-grid-pagination-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-data-grid-pagination-button:not(:disabled):hover{background:#f8fafc}.bw-data-grid-pagination-button:not(:disabled):hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-data-grid-pagination-button:disabled{cursor:not-allowed;opacity:.4}.bw-data-grid-pagination-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-data-grid-empty-row td{color:#64748b;text-align:center;padding:2.5rem 1rem}.bw-data-grid-empty-row td:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-data-grid-loading-overlay{display:none}.bw-data-grid[data-loading=true] .bw-data-grid-table tbody{opacity:.5;pointer-events:none}.bw-data-grid[data-loading=true] .bw-data-grid-scroll{position:relative}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:before{content:"";background:var(--color-primary-100, oklch(94% .03 250));z-index:2;inset-inline:0;height:2px;position:absolute;top:0;overflow:hidden}.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));z-index:2;inset-block-start:0;width:30%;height:2px;animation:1.1s ease-in-out infinite bw-data-grid-loading;position:absolute;left:-30%}.bw-data-grid[data-loading=true] .bw-data-grid-loading-overlay{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes bw-data-grid-loading{0%{left:-30%}to{left:100%}}@media(prefers-reduced-motion:reduce){.bw-data-grid[data-loading=true] .bw-data-grid-scroll:after{opacity:.6;width:100%;animation:none;left:0}}.bw-calendar{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.bw-calendar:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .875rem;display:flex}.bw-calendar-header:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-title{font-size:.9375rem;font-weight:600}.bw-calendar-nav{align-items:center;gap:.5rem;display:flex}.bw-calendar-view-switch{border:1px solid #e2e8f0;border-radius:.375rem;align-items:center;gap:.125rem;margin-inline-end:.25rem;padding:.125rem;display:flex}.bw-calendar-view-switch:is(.dark,.dark *){border-color:#4a4e53bf}.bw-calendar-view-button{color:#64748b;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.bw-calendar-view-button:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-view-button[aria-pressed=true]{background:var(--color-primary-500, oklch(56% .18 250));color:#fff}.bw-calendar-view-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-today-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500}.bw-calendar-today-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-today-button:hover{background:#f8fafc}.bw-calendar-today-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-nav-button{color:#475569;border:1px solid #e2e8f0;border-radius:.375rem;place-items:center;width:1.75rem;height:1.75rem;display:grid}.bw-calendar-nav-button:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53bf}.bw-calendar-nav-button:hover{background:#f8fafc}.bw-calendar-nav-button:hover:is(.dark,.dark *){background:var(--color-dark-700, #262a2f)}.bw-calendar-today-button:focus-visible,.bw-calendar-nav-button:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:2px}.bw-calendar-scroll{min-height:0;overflow-y:auto}.bw-calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.8125rem}.bw-calendar-grid thead th{color:#64748b;letter-spacing:.02em;text-align:center;text-transform:uppercase;background:#fff;border-bottom:1px solid #e2e8f0;padding:.5rem .25rem;font-size:.6875rem;font-weight:600}.bw-calendar-grid thead th:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad);background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-scroll .bw-calendar-grid thead th{z-index:2;position:sticky;top:0}.bw-calendar-week-number-header,.bw-calendar-week-number{color:#94a3b8;text-align:center;width:2.25rem;font-size:.6875rem}.bw-calendar-cell{vertical-align:top;border:1px solid #f1f5f9;width:14.2857%;min-width:0;padding:.375rem;position:relative}.bw-calendar-cell:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-cell:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px;z-index:1}.bw-calendar-cell-inner{flex-direction:column;height:5.5rem;display:flex;overflow:hidden}.bw-calendar-cell-date{border-radius:9999px;justify-content:center;align-items:center;min-width:1.375rem;height:1.375rem;font-size:.8125rem;display:inline-flex}.bw-calendar-cell-today .bw-calendar-cell-date{background:var(--color-primary-100, oklch(94% .03 250));color:var(--color-primary-700, oklch(40% .19 250));font-weight:600}.bw-calendar-cell-today .bw-calendar-cell-date:is(.dark,.dark *){color:var(--color-dark-100, #f0f1f2);background:#47556980}.bw-calendar-cell-selected{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-cell-selected:is(.dark,.dark *){background:#4755694d}.bw-calendar-cell-selected .bw-calendar-cell-date{background:var(--color-primary-500, oklch(56% .18 250));color:#fff;font-weight:600}.bw-calendar-cell-outside .bw-calendar-cell-date,.bw-calendar-cell-outside{color:#94a3b8}.bw-calendar-cell-outside:is(.dark,.dark *){color:var(--color-dark-400, #6c7075)}.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-cell-events{flex-direction:column;flex:auto;gap:.125rem;min-height:0;margin-top:.1875rem;display:flex;overflow-y:auto}.bw-calendar-cell-events>.bw-calendar-event,.bw-calendar-cell-events>.bw-calendar-event-more{flex-shrink:0}.bw-calendar-event{text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;padding:0 .375rem;font-size:.6875rem;line-height:1.3;display:block;overflow:hidden}a.bw-calendar-event,button.bw-calendar-event{cursor:pointer}.bw-calendar-event:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-event-info{color:#1e40af;background:#dbeafe}.bw-calendar-event-info:is(.dark,.dark *){color:#bfdbfe;background:#1e40af59}.bw-calendar-event-success{color:#166534;background:#dcfce7}.bw-calendar-event-success:is(.dark,.dark *){color:#bbf7d0;background:#16653459}.bw-calendar-event-warning{color:#854d0e;background:#fef9c3}.bw-calendar-event-warning:is(.dark,.dark *){color:#fef08a;background:#854d0e59}.bw-calendar-event-danger{color:#991b1b;background:#fee2e2}.bw-calendar-event-danger:is(.dark,.dark *){color:#fecaca;background:#991b1b59}.bw-calendar-event-more{text-align:left;color:var(--color-primary-600, oklch(47% .2 250));padding:0 .375rem;font-size:.6875rem;font-weight:600;line-height:1.3;display:block}.bw-calendar-event-more:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-more:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:1px}.bw-calendar-week{flex-direction:column;min-width:40rem;display:flex}.bw-calendar-week-header-row{grid-template-columns:3.5rem repeat(var(--bw-calendar-week-days,7),1fr);z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;display:grid;position:sticky;top:0}.bw-calendar-week-header-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-gutter{color:#94a3b8;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;padding-bottom:.375rem;font-size:.625rem;display:flex}.bw-calendar-week-gutter:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-header{flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;display:flex}.bw-calendar-week-day-header:focus-visible{outline:2px solid var(--color-primary-500, oklch(56% .18 250));outline-offset:-2px}.bw-calendar-week-day-name{letter-spacing:.02em;text-transform:uppercase;color:#64748b;font-size:.625rem;font-weight:600}.bw-calendar-week-day-name:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-week-day-header.bw-calendar-cell-disabled{cursor:not-allowed;opacity:.55}.bw-calendar-week-allday-row{z-index:3;background:#fff;border-bottom:1px solid #e2e8f0;grid-template-columns:3.5rem 1fr;display:grid;position:sticky;top:2.9rem}.bw-calendar-week-allday-row:is(.dark,.dark *){background:var(--color-dark-800, #1c1f24);border-color:#4a4e53bf}.bw-calendar-week-allday-label{text-transform:uppercase;letter-spacing:.02em;align-items:flex-start;padding-top:.375rem;font-size:.625rem}.bw-calendar-week-allday-track{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);grid-auto-rows:1.5rem;gap:.1875rem;padding:.1875rem;display:grid}.bw-calendar-week-allday-banner{align-self:start;padding:.0625rem .5rem}.bw-calendar-week-body{grid-template-columns:3.5rem 1fr;display:grid;position:relative}.bw-calendar-week-hours{border-right:1px solid #e2e8f0;position:relative}.bw-calendar-week-hours:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-hour-label{color:#94a3b8;white-space:nowrap;font-size:.625rem;position:absolute;right:.375rem;transform:translateY(-50%)}.bw-calendar-week-days{grid-template-columns:repeat(var(--bw-calendar-week-days,7),1fr);display:grid;position:relative}.bw-calendar-week-day-column{border-right:1px solid #f1f5f9;position:relative}.bw-calendar-week-day-column:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-day-column:last-child{border-right:0}.bw-calendar-week-day-column-today{background:var(--color-primary-50, oklch(97% .01 250))}.bw-calendar-week-day-column-today:is(.dark,.dark *){background:#47556926}.bw-calendar-week-hour-line{border-top:1px solid #f1f5f9;position:absolute;left:0;right:0}.bw-calendar-week-hour-line:is(.dark,.dark *){border-color:#4a4e5366}.bw-calendar-week-timed-event{white-space:normal;border-radius:.25rem;flex-direction:column;gap:.0625rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.bw-calendar-week-timed-event-time{opacity:.8;font-size:.625rem}.bw-calendar-week-timed-event-label{text-overflow:ellipsis;overflow:hidden}.bw-calendar-event-drawer-title{font-size:1.0625rem;font-weight:600}.bw-calendar-event-drawer-eyebrow{align-items:center;gap:.5rem;margin-top:.625rem;display:flex}.bw-calendar-event-drawer-dot{background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.5rem;height:.5rem}.bw-calendar-event-drawer-dot.bw-calendar-event-info{background:#1e40af}.bw-calendar-event-drawer-dot.bw-calendar-event-success{background:#166534}.bw-calendar-event-drawer-dot.bw-calendar-event-warning{background:#854d0e}.bw-calendar-event-drawer-dot.bw-calendar-event-danger{background:#991b1b}.bw-calendar-event-drawer-date{letter-spacing:.01em;color:#64748b;font-size:.75rem;font-weight:600}.bw-calendar-event-drawer-date:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time{color:#64748b;margin-top:.25rem;font-size:.8125rem}.bw-calendar-event-drawer-time:is(.dark,.dark *){color:var(--color-dark-300, #a7aaad)}.bw-calendar-event-drawer-time:empty{display:none}.bw-calendar-event-drawer-description{color:#475569;white-space:pre-line;margin-top:.75rem;font-size:.875rem;line-height:1.5}.bw-calendar-event-drawer-description:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}.bw-calendar-event-drawer-description:empty{display:none}.bw-calendar-event-drawer-link{color:var(--color-primary-600, oklch(47% .2 250));text-underline-offset:2px;align-items:center;margin-top:1.25rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.bw-calendar-event-drawer-link:is(.dark,.dark *){color:var(--color-dark-200, #d2d4d7)}@media(max-width:640px){.bw-calendar-cell-inner{height:3.75rem}.bw-calendar-cell{padding:.25rem}.bw-calendar-event{display:none}.bw-calendar-cell-events{align-items:center}.bw-calendar-cell:has(.bw-calendar-cell-events) .bw-calendar-cell-date:after{content:"";background:var(--color-primary-500, oklch(56% .18 250));border-radius:9999px;width:.25rem;height:.25rem;margin:.125rem auto 0;display:block}}[data-tooltip]{position:relative}[data-tooltip]:before{pointer-events:none;content:"";z-index:2;background:#fff;width:.714286em;height:.714286em;font-size:1rem;position:absolute;transform:rotate(45deg);box-shadow:1px 1px #bababc}[data-tooltip]:after{pointer-events:none;content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;color:#000000de;z-index:1;background:#fff;border:1px solid #d4d4d5;border-radius:.285714rem;max-width:none;padding:.433em .533em;font-size:.9rem;font-style:normal;font-weight:400;line-height:1.4285em;position:absolute;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}[data-tooltip]:not([data-position]):before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-tooltip]:not([data-position]):after{margin-bottom:.5em;bottom:100%;left:50%;transform:translate(-50%)}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform-origin:top;transition:all .1s;transform:rotate(45deg)scale(0)!important}[data-tooltip]:after{opacity:1;transform-origin:bottom;transition:all .1s}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{opacity:1;transform:rotate(45deg)scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translate(-50%)scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translate(-50%)scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%)scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%)scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{background:#1b1c1d;-webkit-box-shadow:none!important;box-shadow:none!important}[data-tooltip][data-inverted]:after{color:#fff;-webkit-box-shadow:none;box-shadow:none;zoom:90%;background:#1b1c1d;border:none}[data-position="top center"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 50%;transform:translate(-50%)}[data-position="top center"][data-tooltip]:before{background:#fff;margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 50%}[data-position="top left"][data-tooltip]:after{margin-bottom:.5em;inset:auto auto 100% 0}[data-position="top left"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto auto 100% 1em}[data-position="top right"][data-tooltip]:after{margin-bottom:.5em;inset:auto 0 100% auto}[data-position="top right"][data-tooltip]:before{margin-bottom:.142857rem;margin-left:-.0714286rem;inset:auto 1em 100% auto}[data-position="bottom center"][data-tooltip]:after{margin-top:.5em;inset:100% auto auto 50%;transform:translate(-50%)}[data-position="bottom center"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 50%}[data-position="bottom left"][data-tooltip]:after{margin-top:.5em;top:100%;left:0}[data-position="bottom left"][data-tooltip]:before{margin-top:.142857rem;margin-left:-.0714286rem;inset:100% auto auto 1em}[data-position="bottom right"][data-tooltip]:after{margin-top:.5em;top:100%;right:0}[data-position="bottom right"][data-tooltip]:before{margin-top:.0714286rem;margin-left:-.142857rem;inset:100% 1em auto auto}[data-position="left center"][data-tooltip]:after{margin-right:.5em;top:50%;right:100%;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{margin-top:-.142857rem;margin-right:-.0714286rem;top:50%;right:100%}[data-position="right center"][data-tooltip]:after{margin-left:.5em;top:50%;left:100%;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{margin-top:-.0714286rem;margin-left:.142857rem;top:50%;left:100%}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:bottom}[data-position~=bottom][data-tooltip]:after,[data-position="left center"][data-tooltip]:before{transform-origin:top}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:100%}[data-position="right center"][data-tooltip]:after{transform-origin:0}.bw-tooltip-js [data-tooltip]:before,.bw-tooltip-js [data-tooltip]:after{content:none;display:none}.bw-tooltip-bubble{z-index:9999;pointer-events:none;opacity:0;text-align:left;text-transform:none;white-space:normal;color:#000000de;border:1px solid var(--color-dark-200, #d2d4d7);background:#fff;border-radius:.285714rem;width:max-content;max-width:20rem;font-style:normal;font-weight:400;line-height:1.4285em;transition:opacity .12s;position:fixed;box-shadow:0 2px 4px #2224261f,0 2px 10px #22242626}.bw-tooltip-bubble[data-open="1"]{opacity:1}.bw-tooltip-bubble:after{content:"";background:inherit;border:inherit;width:.5rem;height:.5rem;position:absolute;transform:rotate(45deg)}.bw-tooltip-bubble[data-side=top]:after{border-top:0;border-left:0;margin-left:-.25rem;bottom:-.29rem;left:50%}.bw-tooltip-bubble[data-side=bottom]:after{border-bottom:0;border-right:0;margin-left:-.25rem;top:-.29rem;left:50%}.bw-tooltip-bubble[data-side=left]:after{border-bottom:0;border-left:0;margin-top:-.25rem;top:50%;right:-.29rem}.bw-tooltip-bubble[data-side=right]:after{border-top:0;border-right:0;margin-top:-.25rem;top:50%;left:-.29rem}.bw-tooltip-bubble[data-inverted="1"]{background:var(--color-dark-800, #1c1f24);color:#fff;border-color:var(--color-dark-800, #1c1f24);box-shadow:none}.bw-tooltip-bubble[data-size=tiny]{padding:.2em .35em;font-size:.7rem}.bw-tooltip-bubble[data-size=small]{padding:.433em .533em;font-size:.9rem}.bw-tooltip-bubble[data-size=regular]{padding:.5em .65em;font-size:1rem}.bw-drawer{z-index:50;pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0}.bw-drawer[hidden]{display:none}.bw-drawer[data-contained=true]{position:absolute}.bw-drawer-backdrop{opacity:0;pointer-events:auto;background:#00000073;transition:opacity .25s;position:absolute;top:0;right:0;bottom:0;left:0}.bw-drawer-panel{pointer-events:auto;color:#1f2937;background:#fff;flex-direction:column;max-width:100vw;max-height:100vh;transition:transform .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 25px 50px -12px #0000004d}.bw-drawer-panel:is(.dark,.dark *){background:var(--color-dark-700, #262a2f);color:var(--color-dark-200, #d2d4d7);border-color:#4a4e53a6}.bw-drawer[data-state=open] .bw-drawer-backdrop{opacity:1}.bw-drawer[data-position=left] .bw-drawer-panel{inset-block:0;border-right:1px solid #e5e7eb;left:0;transform:translate(-100%)}.bw-drawer[data-position=right] .bw-drawer-panel{inset-block:0;border-left:1px solid #e5e7eb;right:0;transform:translate(100%)}.bw-drawer[data-position=top] .bw-drawer-panel{inset-inline:0;border-bottom:1px solid #e5e7eb;top:0;transform:translateY(-100%)}.bw-drawer[data-position=bottom] .bw-drawer-panel{inset-inline:0;border-top:1px solid #e5e7eb;bottom:0;transform:translateY(100%)}.bw-drawer[data-state=open] .bw-drawer-panel{transform:translate(0)}.bw-drawer[data-position=left][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=tiny] .bw-drawer-panel{width:18rem}.bw-drawer[data-position=left][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=small] .bw-drawer-panel{width:20rem}.bw-drawer[data-position=left][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=medium] .bw-drawer-panel{width:24rem}.bw-drawer[data-position=left][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=big] .bw-drawer-panel{width:32rem}.bw-drawer[data-position=left][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=large] .bw-drawer-panel{width:40rem}.bw-drawer[data-position=left][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=xl] .bw-drawer-panel{width:48rem}.bw-drawer[data-position=left][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=right][data-size=omg] .bw-drawer-panel{width:100%}.bw-drawer[data-position=top][data-size=tiny] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=tiny] .bw-drawer-panel{height:12rem}.bw-drawer[data-position=top][data-size=small] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=small] .bw-drawer-panel{height:16rem}.bw-drawer[data-position=top][data-size=medium] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=medium] .bw-drawer-panel{height:24rem}.bw-drawer[data-position=top][data-size=big] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=big] .bw-drawer-panel{height:32rem}.bw-drawer[data-position=top][data-size=large] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=large] .bw-drawer-panel{height:40rem}.bw-drawer[data-position=top][data-size=xl] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=xl] .bw-drawer-panel{height:48rem}.bw-drawer[data-position=top][data-size=omg] .bw-drawer-panel,.bw-drawer[data-position=bottom][data-size=omg] .bw-drawer-panel{height:100%}.bw-drawer-header{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem;display:flex}:is(.bw-drawer-header,.bw-drawer-footer):is(.dark,.dark *){border-color:#4a4e53a6}.bw-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:1.5rem;overflow-y:auto}.bw-drawer-footer{border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.bw-drawer-close{color:#6b7280;border-radius:9999px;flex:none;place-items:center;width:2rem;height:2rem;margin-inline-start:auto;display:grid}.bw-drawer-close:hover{color:#1f2937;background:#f3f4f6}.bw-drawer-close:hover:is(.dark,.dark *){background:var(--color-dark-600, #33373c);color:var(--color-dark-100, #f0f1f2)}@media(max-width:639px){.bw-drawer[data-position=left] .bw-drawer-panel,.bw-drawer[data-position=right] .bw-drawer-panel{width:min(100%,24rem)}}@media(prefers-reduced-motion:reduce){.bw-drawer-backdrop,.bw-drawer-panel{transition-duration:.01ms}}@keyframes shimmerAlternate{0%{left:calc(-150% * var(--shimmer-direction,1))}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} From 6a728ba26dc18d49cab50427ee290eeb5d3ff7d8 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 04:00:22 +0000 Subject: [PATCH 32/44] Remove Confirm Dialog component docs --- mcp/confirm-dialog.md | 82 --------- mcp/index.md | 1 - .../views/docs/components-list.blade.php | 1 - resources/views/docs/components.blade.php | 1 - resources/views/docs/confirm-dialog.blade.php | 156 ------------------ routes/web.php | 1 - 6 files changed, 242 deletions(-) delete mode 100644 mcp/confirm-dialog.md delete mode 100644 resources/views/docs/confirm-dialog.blade.php diff --git a/mcp/confirm-dialog.md b/mcp/confirm-dialog.md deleted file mode 100644 index 635758be..00000000 --- a/mcp/confirm-dialog.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Confirm Dialog Component -component: x-bladewind::confirm-dialog -url: /component/confirm-dialog ---- - -# Confirm Dialog - -A purpose-built confirmation modal for destructive or consequential actions — deleting a record, cancelling a -subscription, discarding unsaved work. It composes `x-bladewind::modal` rather than duplicating it, and adds a tone -that picks a sensible icon and confirm colour, a backdrop that will not dismiss it by accident, and an async pending -state for the confirm action itself. - -## Basic Usage - -```blade - - This will permanently remove the user and everything associated with their account. This cannot be undone. - -Delete user -``` - -Like Modal, a confirm dialog is opened by name with the `showModal()` helper — give it a unique `name` and call -`showModal('name')` from anywhere on the page. - -## Tone - -`tone` picks the icon and the confirm button's colour in one attribute: `danger` (default, for destructive actions), -`warning`, `info`, or `primary` (no icon, the button's default colour — for a consequential but non-destructive -confirmation). - -```blade - - Your changes have not been saved yet. - -``` - -## An async confirm action - -Pass `onConfirm` as a raw JavaScript expression, wrapped internally in a function that may return a `Promise`. While -that promise is pending, both buttons disable and the confirm button shows a spinner. Resolving it closes the dialog; -rejecting it re-enables the buttons and leaves the dialog open, so you can surface your own error state before the -user retries. - -```blade - - This will permanently remove the user. This cannot be undone. - - - -``` - -Set `close-after-confirm="false"` if you would rather close the dialog yourself — for example from inside the -`onConfirm` promise's own `.then()`, after also updating the rest of the page. - -## Backdrop - -Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default — a destructive action should be -explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set `backdrop-can-close="true"` to -restore Modal's usual behaviour. - -## Attributes - -| Attribute | Default | Description | -|---|---|---| -| name | _(auto-generated)_ | Unique identifier used by `showModal()` / `hideModal()`. | -| title | Are you sure? | Dialog heading. | -| tone | danger | `danger` \| `warning` \| `info` \| `primary` | -| confirmLabel | Confirm | Label on the confirm button. | -| cancelLabel | Cancel | Label on the cancel button. | -| onConfirm | _(blank)_ | Raw JS expression run on confirm, wrapped in a function that may return a Promise. Blank makes Confirm a plain close. | -| closeAfterConfirm | true | Close the dialog once `onConfirm`'s promise resolves. | -| backdropCanClose | false | Unlike Modal, defaults to false. | -| size | small | Any Modal size: `tiny` \| `small` \| `medium` \| `big` \| `large` \| `xl` \| `omg` | -| icon | _(blank)_ | Overrides the icon `tone` would otherwise pick, using any Heroicons name. | diff --git a/mcp/index.md b/mcp/index.md index 595d278b..662fca49 100644 --- a/mcp/index.md +++ b/mcp/index.md @@ -57,7 +57,6 @@ Start here for installation, configuration, and theming. | Inline Edit | `x-bladewind::inline-edit` | [inline-edit.md](inline-edit.md) | | List View | `x-bladewind::list-view` | [list-view.md](list-view.md) | | Modal | `x-bladewind::modal` | [modal.md](modal.md) | -| Confirm Dialog | `x-bladewind::confirm-dialog` | [confirm-dialog.md](confirm-dialog.md) | | Notification | `x-bladewind::notification` | [notification.md](notification.md) | | Number | `x-bladewind::number` | [number.md](number.md) | | Currency Input | `x-bladewind::currency-input` | [currency-input.md](currency-input.md) | diff --git a/resources/views/docs/components-list.blade.php b/resources/views/docs/components-list.blade.php index 4f9d4198..c9bcc2e3 100644 --- a/resources/views/docs/components-list.blade.php +++ b/resources/views/docs/components-list.blade.php @@ -18,7 +18,6 @@ - diff --git a/resources/views/docs/components.blade.php b/resources/views/docs/components.blade.php index 1dbfb678..a2e7f7f2 100644 --- a/resources/views/docs/components.blade.php +++ b/resources/views/docs/components.blade.php @@ -92,7 +92,6 @@ ['Sidebar', 'sidebar', 'Build responsive application navigation with nested groups and mobile Drawer presentation.'], ['Command Palette', 'command-palette', 'Launch actions from a searchable, keyboard-first dialog.'], ['Modal', 'modal', 'Focus attention on confirmations, forms and details.'], - ['Confirm Dialog', 'confirm-dialog', 'Gate destructive actions with a tone-aware, async-ready confirmation.'], ['Popover', 'popover', 'Reveal contextual content beside a trigger.'], ['Process Indicator', 'process-indicator', 'Show progress through a multi-step workflow.'], ['Stepper', 'stepper', 'Guide users through named linear or non-linear workflows.'], diff --git a/resources/views/docs/confirm-dialog.blade.php b/resources/views/docs/confirm-dialog.blade.php deleted file mode 100644 index 31ce6027..00000000 --- a/resources/views/docs/confirm-dialog.blade.php +++ /dev/null @@ -1,156 +0,0 @@ - - Confirm Dialog Component - Confirm Dialog - -

- A purpose-built confirmation modal for destructive or consequential actions: deleting a record, cancelling a - subscription, discarding unsaved work. It composes Modal rather than - duplicating it, and adds what a plain modal does not: a tone that picks a sensible icon and confirm colour for - you, a backdrop that will not dismiss it by accident, and an async pending state for the confirm action - itself. -

- - - This will permanently remove the user and everything associated with their account. This cannot be undone. - - Delete user - -
-        
-            <x-bladewind::confirm-dialog name="deleteUser" title="Delete this user?">
-                This will permanently remove the user and everything associated with their account. This cannot be undone.
-            </x-bladewind::confirm-dialog>
-            <x-bladewind::button onclick="showModal('deleteUser')">Delete user</x-bladewind::button>
-        
-    
-

- Like Modal, a confirm dialog is opened by name with the showModal() helper: give - it a unique name and call showModal('name') from - anywhere on the page. -

- -

Tone

-

- tone picks the icon and the confirm button's colour in one attribute: - danger (default, for destructive actions), warning, - info, or primary (no icon, the button's default - colour, for a consequential but non-destructive confirmation). -

- -
-        
-            <x-bladewind::confirm-dialog name="leavePage" tone="warning" title="Leave without saving?">
-                Your changes have not been saved yet.
-            </x-bladewind::confirm-dialog>
-        
-    
- -

An async confirm action

-

- Pass onConfirm as a raw JavaScript expression, wrapped internally in a function - that may return a Promise. While that promise is pending, both buttons disable - and the confirm button shows a spinner. Resolving it closes the dialog; rejecting it re-enables the buttons - and leaves the dialog open, so you can surface your own error state before the user retries. -

- -
-        
-            <x-bladewind::confirm-dialog
-                name="deleteUser"
-                title="Delete this user?"
-                onConfirm="deleteUser(:userId)">
-                This will permanently remove the user. This cannot be undone.
-            </x-bladewind::confirm-dialog>
-
-            <script>
-                function deleteUser(id) {
-                    return fetch(`/users/${id}`, { method: 'DELETE' });
-                }
-            </script>
-        
-    
-

- Set close-after-confirm="false" if you would rather close the dialog yourself, - for example from inside the onConfirm promise's own .then(), - after also updating the rest of the page. -

- -

Backdrop

-

- Unlike a plain Modal, the backdrop cannot dismiss a confirm dialog by default: a destructive action should be - explicitly confirmed or cancelled, not accidentally dismissed by a stray click. Set - backdrop-can-close="true" to restore Modal's usual behaviour. -

- -

Full List Of Attributes

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/routes/web.php b/routes/web.php index 8b88466b..fc35ae9c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -52,7 +52,6 @@ Route::view('component/input-group', 'docs/input-group'); Route::view('component/list-view', 'docs/list'); Route::view('component/modal', 'docs/modal'); -Route::view('component/confirm-dialog', 'docs/confirm-dialog'); Route::view('component/notification', 'docs/notification'); Route::view('component/number', 'docs/number'); Route::view('component/currency-input', 'docs/currency-input'); From 273ae80a21aaf05fc748323b99ad3245148dfda0 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 04:03:33 +0000 Subject: [PATCH 33/44] Republish helpers.js after Confirm Dialog and Banner removal Confirm Dialog and Banner were removed from the component library (duplicated Modal/Alert); republishing drops their now-dead JS helpers. --- public/vendor/bladewind/js/helpers.js | 39 --------------------------- 1 file changed, 39 deletions(-) diff --git a/public/vendor/bladewind/js/helpers.js b/public/vendor/bladewind/js/helpers.js index ef04b31d..bc3a6f7c 100644 --- a/public/vendor/bladewind/js/helpers.js +++ b/public/vendor/bladewind/js/helpers.js @@ -536,44 +536,6 @@ const hideModalActionButtons = (element) => { hide(`.bw-${element} .modal-footer`); }; -/** - * Run a confirm dialog's confirm action, showing a spinner and disabling both - * buttons for as long as it is pending. A rejection re-enables the buttons and - * leaves the dialog open, so a consumer can surface its own error state before - * the user retries. - * @param {string} name - The confirm dialog's name. - * @param {function} action - Runs on confirm; its return value is passed - * through Promise.resolve(), so a plain (non-async) function is fine too. - * @param {boolean} closeAfter - Close the dialog once action resolves. - * @return {void} - * @see {@link https://bladewindui.com/component/confirm-dialog} - */ -const runBwConfirmDialogAction = (name, action, closeAfter = true) => { - const confirmButton = domEl(`.bw-${name}-confirm`); - const cancelButton = domEl(`.bw-${name}-cancel`); - - if (confirmButton) confirmButton.disabled = true; - if (cancelButton) cancelButton.disabled = true; - showButtonSpinner(`.bw-${name}-confirm`); - - const resetButtons = () => { - if (confirmButton) confirmButton.disabled = false; - if (cancelButton) cancelButton.disabled = false; - hideButtonSpinner(`.bw-${name}-confirm`); - }; - - Promise.resolve() - .then(action) - .then(() => { - resetButtons(); - if (closeAfter) hideModal(name); - }) - .catch((error) => { - resetButtons(); - console.error(error); - }); -}; - /** * Alias for unhide(). * @see {@link https://bladewindui.com/extra/helper-functions#show} @@ -3429,7 +3391,6 @@ Object.assign(window, { hideButtonSpinner, showModalActionButtons, hideModalActionButtons, - runBwConfirmDialogAction, show, addToStorage, getFromStorage, From fccc486640bfbf7e8df03bed3359b7b698f034b3 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 04:29:51 +0000 Subject: [PATCH 34/44] Fix context-menu demo boxes not being right-clickable on their padding The dashed demo box was a plain wrapper div around a small inline-block region containing just the label text, so only the text itself responded to a right-click. Moving the box styling onto the region content itself makes the whole visible box the actual clickable area. --- resources/views/docs/context-menu.blade.php | 52 ++++++++++----------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/resources/views/docs/context-menu.blade.php b/resources/views/docs/context-menu.blade.php index e7355a8a..3af1af0e 100644 --- a/resources/views/docs/context-menu.blade.php +++ b/resources/views/docs/context-menu.blade.php @@ -10,18 +10,16 @@ submenu) flips away from whichever edge it would otherwise overflow.

-
- - -
Right-click anywhere in this box
-
- - Edit - Duplicate - - Delete -
-
+ + +
Right-click anywhere in this box
+
+ + Edit + Duplicate + + Delete +
         
@@ -71,22 +69,20 @@
         open submenu and returns focus to its parent item.
     

-
- - -
Right-click for a submenu
-
- - - New - - File - Folder - - - Rename -
-
+ + +
Right-click for a submenu
+
+ + + New + + File + Folder + + + Rename +
         

From c9cb0eeb880996665178073f2244d7aff5bd9c12 Mon Sep 17 00:00:00 2001
From: "Michael K. Ocansey" 
Date: Sun, 6 Sep 2026 04:46:14 +0000
Subject: [PATCH 35/44] Fix copy-button demo using wrong install command

Was npm install bladewindui (wrong package manager and name); this is a
Composer package.
---
 resources/views/docs/copy-button.blade.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/resources/views/docs/copy-button.blade.php b/resources/views/docs/copy-button.blade.php
index 99b46501..b526a067 100644
--- a/resources/views/docs/copy-button.blade.php
+++ b/resources/views/docs/copy-button.blade.php
@@ -9,12 +9,12 @@
     

- npm install bladewindui + composer require bladewindui/ui
         
-            <x-bladewind::copy-button>npm install bladewindui</x-bladewind::copy-button>
+            <x-bladewind::copy-button>composer require bladewindui/ui</x-bladewind::copy-button>
         
     

From 37d16f1690e9b4fdf4117c1e7f35f8d24d9621fd Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 05:00:00 +0000 Subject: [PATCH 36/44] Add JavaScript API section to Credit Card docs Credit Card exposes a named window instance (unlike the other new components, which don't), with value, validate(), toggleFlip() and isFlipped(). Only validate() was documented before, and only in passing prose. Follows the same JavaScript API section convention used by Dropmenu, Modal, Calendar, etc. --- resources/views/docs/credit-card.blade.php | 54 +++++++++++++++++++--- 1 file changed, 47 insertions(+), 7 deletions(-) diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php index 714e7e41..51d75743 100644 --- a/resources/views/docs/credit-card.blade.php +++ b/resources/views/docs/credit-card.blade.php @@ -17,10 +17,10 @@

Basic Usage

- +
         
-            <x-bladewind::credit-card cardholder_name="Emma Reid"></x-bladewind::credit-card>
+            <x-bladewind::credit-card cardholder_name="Jane T. Doe"></x-bladewind::credit-card>
         
     
@@ -44,7 +44,7 @@ as-is for an edit screen rather than reformatted.

<x-bladewind::credit-card - cardholder_name="Emma Reid" + cardholder_name="Jane T. Doe" number="4242424242424242" expiry_month="07" expiry_year="28"> @@ -74,7 +74,7 @@

Theming

Set color to any colour in the palette to change the gradient.

- +
         
             <x-bladewind::credit-card color="green"></x-bladewind::credit-card>
@@ -82,10 +82,10 @@
     

Set variant="outline" for a bare card silhouette instead of the full-colour gradient face.

- +
         
-            <x-bladewind::credit-card variant="outline" cardholder_name="Emma Reid"></x-bladewind::credit-card>
+            <x-bladewind::credit-card variant="outline" cardholder_name="Jane T. Doe"></x-bladewind::credit-card>
         
     
@@ -217,6 +217,45 @@ +

JavaScript API

+

+ Each card creates a BladewindCreditCard instance assigned to a variable named + after the component's name, so it can be read or called directly + from your own scripts. If you set name yourself, use only letters, + numbers, and underscores, since hyphens are not valid in a JavaScript identifier. The auto-generated default + already does this for you. +

+ +
+ + + + + + + + + + + + + + + + + +
checkout_card.value;
+checkout_card.validate();
+checkout_card.toggleFlip();
+checkout_card.isFlipped();
+ The source file for this component is available in resources > views > components > bladewind > credit-card.blade.php @@ -230,6 +269,7 @@ + From 0f738ff4b5c752bef794a9b8ec77f0bbaff2879d Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 05:16:11 +0000 Subject: [PATCH 37/44] Add missing "with all attributes defined" examples Every recently added component's doc page skipped the closing example that shows the component with every attribute set at once (see Bell for the established pattern). Backfills it across all 17 pages, including a second example per sub-component where a page documents more than one (e.g. Chat + Chat Message, Kanban + Column + Card). --- resources/views/docs/carousel.blade.php | 22 +++++++++++++ resources/views/docs/chat.blade.php | 29 +++++++++++++++++ resources/views/docs/code-block.blade.php | 16 ++++++++++ resources/views/docs/context-menu.blade.php | 27 ++++++++++++++++ resources/views/docs/copy-button.blade.php | 15 +++++++++ resources/views/docs/credit-card.blade.php | 24 ++++++++++++++ resources/views/docs/currency-input.blade.php | 18 +++++++++++ .../views/docs/description-list.blade.php | 24 ++++++++++++++ resources/views/docs/divider.blade.php | 13 ++++++++ resources/views/docs/file-preview.blade.php | 16 ++++++++++ resources/views/docs/inline-edit.blade.php | 18 +++++++++++ resources/views/docs/kanban.blade.php | 31 +++++++++++++++++++ resources/views/docs/kbd.blade.php | 10 ++++++ resources/views/docs/meter.blade.php | 17 ++++++++++ resources/views/docs/password-meter.blade.php | 12 +++++++ resources/views/docs/scheduler.blade.php | 19 ++++++++++++ resources/views/docs/transfer-list.blade.php | 17 ++++++++++ 17 files changed, 328 insertions(+) diff --git a/resources/views/docs/carousel.blade.php b/resources/views/docs/carousel.blade.php index 168be1ab..9f81b319 100644 --- a/resources/views/docs/carousel.blade.php +++ b/resources/views/docs/carousel.blade.php @@ -157,6 +157,21 @@ +

Carousel with all attributes defined

+
+        
+            <x-bladewind::carousel
+                arrows="true"
+                indicators="true"
+                autoplay="true"
+                interval="5000"
+                loop="true"
+                swipe="true"
+                height="320px"
+                class="ml-2">
+        
+    
+

Slide

@@ -171,6 +186,13 @@ +

Slide with all attributes defined

+
+        
+            <x-bladewind::carousel.slide class="ml-2">...</x-bladewind::carousel.slide>
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > carousel > index.blade.php, resources > views > components > bladewind > carousel > slide.blade.php diff --git a/resources/views/docs/chat.blade.php b/resources/views/docs/chat.blade.php index 6393783a..798d403b 100644 --- a/resources/views/docs/chat.blade.php +++ b/resources/views/docs/chat.blade.php @@ -152,6 +152,15 @@ +

Chat with all attributes defined

+
+        
+            <x-bladewind::chat
+                height="400px"
+                class="ml-2">
+        
+    
+

Chat Message

@@ -206,6 +215,26 @@ +

Chat Message with all attributes defined

+
+        
+            <x-bladewind::chat.message
+                outgoing="false"
+                sender="Michael"
+                avatar="/assets/images/me.jpeg"
+                time="10:24 AM"
+                status="read"
+                grouped="false"
+                show-avatar="true"
+                class="ml-2">
+                Sounds good, thanks!
+                <x-slot:attachments>
+                    ...
+                </x-slot:attachments>
+            </x-bladewind::chat.message>
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > chat > index.blade.php, resources > views > components > bladewind > chat > message.blade.php diff --git a/resources/views/docs/code-block.blade.php b/resources/views/docs/code-block.blade.php index f91289a8..60fc0fb5 100644 --- a/resources/views/docs/code-block.blade.php +++ b/resources/views/docs/code-block.blade.php @@ -161,6 +161,22 @@ +

Code Block with all attributes defined

+
+        
+            <x-bladewind::code-block
+                code="Route::view('/', 'home');"
+                language="php"
+                title="routes/web.php"
+                line-numbers="true"
+                highlight-lines="2"
+                wrap="false"
+                show-copy="true"
+                show-language-label="true"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > code-block.blade.php. Syntax highlighting is powered by Prism. diff --git a/resources/views/docs/context-menu.blade.php b/resources/views/docs/context-menu.blade.php index 3af1af0e..b0467400 100644 --- a/resources/views/docs/context-menu.blade.php +++ b/resources/views/docs/context-menu.blade.php @@ -154,6 +154,17 @@ +

Context Menu with all attributes defined

+
+        
+            <x-bladewind::context-menu
+                name="basicMenu"
+                disable-native="true"
+                padded="true"
+                class="ml-2">
+        
+    
+

Context Menu Item

@@ -188,6 +199,22 @@ +

Context Menu Item with all attributes defined

+
+        
+            <x-bladewind::context-menu.item
+                icon="folder-plus"
+                disabled="false"
+                tone="danger"
+                divider="false">
+                New
+                <x-slot:submenu>
+                    <x-bladewind::context-menu.item icon="document">File</x-bladewind::context-menu.item>
+                </x-slot:submenu>
+            </x-bladewind::context-menu.item>
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > context-menu > index.blade.php, resources > views > components > bladewind > context-menu > item.blade.php diff --git a/resources/views/docs/copy-button.blade.php b/resources/views/docs/copy-button.blade.php index b526a067..47062c94 100644 --- a/resources/views/docs/copy-button.blade.php +++ b/resources/views/docs/copy-button.blade.php @@ -103,6 +103,21 @@ +

Copy Button with all attributes defined

+
+        
+            <x-bladewind::copy-button
+                value="sk_live_a1b2c3d4e5f61234"
+                label="Copy API key"
+                copy-label="Copy"
+                copied-message="Copied"
+                failed-message="Could not copy"
+                timeout="1500"
+                size="small"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > copy-button.blade.php diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php index 51d75743..4cd7be8a 100644 --- a/resources/views/docs/credit-card.blade.php +++ b/resources/views/docs/credit-card.blade.php @@ -256,6 +256,30 @@ checkout_card.toggleFlip(); checkout_card.isFlipped();
+

Credit Card with all attributes defined

+
+        
+            <x-bladewind::credit-card
+                name="checkout_card"
+                cardholder_name="Jane T. Doe"
+                number="4242424242424242"
+                expiry_month="07"
+                expiry_year="28"
+                cvc="123"
+                brand="visa"
+                color="green"
+                variant="gradient"
+                flipped="false"
+                disabled="false"
+                readonly="false"
+                required="true"
+                error_message="Complete the card details to continue"
+                show_error_inline="true"
+                on_change="onCardChange"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > credit-card.blade.php diff --git a/resources/views/docs/currency-input.blade.php b/resources/views/docs/currency-input.blade.php index 0a185d29..18066902 100644 --- a/resources/views/docs/currency-input.blade.php +++ b/resources/views/docs/currency-input.blade.php @@ -131,6 +131,24 @@ +

Currency Input with all attributes defined

+
+        
+            <x-bladewind::currency-input
+                name="price"
+                label="Price"
+                currency="EUR"
+                locale="fr-FR"
+                symbol="€"
+                symbol-position="suffix"
+                decimal-separator=","
+                thousands-separator=" "
+                precision="2"
+                required="true"
+                size="regular" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > currency-input.blade.php diff --git a/resources/views/docs/description-list.blade.php b/resources/views/docs/description-list.blade.php index 60a414ea..0f02f215 100644 --- a/resources/views/docs/description-list.blade.php +++ b/resources/views/docs/description-list.blade.php @@ -96,6 +96,16 @@ +

Description List with all attributes defined

+
+        
+            <x-bladewind::description-list
+                divided="true"
+                striped="true"
+                class="ml-2">
+        
+    
+

Description List Item

@@ -120,6 +130,20 @@ +

Description List Item with all attributes defined

+
+        
+            <x-bladewind::description-list.item
+                label="Email address"
+                class="ml-2">
+                jane.cooper@example.com
+                <x-slot:action>
+                    <a href="#">Edit</a>
+                </x-slot:action>
+            </x-bladewind::description-list.item>
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > description-list > index.blade.php, resources > views > components > bladewind > description-list > item.blade.php diff --git a/resources/views/docs/divider.blade.php b/resources/views/docs/divider.blade.php index 8800d6df..761f0fe1 100644 --- a/resources/views/docs/divider.blade.php +++ b/resources/views/docs/divider.blade.php @@ -144,6 +144,19 @@ +

Divider with all attributes defined

+
+        
+            <x-bladewind::divider
+                orientation="horizontal"
+                label="or"
+                spacing="medium"
+                color="primary"
+                decorative="false"
+                class="ml-2" />
+        
+    
+ diff --git a/resources/views/docs/file-preview.blade.php b/resources/views/docs/file-preview.blade.php index f4b5a72a..52d57091 100644 --- a/resources/views/docs/file-preview.blade.php +++ b/resources/views/docs/file-preview.blade.php @@ -108,6 +108,22 @@ +

File Preview with all attributes defined

+
+        
+            <x-bladewind::file-preview
+                name="Quarterly report.pdf"
+                size="2621440"
+                url="/files/1"
+                thumbnail="/thumbs/report.jpg"
+                icon="document"
+                removable="true"
+                downloadable="true"
+                on-remove="deleteAttachment(1)"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > file-preview.blade.php diff --git a/resources/views/docs/inline-edit.blade.php b/resources/views/docs/inline-edit.blade.php index f99ddd70..0fd6a57f 100644 --- a/resources/views/docs/inline-edit.blade.php +++ b/resources/views/docs/inline-edit.blade.php @@ -124,6 +124,24 @@ function renameProject(id, name) { +

Inline Edit with all attributes defined

+
+        
+            <x-bladewind::inline-edit
+                name="project_name"
+                value="Q3 Marketing Campaign"
+                placeholder="Click to edit"
+                required="true"
+                required-message="A project needs a name"
+                maxlength="60"
+                on-save="renameProject(1, newValue)"
+                save-label="Save"
+                cancel-label="Cancel"
+                edit-label="Edit"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > inline-edit.blade.php diff --git a/resources/views/docs/kanban.blade.php b/resources/views/docs/kanban.blade.php index d9ff2d33..627bba97 100644 --- a/resources/views/docs/kanban.blade.php +++ b/resources/views/docs/kanban.blade.php @@ -141,6 +141,16 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) { +

Kanban with all attributes defined

+
+        
+            <x-bladewind::kanban
+                animation="150"
+                on-move="onCardMove"
+                class="ml-2">
+        
+    
+

Column

@@ -180,6 +190,20 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) { +

Column with all attributes defined

+
+        
+            <x-bladewind::kanban.column
+                title="In Progress"
+                id="in-progress"
+                loading="false"
+                empty-text="No cards"
+                class="ml-2">
+                <x-slot:actions>...</x-slot:actions>
+            </x-bladewind::kanban.column>
+        
+    
+

Card

@@ -199,6 +223,13 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) { +

Card with all attributes defined

+
+        
+            <x-bladewind::kanban.card value="42" class="ml-2">Fix login bug</x-bladewind::kanban.card>
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > kanban > index.blade.php, resources > views > components > bladewind > kanban > column.blade.php, diff --git a/resources/views/docs/kbd.blade.php b/resources/views/docs/kbd.blade.php index a32f7489..d49f35c5 100644 --- a/resources/views/docs/kbd.blade.php +++ b/resources/views/docs/kbd.blade.php @@ -73,6 +73,16 @@ +

Kbd with all attributes defined

+
+        
+            <x-bladewind::kbd
+                :keys="['Ctrl', 'K']"
+                size="regular"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > kbd.blade.php diff --git a/resources/views/docs/meter.blade.php b/resources/views/docs/meter.blade.php index 7badd981..8ae2aea0 100644 --- a/resources/views/docs/meter.blade.php +++ b/resources/views/docs/meter.blade.php @@ -118,6 +118,23 @@ +

Meter with all attributes defined

+
+        
+            <x-bladewind::meter
+                value="60"
+                min="0"
+                max="100"
+                low="30"
+                high="70"
+                optimum="0"
+                label="Error rate"
+                show-value="true"
+                size="medium"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > meter.blade.php diff --git a/resources/views/docs/password-meter.blade.php b/resources/views/docs/password-meter.blade.php index 2e021ee9..a8a85e85 100644 --- a/resources/views/docs/password-meter.blade.php +++ b/resources/views/docs/password-meter.blade.php @@ -86,6 +86,18 @@ +

Password Meter with all attributes defined

+
+        
+            <x-bladewind::password-meter
+                for="password"
+                show-label="true"
+                min-length="8"
+                strong-length="12"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > password-meter.blade.php diff --git a/resources/views/docs/scheduler.blade.php b/resources/views/docs/scheduler.blade.php index 16b91c5e..8c1b12a9 100644 --- a/resources/views/docs/scheduler.blade.php +++ b/resources/views/docs/scheduler.blade.php @@ -208,6 +208,25 @@ function showBookingDetails(eventId) { +

Scheduler with all attributes defined

+
+        
+            <x-bladewind::scheduler
+                view="day"
+                date="2027-03-10"
+                :resources="[['id' => 'r1', 'label' => 'Room A']]"
+                :events="$roomEvents"
+                start-hour="8"
+                end-hour="18"
+                slot-minutes="30"
+                week-starts="1"
+                timezone="GMT"
+                on-slot-click="onSlotClick"
+                on-event-click="onEventClick"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > scheduler.blade.php diff --git a/resources/views/docs/transfer-list.blade.php b/resources/views/docs/transfer-list.blade.php index fb270012..790cac1f 100644 --- a/resources/views/docs/transfer-list.blade.php +++ b/resources/views/docs/transfer-list.blade.php @@ -140,6 +140,23 @@ +

Transfer List with all attributes defined

+
+        
+            <x-bladewind::transfer-list
+                name="roles"
+                :items="[['value' => 1, 'label' => 'Editor']]"
+                value-key="value"
+                label-key="label"
+                :selected="[1]"
+                available-label="Available"
+                selected-label="Selected"
+                searchable="true"
+                height="260"
+                class="ml-2" />
+        
+    
+ The source file for this component is available in resources > views > components > bladewind > transfer-list.blade.php From 822500ab405ed95f6f2dc0dcb251d3c9ef2b3676 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 05:29:39 +0000 Subject: [PATCH 38/44] Remove Basic Usage heading from new component docs Established pages (Bell, Tag, etc.) drop straight into the first example with no heading; the new pages had added one inconsistently. Removes the heading and its side-nav link, keeps the example itself. --- resources/views/docs/carousel.blade.php | 2 -- resources/views/docs/chat.blade.php | 2 -- resources/views/docs/code-block.blade.php | 2 -- resources/views/docs/credit-card.blade.php | 2 -- resources/views/docs/kanban.blade.php | 2 -- 5 files changed, 10 deletions(-) diff --git a/resources/views/docs/carousel.blade.php b/resources/views/docs/carousel.blade.php index 9f81b319..56d6877e 100644 --- a/resources/views/docs/carousel.blade.php +++ b/resources/views/docs/carousel.blade.php @@ -9,7 +9,6 @@ right arrow keys, or by swiping on a touch screen.

-

Basic Usage

Slide 1
@@ -199,7 +198,6 @@ class="ml-2">
- diff --git a/resources/views/docs/chat.blade.php b/resources/views/docs/chat.blade.php index 798d403b..e92dd39e 100644 --- a/resources/views/docs/chat.blade.php +++ b/resources/views/docs/chat.blade.php @@ -9,7 +9,6 @@ a timestamp, a delivery state, and attachments.

-

Basic Usage

Hey, are we still on for the call this afternoon? @@ -241,7 +240,6 @@ class="ml-2">
- diff --git a/resources/views/docs/code-block.blade.php b/resources/views/docs/code-block.blade.php index 60fc0fb5..b938beb7 100644 --- a/resources/views/docs/code-block.blade.php +++ b/resources/views/docs/code-block.blade.php @@ -16,7 +16,6 @@ <pre><code> block.

-

Basic Usage

         
@@ -182,7 +181,6 @@ class="ml-2" />
     
 
     
-        
         
         
         
diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php
index 4cd7be8a..85f463b7 100644
--- a/resources/views/docs/credit-card.blade.php
+++ b/resources/views/docs/credit-card.blade.php
@@ -16,7 +16,6 @@
         JavaScript function called with the same value whenever it changes.
     

-

Basic Usage

         
@@ -285,7 +284,6 @@ class="ml-2" />
     
 
     
-        
         
         
         
diff --git a/resources/views/docs/kanban.blade.php b/resources/views/docs/kanban.blade.php
index 627bba97..67d1d441 100644
--- a/resources/views/docs/kanban.blade.php
+++ b/resources/views/docs/kanban.blade.php
@@ -10,7 +10,6 @@
         to reorder within a column, left and right to move it into the column beside it.
     

-

Basic Usage

Design the onboarding flow @@ -237,7 +236,6 @@ class="ml-2"> - From 638c65e60d53f4c97648e4df54a526702d01c92b Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 05:33:45 +0000 Subject: [PATCH 39/44] Remove Basic Usage heading from Input Group and Select docs Same cleanup as the recently added component docs: established pages drop straight into the first example with no heading. --- resources/views/docs/input-group.blade.php | 2 -- resources/views/docs/select.blade.php | 3 --- 2 files changed, 5 deletions(-) diff --git a/resources/views/docs/input-group.blade.php b/resources/views/docs/input-group.blade.php index 0f0e6c9b..43506225 100644 --- a/resources/views/docs/input-group.blade.php +++ b/resources/views/docs/input-group.blade.php @@ -23,7 +23,6 @@ corners and borders for you.

-

Basic Usage

Place each control inside x-bladewind::input-group. The controls will fill the available width. Add shrink-control @@ -271,7 +270,6 @@ class="shrink-control" /> -

diff --git a/resources/views/docs/select.blade.php b/resources/views/docs/select.blade.php index 9b5fc0e2..f34de61f 100644 --- a/resources/views/docs/select.blade.php +++ b/resources/views/docs/select.blade.php @@ -58,8 +58,6 @@ @endphp

-

Basic Usage

-

The data attribute is what really drives the BladewindUI select component. This attribute expects an array to be passed to it. Let's look at the basic structure of such an array using a list of five countries. @@ -1634,7 +1632,6 @@ function only accepts 'value' because the 'label' is not needed. -

From 7891386ef1b5971fb4506c89f1752ce644222fe6 Mon Sep 17 00:00:00 2001 From: "Michael K. Ocansey" Date: Sun, 6 Sep 2026 12:56:23 +0000 Subject: [PATCH 40/44] Rename carousel slide example heading to Carousel Slide --- resources/views/docs/carousel.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/docs/carousel.blade.php b/resources/views/docs/carousel.blade.php index 56d6877e..900a8a9b 100644 --- a/resources/views/docs/carousel.blade.php +++ b/resources/views/docs/carousel.blade.php @@ -185,7 +185,7 @@ class="ml-2"> -

Slide with all attributes defined

+

Carousel Slide with all attributes defined

         
             <x-bladewind::carousel.slide class="ml-2">...</x-bladewind::carousel.slide>

From 6130c732fc8ea762098c04c29ea231c129833057 Mon Sep 17 00:00:00 2001
From: "Michael K. Ocansey" 
Date: Sun, 6 Sep 2026 13:00:56 +0000
Subject: [PATCH 41/44] Prefix Kanban's Column/Card headings with the component
 name

Every other multi-component page prefixes its sub-component headings
(Accordion Item, Chat Message, Context Menu Item, Description List
Item, Carousel Slide); Kanban's Column and Card were the only bare
ones, both in the attribute table heading and the all-attributes
example.
---
 resources/views/docs/kanban.blade.php | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/resources/views/docs/kanban.blade.php b/resources/views/docs/kanban.blade.php
index 67d1d441..608c3394 100644
--- a/resources/views/docs/kanban.blade.php
+++ b/resources/views/docs/kanban.blade.php
@@ -150,7 +150,7 @@ class="ml-2">
         
     
-

Column

+

Kanban Column

@@ -189,7 +189,7 @@ class="ml-2"> -

Column with all attributes defined

+

Kanban Column with all attributes defined

         
             <x-bladewind::kanban.column
@@ -203,7 +203,7 @@ class="ml-2">
         
     
-

Card

+

Kanban Card

@@ -222,7 +222,7 @@ class="ml-2"> -

Card with all attributes defined

+

Kanban Card with all attributes defined

         
             <x-bladewind::kanban.card value="42" class="ml-2">Fix login bug</x-bladewind::kanban.card>

From 3ecb92ff680d13c7461801e39bf330bf96598925 Mon Sep 17 00:00:00 2001
From: "Michael K. Ocansey" 
Date: Sun, 6 Sep 2026 13:04:58 +0000
Subject: [PATCH 42/44] Move Sponsor link from sidebar nav to footer

Also fixes the target: it pointed at github.com/sponsors/mkocansey
(the maintainer's personal sponsor page), now points at
github.com/sponsors/bladewindui.
---
 resources/views/components/app.blade.php         | 3 ---
 resources/views/components/site-footer.blade.php | 1 +
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/resources/views/components/app.blade.php b/resources/views/components/app.blade.php
index eb55b824..2f1e1157 100644
--- a/resources/views/components/app.blade.php
+++ b/resources/views/components/app.blade.php
@@ -22,9 +22,6 @@
         
 
diff --git a/resources/views/components/site-footer.blade.php b/resources/views/components/site-footer.blade.php
index 0402f9fd..7c26fc30 100644
--- a/resources/views/components/site-footer.blade.php
+++ b/resources/views/components/site-footer.blade.php
@@ -16,6 +16,7 @@
             MCP server
             Contribute
             GitHub
+            Sponsor
         
     
 

From 948f571be1e21f2224d6e05af9c11d92a9cc7f6c Mon Sep 17 00:00:00 2001
From: "Michael K. Ocansey" 
Date: Sun, 6 Sep 2026 13:10:15 +0000
Subject: [PATCH 43/44] Explain how Scheduler differs from Calendar

Both show events on dates, so it wasn't obvious when to reach for one
over the other. Calendar browses months/weeks of dates; Scheduler is
an hour-by-hour grid for one day or week, with resource columns, built
for room booking boards, rosters, and appointment books.
---
 resources/views/docs/scheduler.blade.php | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/resources/views/docs/scheduler.blade.php b/resources/views/docs/scheduler.blade.php
index 8c1b12a9..8b6c2721 100644
--- a/resources/views/docs/scheduler.blade.php
+++ b/resources/views/docs/scheduler.blade.php
@@ -25,6 +25,14 @@
         resource becomes its own column, and events are placed by their start and end time. Two events that overlap
         share their column side by side instead of stacking on top of each other.
     

+

+ Scheduler is not a bigger Calendar, it solves a different problem. Calendar + browses whole months and weeks of dates, with each day showing the events that fall on it. Scheduler shows + just one day or week at a time, drawn as an hour-by-hour grid where every event sits at its exact start and + end time, and, in day view, splits that grid into a column per resource. Reach for Calendar when someone + needs to browse a schedule and pick a date; reach for Scheduler when you are building something closer to a + room booking board, a staff roster, or an appointment book, where the time of day is the whole point. +

Day View With Resources

Date: Tue, 8 Sep 2026 08:50:55 +0000 Subject: [PATCH 44/44] Replace raw Prism
 blocks with the Code Block
 component site-wide

Every docs page now uses  instead of a hand-written
 block, dropping the docs app's own separate
Prism setup (resources/js/prism.js, resources/css/prism.css) in favor of
the component's own bundled copy.
---
 public/assets/js/prism.js                     |   16 -
 resources/css/app.css                         |    1 -
 resources/css/prism.css                       |    7 -
 resources/js/prism.js                         |   16 -
 resources/views/components/meta.blade.php     |    1 -
 resources/views/docs/accessibility.blade.php  |   35 +-
 resources/views/docs/accordion.blade.php      |  266 ++--
 resources/views/docs/alert.blade.php          |  491 +++---
 resources/views/docs/avatar.blade.php         |  294 ++--
 resources/views/docs/bell.blade.php           |  196 +--
 resources/views/docs/breadcrumbs.blade.php    |  136 +-
 resources/views/docs/button.blade.php         |  592 ++++----
 resources/views/docs/calendar.blade.php       |  194 ++-
 resources/views/docs/card.blade.php           |  431 +++---
 resources/views/docs/carousel.blade.php       |   88 +-
 .../views/docs/centered-content.blade.php     |   47 +-
 resources/views/docs/chart.blade.php          |  487 +++---
 resources/views/docs/chat.blade.php           |  125 +-
 resources/views/docs/checkbox.blade.php       |  182 +--
 resources/views/docs/checkcard.blade.php      |  389 ++---
 resources/views/docs/code-block.blade.php     |  104 +-
 resources/views/docs/code.blade.php           |  404 ++---
 resources/views/docs/colorpicker.blade.php    |  102 +-
 resources/views/docs/colours.blade.php        |  174 ++-
 .../views/docs/command-palette.blade.php      |  125 +-
 resources/views/docs/context-menu.blade.php   |   95 +-
 resources/views/docs/contribute.blade.php     |  132 +-
 resources/views/docs/copy-button.blade.php    |   48 +-
 resources/views/docs/credit-card.blade.php    |  126 +-
 resources/views/docs/currency-input.blade.php |   52 +-
 resources/views/docs/customize.blade.php      |  270 ++--
 resources/views/docs/darkmode.blade.php       |   80 +-
 resources/views/docs/data-grid.blade.php      |  445 ++++--
 resources/views/docs/datepicker.blade.php     |  220 +--
 .../views/docs/description-list.blade.php     |   92 +-
 resources/views/docs/divider.blade.php        |   95 +-
 resources/views/docs/drawer.blade.php         |  162 +-
 resources/views/docs/dropmenu.blade.php       |  478 +++---
 resources/views/docs/emptystate.blade.php     |  106 +-
 resources/views/docs/error-pages.blade.php    |   75 +-
 resources/views/docs/file-preview.blade.php   |   39 +-
 resources/views/docs/filepicker.blade.php     |  699 ++++-----
 resources/views/docs/helpers.blade.php        |  209 +--
 .../docs/horizontal-line-graph.blade.php      |  449 +++---
 resources/views/docs/icon.blade.php           |  189 +--
 resources/views/docs/inline-edit.blade.php    |   50 +-
 resources/views/docs/input-group.blade.php    |  180 +--
 resources/views/docs/input.blade.php          |  787 +++++-----
 resources/views/docs/install.blade.php        |  241 ++-
 resources/views/docs/kanban.blade.php         |  142 +-
 resources/views/docs/kbd.blade.php            |   50 +-
 resources/views/docs/laravel8.blade.php       |   15 +-
 resources/views/docs/list.blade.php           |  147 +-
 resources/views/docs/mcp.blade.php            |   77 +-
 resources/views/docs/meter.blade.php          |   46 +-
 resources/views/docs/modal.blade.php          |  868 +++++------
 resources/views/docs/notification.blade.php   |  100 +-
 resources/views/docs/number.blade.php         |  163 +-
 resources/views/docs/password-meter.blade.php |   48 +-
 resources/views/docs/popover.blade.php        |  163 +-
 .../views/docs/process-indicator.blade.php    |   82 +-
 resources/views/docs/progress-bar.blade.php   |  390 ++---
 .../views/docs/progress-circle.blade.php      |  176 ++-
 resources/views/docs/radiobutton.blade.php    |  189 +--
 resources/views/docs/rating.blade.php         |  379 ++---
 resources/views/docs/releasing.blade.php      |  367 ++---
 resources/views/docs/rtl.blade.php            |  113 +-
 resources/views/docs/scheduler.blade.php      |  106 +-
 resources/views/docs/select.blade.php         | 1002 +++++++------
 resources/views/docs/shimmer.blade.php        |  178 +--
 resources/views/docs/sidebar.blade.php        |  125 +-
 resources/views/docs/slider.blade.php         |  146 +-
 resources/views/docs/sortable.blade.php       |  209 +--
 resources/views/docs/spinner.blade.php        |   79 +-
 resources/views/docs/statistic.blade.php      |  260 ++--
 resources/views/docs/stepper.blade.php        |  156 +-
 resources/views/docs/tab.blade.php            |  306 ++--
 resources/views/docs/table.blade.php          | 1329 +++++++++--------
 resources/views/docs/tag.blade.php            |  287 ++--
 resources/views/docs/textarea.blade.php       |  162 +-
 resources/views/docs/theme-switcher.blade.php |   24 +-
 resources/views/docs/timeline.blade.php       |  378 ++---
 resources/views/docs/timepicker.blade.php     |  180 ++-
 resources/views/docs/toggle.blade.php         |  189 ++-
 resources/views/docs/tooltip.blade.php        |   77 +-
 resources/views/docs/transfer-list.blade.php  |   54 +-
 86 files changed, 10222 insertions(+), 8762 deletions(-)
 delete mode 100644 public/assets/js/prism.js
 delete mode 100644 resources/css/prism.css
 delete mode 100644 resources/js/prism.js

diff --git a/public/assets/js/prism.js b/public/assets/js/prism.js
deleted file mode 100644
index e622eff4..00000000
--- a/public/assets/js/prism.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/* PrismJS 1.29.0
-https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+markup-templating+php&plugins=line-highlight+line-numbers+highlight-keywords+remove-initial-line-feed+normalize-whitespace+toolbar+copy-to-clipboard */
-var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
-Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml;
-!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism);
-Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};
-Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript;
-!function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism);
-!function(e){var a=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:a,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];e.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:a,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(a){/<\?/.test(a.code)&&e.languages["markup-templating"].buildPlaceholders(a,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"php")}))}(Prism);
-!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var e,t="line-numbers",i="linkable-line-numbers",n=/\n(?!$)/g,r=!0;Prism.plugins.lineHighlight={highlightLines:function(o,u,c){var h=(u="string"==typeof u?u:o.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+o.getAttribute("data-line-offset")||0,f=(function(){if(void 0===e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding="0",t.style.border="0",t.innerHTML=" 
 ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}()?parseInt:parseFloat)(getComputedStyle(o).lineHeight),p=Prism.util.isActive(o,t),g=o.querySelector("code"),m=p?o:g||o,v=[],y=g.textContent.match(n),b=y?y.length+1:1,A=g&&m!=g?function(e,t){var i=getComputedStyle(e),n=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(n.borderTopWidth)+r(n.paddingTop)-r(i.paddingTop)}(o,g):0;h.forEach((function(e){var t=e.split("-"),i=+t[0],n=+t[1]||i;if(!((n=Math.min(b+d,n))i&&r.setAttribute("data-end",String(n)),r.style.top=(i-d-1)*f+A+"px",r.textContent=new Array(n-i+2).join(" \n")}));v.push((function(){r.style.width=o.scrollWidth+"px"})),v.push((function(){m.appendChild(r)}))}}));var P=o.id;if(p&&Prism.util.isActive(o,i)&&P){l(o,i)||v.push((function(){o.classList.add(i)}));var E=parseInt(o.getAttribute("data-start")||"1");s(".line-numbers-rows > span",o).forEach((function(e,t){var i=t+E;e.onclick=function(){var e=P+"."+i;r=!1,location.hash=e,setTimeout((function(){r=!0}),1)}}))}return function(){v.forEach(a)}}};var o=0;Prism.hooks.add("before-sanity-check",(function(e){var t=e.element.parentElement;if(u(t)){var i=0;s(".line-highlight",t).forEach((function(e){i+=e.textContent.length,e.parentNode.removeChild(e)})),i&&/^(?: \n)+$/.test(e.code.slice(-i))&&(e.code=e.code.slice(0,-i))}})),Prism.hooks.add("complete",(function e(i){var n=i.element.parentElement;if(u(n)){clearTimeout(o);var r=Prism.plugins.lineNumbers,s=i.plugins&&i.plugins.lineNumbers;l(n,t)&&r&&!s?Prism.hooks.add("line-numbers",e):(Prism.plugins.lineHighlight.highlightLines(n)(),o=setTimeout(c,1))}})),window.addEventListener("hashchange",c),window.addEventListener("resize",(function(){s("pre").filter(u).map((function(e){return Prism.plugins.lineHighlight.highlightLines(e)})).forEach(a)}))}function s(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function l(e,t){return e.classList.contains(t)}function a(e){e()}function u(e){return!!(e&&/pre/i.test(e.nodeName)&&(e.hasAttribute("data-line")||e.id&&Prism.util.isActive(e,i)))}function c(){var e=location.hash.slice(1);s(".temporary.line-highlight").forEach((function(e){e.parentNode.removeChild(e)}));var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var i=e.slice(0,e.lastIndexOf(".")),n=document.getElementById(i);n&&(n.hasAttribute("data-line")||n.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(n,t,"temporary ")(),r&&document.querySelector(".temporary.line-highlight").scrollIntoView())}}}(); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;rt&&(o[l]="\n"+o[l],a=s)}n[i]=o.join("")}return n.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=n),Prism.plugins.NormalizeWhitespace=new n({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),t)if(Object.hasOwnProperty.call(t,i)){var o=t[i];if(r.hasAttribute("data-"+i))try{var a=JSON.parse(r.getAttribute("data-"+i)||"true");typeof a===o&&(e.settings[i]=a)}catch(e){}}for(var l=r.childNodes,s="",c="",u=!1,m=0;mcode[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green} -pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(255,20%,50%,.08);background:linear-gradient(to right,hsla(24,10%,70%,.1) 70%,hsla(24,40%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:after,.line-numbers .line-highlight:before{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:rgba(128,128,128,.2)} -pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right} -div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none} diff --git a/resources/js/prism.js b/resources/js/prism.js deleted file mode 100644 index e622eff4..00000000 --- a/resources/js/prism.js +++ /dev/null @@ -1,16 +0,0 @@ -/* PrismJS 1.29.0 -https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+markup-templating+php&plugins=line-highlight+line-numbers+highlight-keywords+remove-initial-line-feed+normalize-whitespace+toolbar+copy-to-clipboard */ -var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); -Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; -!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); -Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; -Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; -!function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism); -!function(e){var a=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:a,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];e.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:a,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(a){/<\?/.test(a.code)&&e.languages["markup-templating"].buildPlaceholders(a,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"php")}))}(Prism); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var e,t="line-numbers",i="linkable-line-numbers",n=/\n(?!$)/g,r=!0;Prism.plugins.lineHighlight={highlightLines:function(o,u,c){var h=(u="string"==typeof u?u:o.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+o.getAttribute("data-line-offset")||0,f=(function(){if(void 0===e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding="0",t.style.border="0",t.innerHTML=" 
 ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}()?parseInt:parseFloat)(getComputedStyle(o).lineHeight),p=Prism.util.isActive(o,t),g=o.querySelector("code"),m=p?o:g||o,v=[],y=g.textContent.match(n),b=y?y.length+1:1,A=g&&m!=g?function(e,t){var i=getComputedStyle(e),n=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(n.borderTopWidth)+r(n.paddingTop)-r(i.paddingTop)}(o,g):0;h.forEach((function(e){var t=e.split("-"),i=+t[0],n=+t[1]||i;if(!((n=Math.min(b+d,n))i&&r.setAttribute("data-end",String(n)),r.style.top=(i-d-1)*f+A+"px",r.textContent=new Array(n-i+2).join(" \n")}));v.push((function(){r.style.width=o.scrollWidth+"px"})),v.push((function(){m.appendChild(r)}))}}));var P=o.id;if(p&&Prism.util.isActive(o,i)&&P){l(o,i)||v.push((function(){o.classList.add(i)}));var E=parseInt(o.getAttribute("data-start")||"1");s(".line-numbers-rows > span",o).forEach((function(e,t){var i=t+E;e.onclick=function(){var e=P+"."+i;r=!1,location.hash=e,setTimeout((function(){r=!0}),1)}}))}return function(){v.forEach(a)}}};var o=0;Prism.hooks.add("before-sanity-check",(function(e){var t=e.element.parentElement;if(u(t)){var i=0;s(".line-highlight",t).forEach((function(e){i+=e.textContent.length,e.parentNode.removeChild(e)})),i&&/^(?: \n)+$/.test(e.code.slice(-i))&&(e.code=e.code.slice(0,-i))}})),Prism.hooks.add("complete",(function e(i){var n=i.element.parentElement;if(u(n)){clearTimeout(o);var r=Prism.plugins.lineNumbers,s=i.plugins&&i.plugins.lineNumbers;l(n,t)&&r&&!s?Prism.hooks.add("line-numbers",e):(Prism.plugins.lineHighlight.highlightLines(n)(),o=setTimeout(c,1))}})),window.addEventListener("hashchange",c),window.addEventListener("resize",(function(){s("pre").filter(u).map((function(e){return Prism.plugins.lineHighlight.highlightLines(e)})).forEach(a)}))}function s(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function l(e,t){return e.classList.contains(t)}function a(e){e()}function u(e){return!!(e&&/pre/i.test(e.nodeName)&&(e.hasAttribute("data-line")||e.id&&Prism.util.isActive(e,i)))}function c(){var e=location.hash.slice(1);s(".temporary.line-highlight").forEach((function(e){e.parentNode.removeChild(e)}));var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var i=e.slice(0,e.lastIndexOf(".")),n=document.getElementById(i);n&&(n.hasAttribute("data-line")||n.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(n,t,"temporary ")(),r&&document.querySelector(".temporary.line-highlight").scrollIntoView())}}}(); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;rt&&(o[l]="\n"+o[l],a=s)}n[i]=o.join("")}return n.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=n),Prism.plugins.NormalizeWhitespace=new n({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),t)if(Object.hasOwnProperty.call(t,i)){var o=t[i];if(r.hasAttribute("data-"+i))try{var a=JSON.parse(r.getAttribute("data-"+i)||"true");typeof a===o&&(e.settings[i]=a)}catch(e){}}for(var l=r.childNodes,s="",c="",u=!1,m=0;m - diff --git a/resources/views/docs/accessibility.blade.php b/resources/views/docs/accessibility.blade.php index ea6daefa..c2327071 100644 --- a/resources/views/docs/accessibility.blade.php +++ b/resources/views/docs/accessibility.blade.php @@ -174,11 +174,12 @@ The common dropmenu trigger is a bare icon, which reaches a screen reader as nothing at all. Give it a name with trigger_label.

-
-        
-            <x-bladewind::dropmenu trigger_label="Row actions">...</x-bladewind::dropmenu>
-        
-    
+ @php + $dropmenuLabelExample = <<<'HTML' + ... + HTML; + @endphp +

Icon-only buttons

@@ -187,13 +188,14 @@ already set on these. An explicit aria-label always wins if you would rather be exact.

-
-        
-            <x-bladewind::button.circle title="Delete user" />
+    @php
+        $iconButtonExample = <<<'HTML'
+            
 
-            <x-bladewind::button.circle aria-label="Delete user" />
-        
-    
+ + HTML; + @endphp + A button with neither a title nor an aria-label and no visible text ships as an unlabelled control. Nothing can be derived from an icon name. @@ -206,11 +208,12 @@ string, which is better than nothing but says nothing about what the slider adjusts. Set it where you have more than one on a page.

-
-        
-            <x-bladewind::slider aria_label="Maximum price" />
-        
-    
+ @php + $sliderLabelExample = <<<'HTML' + + HTML; + @endphp +

Keyboard Support Needs The JavaScript

diff --git a/resources/views/docs/accordion.blade.php b/resources/views/docs/accordion.blade.php index 964e471f..c85ce394 100644 --- a/resources/views/docs/accordion.blade.php +++ b/resources/views/docs/accordion.blade.php @@ -14,7 +14,7 @@

At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -27,27 +27,28 @@
-
-
-<x-bladewind::accordion>
-    <x-bladewind::accordion.item title="What is BladewindUI?">
-        <p>
-            BladewindUI is a collection...
-        </p>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I install the latest version of the library?">
-        <div>
-            At the root of your Laravel...
-        </div>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I customize the library for my theme?">
-        <div>
-            BladewindUI has been designed ...
-        </div>
-    </x-bladewind::accordion.item>
-</x-bladewind::accordion>
-
-
+@php + $accordionBasicExample = <<<'HTML' + + +

+ BladewindUI is a collection... +

+
+ +
+ At the root of your Laravel... +
+
+ +
+ BladewindUI has been designed ... +
+
+
+ HTML; +@endphp +

If the title of your accordion item is not a simple string you can define your content in a title slot. @@ -71,7 +72,7 @@

At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -85,27 +86,28 @@
-
-
-<x-bladewind::accordion>
-    <x-bladewind::accordion.item>
-        <x-slot:title>
-            <div class="inline-flex">
-                <div><img src="/assets/images/icon.png" class="size-10..." alt="logo"/></div>
-                <div class="ml-2">
-                    <div>What is BladewindUI library?</div>
-                    <div class="text-sm ...">version 2.8.0</div>
-                </div>
-            </div>
-        </x-slot:title>
-        <p>
-            BladewindUI is a collection...
-        </p>
-    </x-bladewind::accordion.item>
-    ...
-</x-bladewind::accordion>
-
-
+ @php + $accordionTitleSlotExample = <<<'HTML' + + + +
+
logo
+
+
What is BladewindUI library?
+
version 2.8.0
+
+
+
+

+ BladewindUI is a collection... +

+
+ ... +
+ HTML; + @endphp +

Open Multiple Accordion Items

By default only one accordion can stay open at any point in time. You can disable this feature by setting can_open_multiple="true". Now any closed accordion that is clicked will be opened. Likewise, any accordion that is open will closed when clicked.

@@ -118,7 +120,7 @@
At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -131,28 +133,29 @@
-
-
-<x-bladewind::accordion
-    can_open_multiple="true">
-    <x-bladewind::accordion.item title="What is BladewindUI?">
-        <p>
-            BladewindUI is a collection...
-        </p>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I install the latest version of the library?">
-        <div>
-            At the root of your Laravel...
-        </div>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I customize the library for my theme?">
-        <div>
-            BladewindUI has been designed ...
-        </div>
-    </x-bladewind::accordion.item>
-</x-bladewind::accordion>
-
-
+ @php + $accordionMultipleExample = <<<'HTML' + + +

+ BladewindUI is a collection... +

+
+ +
+ At the root of your Laravel... +
+
+ +
+ BladewindUI has been designed ... +
+
+
+ HTML; + @endphp +

Ungrouped Accordions

@@ -168,7 +171,7 @@

At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -181,28 +184,29 @@
-
-
-<x-bladewind::accordion
-    grouped="false">
-    <x-bladewind::accordion.item title="What is BladewindUI?">
-        <p>
-            BladewindUI is a collection...
-        </p>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I install the latest version of the library?">
-        <div>
-            At the root of your Laravel...
-        </div>
-    </x-bladewind::accordion.item>
-    <x-bladewind::accordion.item title="How can I customize the library for my theme?">
-        <div>
-            BladewindUI has been designed ...
-        </div>
-    </x-bladewind::accordion.item>
-</x-bladewind::accordion>
-
-
+ @php + $accordionStandaloneExample = <<<'HTML' + + +

+ BladewindUI is a collection... +

+
+ +
+ At the root of your Laravel... +
+
+ +
+ BladewindUI has been designed ... +
+
+
+ HTML; + @endphp +

Colourful Accordions

You can define the background colour of the accordion by setting the color attribute. This is only enforced if grouped="false" @@ -216,7 +220,7 @@

At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -229,20 +233,21 @@
-
-
-<x-bladewind::accordion
-    grouped="false"
-    color="yellow">
-    <x-bladewind::accordion.item title="What is BladewindUI?">
-        <p>
-            BladewindUI is a collection...
-        </p>
-    </x-bladewind::accordion.item>
-...
-</x-bladewind::accordion>
-
-
+ @php + $accordionColorYellowExample = <<<'HTML' + + +

+ BladewindUI is a collection... +

+
+ ... +
+ HTML; + @endphp +
@@ -253,7 +258,7 @@
At the root of your Laravel project, type the following composer command in your terminal to pull in the package. -
composer require bladewindui/ui
+ Next you need to publish the package's public assets by running the command below, still at the root of your Laravel project. This will create a vendor/bladewind directory in your public directory.
@@ -267,15 +272,16 @@
-
-
-<x-bladewind::accordion
-    grouped="false"
-    color="pink">
-...
-</x-bladewind::accordion>
-
-
+ @php + $accordionColorPinkExample = <<<'HTML' + + ... + + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Accordion component.

@@ -369,29 +375,31 @@

Accordion with all attributes defined

-
-        
-            <x-bladewind::accordion
+    @php
+        $accordionAllAttrsExample = <<<'HTML'
+            
             ...
-            </x-bladewind::accordion>
-        
-    
+ + HTML; + @endphp +

Accordion Item with all attributes defined

-
-        
-            <x-bladewind::accordion.item
+    @php
+        $accordionItemAllAttrsExample = <<<'HTML'
+            
             ...
-            </x-bladewind::accordion.item>
-        
-    
+ + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > accordion > [index.blade.php, item.blade.php] diff --git a/resources/views/docs/alert.blade.php b/resources/views/docs/alert.blade.php index 67eaa615..299e9868 100644 --- a/resources/views/docs/alert.blade.php +++ b/resources/views/docs/alert.blade.php @@ -15,132 +15,143 @@

Faint Coloured Alerts

Info

Your subscription is expiring in 19 days. Renew now -
-        
-            <x-bladewind::alert>
+    @php
+        $alertExample1 = <<<'HTML'
+            
                 Your subscription is expiring in 19 days.
-                <a href="#">Renew now</a>
-            </x-bladewind::alert>
-        
-    
+ Renew now +
+ HTML; + @endphp +

Error

You do not have permission to upload files -
-        
-            <x-bladewind::alert
-                type="error">
+    @php
+        $alertExample2 = <<<'HTML'
+            
                 You do not have permission to upload files
-            </x-bladewind::alert>
-        
-    
+
+ HTML; + @endphp +

Warning

Well, this is your first warning. Do that again and I'll wipe your hard disk -
-        
-            <x-bladewind::alert
-                type="warning">
+    @php
+        $alertExample3 = <<<'HTML'
+            
                 Well, this is your first warning. Do that again and I'll wipe your hard disk
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Success

Files were successfully uploaded -
-        
-            <x-bladewind::alert
-                type="success">
+    @php
+        $alertExample4 = <<<'HTML'
+            
                 Files were successfully uploaded
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Dark Coloured Alerts

You can set the shade="dark" attribute on the alert component to get darker colours.

Info

Your subscription is expiring in 19 days. Renew now -
-        
-            <x-bladewind::alert
-                shade="dark">
+    @php
+        $alertExample5 = <<<'HTML'
+            
                 Your subscription is expiring in 19 days.
-                <a href="#" class="!text-white/70">Renew now</a>
-            </x-bladewind::alert>
-        
-    
+ Renew now + + HTML; + @endphp +

Error

You do not have permission to upload files -
-        
-            <x-bladewind::alert type="error" shade="dark">
+    @php
+        $alertExample6 = <<<'HTML'
+            
                 You do not have permission to upload files
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Warning

Well, this is your first warning. Do that again and I'll wipe your hard disk -
-        
-            <x-bladewind::alert type="warning" shade="dark">
+    @php
+        $alertExample7 = <<<'HTML'
+            
                 Well, this is your first warning. Do that again and I'll wipe your hard disk
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Success

Files were successfully uploaded -
-        
-            <x-bladewind::alert type="success" shade="dark">
+    @php
+        $alertExample8 = <<<'HTML'
+            
                 Files were successfully uploaded
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Without Icons

By default the alert component shows a close icon and another icon that matches the type of alert being displayed. Both icons can be turned off separately.

Info

Your subscription is expiring in 19 days. Renew now -
-        
-            <x-bladewind::alert
+    @php
+        $alertExample9 = <<<'HTML'
+            
                 Your subscription is expiring in 19 days.
-                <a href="#" class="!text-white/70">Renew now</a>
-            </x-bladewind::alert>
-        
-    
+ Renew now + + HTML; + @endphp +

Error

You do not have permission to upload files -
-        
-            <x-bladewind::alert
+    @php
+        $alertExample10 = <<<'HTML'
+            
                 You do not have permission to upload files
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Warning

Well, this is your first warning. Do that again and I'll wipe your hard disk -
-        
-            <x-bladewind::alert
+    @php
+        $alertExample11 = <<<'HTML'
+            
                 Well, this is your first warning.
                 Do that again and I'll wipe your hard disk
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

More Colours

Like most BladewindUI components, the Alert component can be displayed in any of the colours defined in our palette. All colours work for both the @@ -149,156 +160,174 @@

Pink

I am a pink alert. How do I look?

I am a pink alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="pink">
+    @php
+        $alertExample12 = <<<'HTML'
+            
                 I am a pink alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="pink" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample13 = <<<'HTML'
+            
                 I am a pink alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Cyan

I am a cyan alert. How do I look?

I am a cyan alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="cyan">
+    @php
+        $alertExample14 = <<<'HTML'
+            
                 I am a cyan alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="cyan" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample15 = <<<'HTML'
+            
                 I am a cyan alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Purple

I am a purple alert. How do I look?

I am a purple alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="purple">
+    @php
+        $alertExample16 = <<<'HTML'
+            
                 I am a purple alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="purple" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample17 = <<<'HTML'
+            
                 I am a purple alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Gray

I am a gray alert. How do I look?

I am a gray alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="gray">
+    @php
+        $alertExample18 = <<<'HTML'
+            
                 I am a gray alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="gray" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample19 = <<<'HTML'
+            
                 I am a gray alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Violet

I am a violet alert. How do I look?

I am a violet alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="violet">
+    @php
+        $alertExample20 = <<<'HTML'
+            
                 I am a violet alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="violet" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample21 = <<<'HTML'
+            
                 I am a violet alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Indigo

I am a indigo alert. How do I look?

I am a indigo alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="indigo">
+    @php
+        $alertExample22 = <<<'HTML'
+            
                 I am a indigo alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="indigo" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample23 = <<<'HTML'
+            
                 I am a indigo alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Fuchsia

I am a fuchsia alert. How do I look?

I am a fuchsia alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="fuchsia">
+    @php
+        $alertExample24 = <<<'HTML'
+            
                 I am a fuchsia alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="fuchsia" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample25 = <<<'HTML'
+            
                 I am a fuchsia alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Orange

I am a orange alert. How do I look?

I am a orange alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="orange">
+    @php
+        $alertExample26 = <<<'HTML'
+            
                 I am a orange alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="orange" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample27 = <<<'HTML'
+            
                 I am a orange alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Transparent

I am a transparent alert. How do I look?

I am a transparent alert. Dark version. How do I look?

-
-        
-            <x-bladewind::alert color="transparent">
+    @php
+        $alertExample28 = <<<'HTML'
+            
                 I am a transparent alert. How do I look?
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="transparent" shade="dark">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample29 = <<<'HTML'
+            
                 I am a transparent alert. Dark version. How do I look?
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

Other Icons & Avatars

Icons

@@ -309,21 +338,23 @@ No more alarm snoozing. Wake up!

Your BladewindUI subscription is expiring soon. Pay up!

-
-        
-            <x-bladewind::alert color="indigo" icon="bell-alert">
+    @php
+        $alertExample30 = <<<'HTML'
+            
                 No more alarm snoozing. Wake up
-            </x-bladewind::alert>
-        
-    
-
-        
-            <x-bladewind::alert color="indigo" shade="dark"
-                icon="currency-dollar">
+            
+            HTML;
+    @endphp
+    
+    @php
+        $alertExample31 = <<<'HTML'
+            
                 Your BladewindUI subscription is expiring soon. Pay up!
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

If the default icon size does not suit your needs, you can modify the css of the icon by setting the icon_avatar_css attribute to your preferred TailwindCSS classes. @@ -335,17 +366,18 @@ avoid losing your information.

-
-        
-            <x-bladewind::alert color="cyan" shade="dark"
+    @php
+        $alertExample32 = <<<'HTML'
+            
+                
Subscription overdue
Your BladewindUI subscription is overdue by 3 months. Please pay before the 30th of this month to avoid losing your information. - </x-bladewind::alert> -
-
+ + HTML; + @endphp +

Avatars

It is possible to use avatars instead of icons to spice the alerts up a bit. The avatar is displayed using the BladewindUI Avatar component. @@ -355,14 +387,15 @@ Jane has been added to your friends list

-
-        
-            <x-bladewind::alert color="violet" shade="dark"
-                avatar="/assets/images/issah.jpg">
+    @php
+        $alertExample33 = <<<'HTML'
+            
                 Jane has been added to your friends list
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp +

The default avatar size used in the alert is tiny. Other sizes are available here and can be changed by setting the size attribute of the component. This attribute will only take effect when using an avatar. @@ -375,22 +408,23 @@

2 days ago

-
-        
-            <x-bladewind::alert color="cyan"
+    @php
+        $alertExample34 = <<<'HTML'
+            
 
-                <div><strong>New friend request</strong></div>
+                
New friend request
Jane C. Doe wants to connect as a friend in your professional network. - <div class="text-sm opacity-70">2 days ago</div> +
2 days ago
- </x-bladewind::alert> -
-
+ + HTML; + @endphp +

@@ -503,9 +537,9 @@

Alert with all attributes defined

-
-        
-            <x-bladewind::alert
+    @php
+        $alertExample35 = <<<'HTML'
+            
                 Stay safe. Wash your hands for 20 seconds
-            </x-bladewind::alert>
-        
-    
+ + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > alert.blade.php diff --git a/resources/views/docs/avatar.blade.php b/resources/views/docs/avatar.blade.php index 4ce60744..9efafaf1 100644 --- a/resources/views/docs/avatar.blade.php +++ b/resources/views/docs/avatar.blade.php @@ -13,11 +13,12 @@
-
-        
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-        
-    
+ @php + $avatarExample1 = <<<'HTML' + + HTML; + @endphp +

Different Sizes

You can specify a size for the avatar. See the full list of attributes for the available sizes. The default size is regular

@@ -30,37 +31,38 @@

-
-        
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="tiny" />
+    @php
+        $avatarExample2 = <<<'HTML'
+            
 
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="small" />
+            
 
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="medium" />
+            
 
-            // this is the default
-            <x-bladewind::avatar
-            image="/path/to/the/image/file" />
+                // this is the default
+                
 
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="big" />
+            
 
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="huge" />
+            
 
-        <x-bladewind::avatar
-            image="/path/to/the/image/file"
-            size="omg" />
-        
-    
+ + HTML; + @endphp +

Stacked Avatars

@@ -77,17 +79,18 @@


-
-        
-        <x-bladewind::avatars stacked="true">
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-        </x-bladewind::avatars>
-        
-    
+ @php + $avatarExample3 = <<<'HTML' + + + + + + + + HTML; + @endphp +

Plus More

There are cases where you have several avatars but only want to display a specific number and indicate how many more there are to display. @@ -105,19 +108,20 @@ -

-        
-        <x-bladewind::avatars
-            plus="95"
-            plus_action="alert('show more avatars')">
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-            <x-bladewind::avatar image="/path/to/the/image/file" />
-        </x-bladewind::avatars>
-        
-    
+ @php + $avatarExample4 = <<<'HTML' + + + + + + + + HTML; + @endphp +

Dot Indicator

Avatars can be displayed with a status indicator. These statuses could be online, offline, invisible. To show a dot indicator on an avatar simply set dotted="true". @@ -126,13 +130,14 @@
-

-
-<x-bladewind::avatar
-    dotted="true"
-    image="/path/to/the/image/file" />
-
-
+@php + $avatarExample5 = <<<'HTML' + + HTML; + @endphp +

By default the dot indicator is displayed at the base of the avatar. To change the position to the top of the avatar, set the dot_position="top" attribute.

@@ -140,14 +145,15 @@
-
-
-<x-bladewind::avatar
-    dotted="true"
-    dot_position="top"
-    image="/path/to/the/image/file" />
-
-
+@php + $avatarExample6 = <<<'HTML' + + HTML; + @endphp +

The dot is available in different colours if you wish to use an indicator that matches your theme. This also allows you to set different colours for different statuses. Set the dot_color attribute to any of the nine colours compiled into BladewindUI. See the attributes table below for all colours. @@ -160,15 +166,16 @@
-

-
-<x-bladewind::avatars dotted="true">
-    <x-bladewind::avatar dot_color="primary" image="..." />
-    <x-bladewind::avatar dot_color="gray" image="..." />
-    <x-bladewind::avatar dot_color="red" image="..." />
-</x-bladewind::avatars>
-
-
+@php + $avatarExample7 = <<<'HTML' + + + + + + HTML; + @endphp +

Labels

@@ -181,21 +188,24 @@
-

-
-    <x-bladewind::avatar dotted="true" label="MO" />
-
-
-
-
-    <x-bladewind::avatar label="MK" />
-
-
-
-
-    <x-bladewind::avatar image="PP" />
-
-
+@php + $avatarExample8 = <<<'HTML' + + HTML; + @endphp + +@php + $avatarExample9 = <<<'HTML' + + HTML; + @endphp + +@php + $avatarExample10 = <<<'HTML' + + HTML; + @endphp +

@@ -206,15 +216,16 @@

-
-
-<x-bladewind::avatars stacked="true" dotted="true" plus="34">
-    <x-bladewind::avatar label="SF" />
-    <x-bladewind::avatar label="ZH" />
-    <x-bladewind::avatar label="RB" />
-</x-bladewind::avatars>
-
-
+@php + $avatarExample11 = <<<'HTML' + + + + + + HTML; + @endphp +

@@ -224,15 +235,16 @@
-
-
-<x-bladewind::avatars dotted="true" class="space-x-4">
-    <x-bladewind::avatar label="SF" bg_color="orange" dot_color="orange" />
-    <x-bladewind::avatar label="ZH" bg_color="blue" dot_color="blue" />
-    <x-bladewind::avatar label="RB" bg_color="purple" dot_color="purple" />
-</x-bladewind::avatars>
-
-
+@php + $avatarExample12 = <<<'HTML' + + + + + + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Avatar component.

@@ -305,20 +317,21 @@

 

Avatars with all attributes defined

-
-
-<x-bladewind::avatars
-    size="big"
-    show_ring="false"
-    dotted="true"
-    dot_color="red"
-    dot_position="top"
-    plus="33"
-    plus_action="showMorePictures()"
-    stacked="true"
-    class="ring-blue-200 ring-offset-2" />
-
-
+@php + $avatarExample13 = <<<'HTML' + + HTML; + @endphp +

 

Avatar Component Attributes

@@ -386,21 +399,22 @@ class="ring-blue-200 ring-offset-2" />

 

Avatar with all attributes defined

-
-
-    <x-bladewind::avatar
-        image="/path/to/the/image/file"
-        alt="company logo"
-        size="big"
-        stacked="true"
-        dotted="true"
-        bg_color="cyan"
-        show_ring="false",
-        dot_color="red",
-        dot_position="top"
-        class="ring-blue-200 ring-offset-2" />
-
-
+@php + $avatarExample14 = <<<'HTML' + + HTML; + @endphp +

 

diff --git a/resources/views/docs/bell.blade.php b/resources/views/docs/bell.blade.php index 1ceeeed3..117dfc70 100644 --- a/resources/views/docs/bell.blade.php +++ b/resources/views/docs/bell.blade.php @@ -12,11 +12,12 @@ -

-        
-            <x-bladewind::bell />
-        
-    
+ @php + $bellExample1 = <<<'HTML' + + HTML; + @endphp +

No Dot Indicator

@@ -27,11 +28,12 @@ -

-        
-            <x-bladewind::bell show_dot="false" />
-        
-    
+ @php + $bellExample2 = <<<'HTML' + + HTML; + @endphp +

Animated Dot Indicator

@@ -42,11 +44,12 @@ -

-        
-            <x-bladewind::bell animate_dot="true" />
-        
-    
+ @php + $bellExample3 = <<<'HTML' + + HTML; + @endphp +

Inverted Bell

@@ -57,11 +60,12 @@ -

-        
-            <x-bladewind::bell invert="true" />
-        
-    
+ @php + $bellExample4 = <<<'HTML' + + HTML; + @endphp +

Different Sizes

The bell component exists in two sizes. small and big. The default size is small.

@@ -71,17 +75,19 @@ -
-        
+    @php
+        $bellExample5 = <<<'HTML'
             // size="small" can be omitted since it is the default
-            <x-bladewind::bell size="small" />
-        
-    
-
-        
-            <x-bladewind::bell size="big" />
-        
-    
+ + HTML; + @endphp + + @php + $bellExample6 = <<<'HTML' + + HTML; + @endphp +

Different Colours

@@ -114,28 +120,29 @@ -

-        
-        <x-bladewind::bell color="primary" />
+    @php
+        $bellExample7 = <<<'HTML'
+            
 
-        <x-bladewind::bell color="red" />
+            
 
-        <x-bladewind::bell color="yellow" />
+            
 
-        <x-bladewind::bell color="green" />
+            
 
-        <x-bladewind::bell color="pink" />
+            
 
-        <x-bladewind::bell color="cyan" />
+            
 
-        <x-bladewind::bell color="black" />
+            
 
-        <x-bladewind::bell color="purple" />
+            
 
-        <x-bladewind::bell color="orange" />
-
-        
-    
+ + HTML; + @endphp + +

Events

@@ -194,42 +201,42 @@ -

-        
-            <x-bladewind::dropmenu>
-                <x-slot name="trigger">
-                    <x-bladewind::bell />
-                </x-slot>
-                <x-bladewind.dropmenu.item>
-                    <x-bladewind.listview transparent="true">
-
-                        <x-bladewind.listview.item>
-                            <x-bladewind.avatar size="small" image="..." />
-                            <div class="mx-1 pt-1">
-                                <div class="text-sm">
-                                    <span class="font-medium text-slate-900">
+    @php
+        $bellExample8 = <<<'HTML'
+            
+                
+                    
+                
+                
+                    
+
+                        
+                            
+                            
+
+ Michael - </span> - assigned <a href="#">a task</a> to you - <div class="text-xs">3 hours ago</div> - </div> - </div> - </x-bladewind.listview.item> - - <x-bladewind.listview.item> - ... - </x-bladewind.listview.item> + + assigned a task to you +
3 hours ago
+
+
+
- <x-bladewind.listview.item> + ... - </x-bladewind.listview.item> + - </x-bladewind.listview> - </x-bladewind.dropmenu.item> - </x-bladewind.dropmenu> + + ... + -
-
+ + + + HTML; + @endphp +

Onclick, Onmouseover, On-anything

@@ -240,23 +247,25 @@

mouseover


-
-                
-                    <x-bladewind::bell
-                        onmouseover="alert('..')" />
-                
-            
+ @php + $bellExample9 = <<<'HTML' + + HTML; + @endphp +
click


-
-                
-                    <x-bladewind::bell
-                        onclick="alert('...')" />
-                
-            
+ @php + $bellExample10 = <<<'HTML' + + HTML; + @endphp +
@@ -299,16 +308,17 @@

Bell with all attributes defined

-
-        
-            <x-bladewind::bell
+    @php
+        $bellExample11 = <<<'HTML'
+            
-    
+ size="big" /> + HTML; + @endphp +

diff --git a/resources/views/docs/breadcrumbs.blade.php b/resources/views/docs/breadcrumbs.blade.php index dca96ea6..78999b11 100644 --- a/resources/views/docs/breadcrumbs.blade.php +++ b/resources/views/docs/breadcrumbs.blade.php @@ -21,11 +21,16 @@ Breadcrumbs -

<x-bladewind::breadcrumbs aria-label="Breadcrumb">
-    <x-bladewind::breadcrumbs.item href="/" icon="home">Home</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item href="/components">Components</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item current>Breadcrumbs</x-bladewind::breadcrumbs.item>
-</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample1 = <<<'HTML' + + Home + Components + Breadcrumbs + + HTML; + @endphp +

@@ -42,11 +47,16 @@ Customer details -

<x-bladewind::breadcrumbs aria-label="Customer path">
-    <x-bladewind::breadcrumbs.item href="/">Home</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item href="/customers">Customers</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item href="/customers/42" current>Customer details</x-bladewind::breadcrumbs.item>
-</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample2 = <<<'HTML' + + Home + Customers + Customer details + + HTML; + @endphp +

Icons

@@ -65,11 +75,16 @@ Profile -

<x-bladewind::breadcrumbs>
-    <x-bladewind::breadcrumbs.item href="/" icon="home">Home</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item href="/settings" icon="cog-6-tooth">Settings</x-bladewind::breadcrumbs.item>
-    <x-bladewind::breadcrumbs.item current icon="user-circle" icon-type="solid">Profile</x-bladewind::breadcrumbs.item>
-</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample3 = <<<'HTML' + + Home + Settings + Profile + + HTML; + @endphp +

Separator Options

@@ -84,13 +99,14 @@ Breadcrumbs -

-        
-            <x-bladewind::breadcrumbs separator="slash">
+    @php
+        $breadcrumbsExample4 = <<<'HTML'
+            
                 ...
-            </x-bladewind::breadcrumbs>
-        
-    
+ + HTML; + @endphp +
@@ -99,13 +115,14 @@ Breadcrumbs
-
-        
-            <x-bladewind::breadcrumbs separator=">>>">
+    @php
+        $breadcrumbsExample5 = <<<'HTML'
+            
                 ...
-            </x-bladewind::breadcrumbs>
-        
-    
+ + HTML; + @endphp +

Sizes

@@ -123,7 +140,12 @@ @endforeach -

<x-bladewind::breadcrumbs size="medium">...</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample6 = <<<'HTML' + ... + HTML; + @endphp +

Long And Collapsed Trails

@@ -143,7 +165,12 @@ Shipment details -

<x-bladewind::breadcrumbs collapse="false">...</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample7 = <<<'HTML' + ... + HTML; + @endphp +

Dark Mode And RTL

Colours automatically match whichever theme, light or dark, your page is currently using, so there is no need to style this component separately for dark mode. The same goes for right to left languages such as Arabic or Hebrew. The trail will follow whatever reading direction the surrounding page has already set. If you need one breadcrumb trail to run right to left on its own, separately from the rest of the page, you can also set dir="rtl" directly on that breadcrumb, and the little chevron separators will flip direction to match automatically.

@@ -154,7 +181,12 @@ مسار التنقل -
<x-bladewind::breadcrumbs dir="rtl" aria-label="مسار الصفحة">...</x-bladewind::breadcrumbs>
+ @php + $breadcrumbsExample8 = <<<'HTML' + ... + HTML; + @endphp +

Accessibility

    @@ -192,25 +224,35 @@

    Breadcrumbs with all attributes defined

    -
    <x-bladewind::breadcrumbs
    -    separator="slash"
    -    size="medium"
    -    collapse="false"
    -    aria-label="Order path"
    -    class="rounded-lg">
    -    ...
    -</x-bladewind::breadcrumbs>
    + @php + $breadcrumbsExample9 = <<<'HTML' + + ... + + HTML; + @endphp +

    Breadcrumbs Item with all attributes defined

    -
    <x-bladewind::breadcrumbs.item
    -    href="/settings"
    -    current="true"
    -    icon="cog-6-tooth"
    -    icon-type="solid"
    -    icon-dir="icons/custom"
    -    class="font-semibold">
    -    Settings
    -</x-bladewind::breadcrumbs.item>
    + @php + $breadcrumbsExample10 = <<<'HTML' + + Settings + + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > breadcrumbs > [index.blade.php, item.blade.php] diff --git a/resources/views/docs/button.blade.php b/resources/views/docs/button.blade.php index 9bdf675a..c23cb8d3 100644 --- a/resources/views/docs/button.blade.php +++ b/resources/views/docs/button.blade.php @@ -15,18 +15,20 @@ Subscribe Now Subscribe Now -
    -        
    -            <x-bladewind::button>Subscribe Now</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button uppercasing="false">
    +    @php
    +        $buttonExample1 = <<<'HTML'
    +            Subscribe Now
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $buttonExample2 = <<<'HTML'
    +            
                     Subscribe Now
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    By default the component uses the <button> tag to build the button. To use the <a> tag to build the button, you will need to specify @@ -35,15 +37,16 @@

    Subscribe Now
    -
    -        
    -            <!--
    -            // this button is created using the <a> tag
    +    @php
    +        $buttonExample3 = <<<'HTML'
    +            
    -            <x-bladewind::button tag="a">subscribe now</x-bladewind::button>
    -        
    -    
    + subscribe now + HTML; + @endphp +

    Button Types

    @@ -56,34 +59,38 @@ Primary Button Primary Button -

    -        
    -            <x-bladewind::button>Primary Button</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button outline="true">Primary Button</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample4 = <<<'HTML' + Primary Button + HTML; + @endphp + + @php + $buttonExample5 = <<<'HTML' + Primary Button + HTML; + @endphp +

    Secondary Buttons

    The secondary buttons depend on the secondary colour defined in your project's tailwind.config.js. Please ensure this is defined.

    Secondary Button Secondary Button
    -
    -        
    -            <x-bladewind::button type="secondary">Secondary Button</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button type="secondary" outline="true">
    +    @php
    +        $buttonExample6 = <<<'HTML'
    +            Secondary Button
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $buttonExample7 = <<<'HTML'
    +            
                     Secondary Button
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    Circular Buttons

    @@ -95,16 +102,18 @@ -
    -        
    -            <x-bladewind::button.circle icon="bell-alert" />
    -        
    -    
    -
    -        
    -            <x-bladewind::button.circle outline="true" icon="bell-alert" />
    -        
    -    
    + @php + $buttonExample8 = <<<'HTML' + + HTML; + @endphp + + @php + $buttonExample9 = <<<'HTML' + + HTML; + @endphp +

    Bladewind determines which button type (primary or secondary) to display based on the type attribute. The circular buttons @@ -115,11 +124,12 @@

    -
    -        
    -            <x-bladewind::button.circle color="secondary" outline icon="bell-alert" />
    -        
    -    
    + @php + $buttonExample10 = <<<'HTML' + + HTML; + @endphp +

    Outline Buttons

    @@ -132,16 +142,18 @@ Cyan Outline Secondary Outline -

    -        
    -            <x-bladewind::button radius="full" outline="true" color="cyan">Cyan outline</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button radius="full" outline="true" type="secondary">Secondary outline</x-bladewind::button>
    -        
    -    

    + @php + $buttonExample11 = <<<'HTML' + Cyan outline + HTML; + @endphp + + @php + $buttonExample12 = <<<'HTML' + Secondary outline + HTML; + @endphp +

    By default, outline buttons use the TailwindCSS border-2 width. You can modify the border width and specify any of the other supported TailwindCSS border widths without the "border-" prefix by setting the @@ -153,21 +165,24 @@ Border 8
    -

    -        
    -            <x-bladewind::button outline="true" border_width="2">Border 2</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button outline="true" border_width="4">Border 4</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button outline="true" border_width="8">Border 8</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample13 = <<<'HTML' + Border 2 + HTML; + @endphp + + @php + $buttonExample14 = <<<'HTML' + Border 4 + HTML; + @endphp + + @php + $buttonExample15 = <<<'HTML' + Border 8 + HTML; + @endphp +

    Button States

    BladewindUI buttons can exist in a couple of states. Probably states isn't the right term for these but let's stick with that for lack of a better term/ @@ -176,11 +191,12 @@

    No Focus Ring
    -
    -        
    -            <x-bladewind::button show_focus_ring="false">no focus ring</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample16 = <<<'HTML' + no focus ring + HTML; + @endphp +

    Different Focus Ring Widths

    @@ -190,31 +206,36 @@ Ring 4 Ring 8
    -
    -        
    -            <x-bladewind::button>default</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button ring_width="1">ring 1</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button ring_width="2">ring 2</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button ring_width="4">ring 4</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button ring_width="8">ring 8</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample17 = <<<'HTML' + default + HTML; + @endphp + + @php + $buttonExample18 = <<<'HTML' + ring 1 + HTML; + @endphp + + @php + $buttonExample19 = <<<'HTML' + ring 2 + HTML; + @endphp + + @php + $buttonExample20 = <<<'HTML' + ring 4 + HTML; + @endphp + + @php + $buttonExample21 = <<<'HTML' + ring 8 + HTML; + @endphp +

    Disabled Button

    @@ -222,25 +243,28 @@ Disabled Secondary Disabled Outline
    -
    -        
    -            <x-bladewind::button disabled="true">disabled</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample22 = <<<'HTML'
    +            disabled
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $buttonExample23 = <<<'HTML'
    +            
                     disabled secondary
    -            </x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button disabled outline>disabled outline</x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp + + @php + $buttonExample24 = <<<'HTML' + disabled outline + HTML; + @endphp +

    Different Sizes

    @@ -256,11 +280,12 @@ -

    -        
    -            <x-bladewind::button size="tiny">tiny</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample25 = <<<'HTML' + tiny + HTML; + @endphp +

    Small

    small @@ -269,11 +294,12 @@
    -
    -        
    -            <x-bladewind::button size="small">small</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample26 = <<<'HTML' + small + HTML; + @endphp +

    Regular / Default

    default @@ -282,16 +308,18 @@
    -
    -        
    -            <x-bladewind::button size="regular">default</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button>default</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample27 = <<<'HTML' + default + HTML; + @endphp + + @php + $buttonExample28 = <<<'HTML' + default + HTML; + @endphp +

    Medium

    medium @@ -300,16 +328,18 @@
    -
    -        
    -            <x-bladewind::button size="medium">medium</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button.circle size="medium">medium</x-bladewind::button.circle>
    -        
    -    
    + @php + $buttonExample29 = <<<'HTML' + medium + HTML; + @endphp + + @php + $buttonExample30 = <<<'HTML' + medium + HTML; + @endphp +

    Big

    big @@ -318,11 +348,13 @@
    -
    -        
    -            <x-bladewind::button size="big">big</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample31 = <<<'HTML' + big + HTML; + @endphp + +

    Different Radii

    @@ -335,54 +367,62 @@ Medium Full -

    -        
    -            <x-bladewind::button radius="none">none</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <!-- this is the default so radius="small" can be omitted -->
    -            <x-bladewind::button radius="small">small</x-bladewind::button>
    -            <x-bladewind::button>small</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button radius="medium">medium</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button radius="full">full</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample32 = <<<'HTML' + none + HTML; + @endphp + + @php + $buttonExample33 = <<<'HTML' + + small + small + HTML; + @endphp + + @php + $buttonExample34 = <<<'HTML' + medium + HTML; + @endphp + + @php + $buttonExample35 = <<<'HTML' + full + HTML; + @endphp +
    None Small Medium Full
    -
    -        
    -            <x-bladewind::button type="secondary" radius="none">none</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button type="secondary" radius="small">small</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button type="secondary" radius="medium">medium</x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button type="secondary" radius="full">full</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample36 = <<<'HTML' + none + HTML; + @endphp + + @php + $buttonExample37 = <<<'HTML' + small + HTML; + @endphp + + @php + $buttonExample38 = <<<'HTML' + medium + HTML; + @endphp + + @php + $buttonExample39 = <<<'HTML' + full + HTML; + @endphp +

    With Spinners

    Buttons can have spinners. This is useful when indicating progress of a form submission or progress of any other action. The button spinners use the BladewindUI Spinner component.

    @@ -395,15 +435,16 @@ Saving ... Saving ... -
    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample40 = <<<'HTML'
    +            
                     Saving...
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    It is possible to trigger the spinning effect when the button is clicked. This can be achieved using the helper functions bundled with BladewindUI. In this case you will need to set the name and onclick attributes of the button. @@ -412,16 +453,17 @@ Click for my spinner    -

    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample41 = <<<'HTML'
    +            
                     Click for my spinner
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    With Icons

    Buttons can have icons. To add an icon simply specify the icon name in the icon attribute. Refer to our Icon component page for details on icon names. @@ -434,34 +476,37 @@ Refresh page Refresh page -

    -        
    -            <x-bladewind::button icon="arrow-path">
    +    @php
    +        $buttonExample42 = <<<'HTML'
    +            
                     Refresh Page
    -            </x-bladewind::button>
    -        
    -    
    -
    -        
    -            <x-bladewind::button icon="arrow-path" icon_right="true">
    +            
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $buttonExample43 = <<<'HTML'
    +            
                     Refresh Page
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +
    Next Chapter
    -
    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample44 = <<<'HTML'
    +            
                     Next Chapter
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    Form Submission

    @@ -484,13 +529,14 @@

    -
    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample45 = <<<'HTML'
    +            
    -    
    + class="mx-auto block">click me to submit + HTML; + @endphp +

    Coloured Button

    @@ -499,11 +545,12 @@ class="mx-auto block">click me to submit</x-bladewind::button> Set the color attribute to your preferred colour.

    -
    -        
    -            <x-bladewind::button color="red">red button</x-bladewind::button>
    -        
    -    
    + @php + $buttonExample46 = <<<'HTML' + red button + HTML; + @endphp +
    Red button @@ -625,16 +672,17 @@ class="mx-auto block">click me to submit</x-bladewind::button> There is more on this here.

    -

    -            
    -                // your project's tailwind.config.js
    -                ...
    -                extend: {
    -                    colors: {
    -                        primary: colors.indigo,
    -                ...
    -            
    -        
    + @php + $buttonExample47 = <<<'HTML' + // your project's tailwind.config.js + ... + extend: { + colors: { + primary: colors.indigo, + ... + HTML; + @endphp +

    Button Events

    @@ -646,14 +694,15 @@ class="mx-auto block">click me to submit</x-bladewind::button> I have an onclick
    -
    -        
    -            <x-bladewind::button
    -                onclick="alert('you clicked me')">
    +    @php
    +        $buttonExample48 = <<<'HTML'
    +            
                     click me to submit
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Button component.

    @@ -763,9 +812,9 @@ class="mx-auto block">click me to submit</x-bladewind::button>

    Button with all attributes defined

    -
    -        
    -            <x-bladewind::button
    +    @php
    +        $buttonExample49 = <<<'HTML'
    +            
                     ...
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > button > [index.blade.php, circle.blade.php] diff --git a/resources/views/docs/calendar.blade.php b/resources/views/docs/calendar.blade.php index e0ff5284..6251a2d2 100644 --- a/resources/views/docs/calendar.blade.php +++ b/resources/views/docs/calendar.blade.php @@ -34,8 +34,8 @@
    -
    -        
    +    @php
    +        $calendarExample1 = <<<'HTML'
                 // this data powers the calendar above
                 $teamEvents = [
                     ['date' => now()->startOfMonth()->addDays(4)->toDateString(), 'label' => 'Sprint planning', 'type' => 'info'],
    @@ -48,10 +48,16 @@
                     ['date' => now()->format('Y-m-d').' 09:30', 'end' => now()->format('Y-m-d').' 10:30', 'label' => 'Design sync', 'type' => 'success'],
                     ['date' => now()->format('Y-m-d').' 14:00', 'end' => now()->format('Y-m-d').' 15:30', 'label' => 'Kenya project review', 'type' => 'warning'],
                 ];
    -        
    -    
    + HTML; + @endphp + -
    <x-bladewind::calendar name="team-cal" label="Team calendar" :events="$teamEvents" />
    + @php + $calendarExample2 = <<<'HTML' + + HTML; + @endphp +

    Views

    The view attribute controls how much of the calendar Calendar shows at once. @@ -79,15 +85,16 @@ Try selecting a few dates below to see how it works.

    -
    -
    -    <x-bladewind::calendar
    -        name="availability"
    -        selectable="multiple"
    -        label="Mark your availability"
    -        :selected="[now()->addDays(2)->toDateString(), now()->addDays(5)->toDateString()]" />
    -
    -    
    + @php + $calendarExample3 = <<<'HTML' + + HTML; + @endphp +
    Calendar does not have a mode for picking a start date and an end date together as one range. If you need that, Datepicker's range option already does it well, and it is built for exactly that job: a date range typed into a form field. Calendar is meant for looking at a whole month or week and picking individual days out of it, not for choosing a single continuous range. @@ -141,18 +148,23 @@ @endphp
    -
    <x-bladewind::calendar
    -    name="team-calendar"
    -    :events="[
    -        [
    -            'date' => '2026-08-14 11:00',
    -            'end' => '2026-08-14 11:30',
    -            'label' => 'Design review',
    -            'type' => 'info',
    -            'href' => '/component/calendar',
    -            'description' => "Walk through the new event details drawer with the team.\nBring the latest screenshots.",
    -        ],
    -    ]" />
    + @php + $calendarExample4 = <<<'HTML' + + HTML; + @endphp +

    Week and Day View

    Switching the calendar to week view replaces the month grid with a detailed weekly schedule. Each of the seven days has its own column, while the hours run vertically from midnight to midnight. All-day and multi-day events appear in a dedicated row at the top, keeping them separate from events scheduled for specific times.

    @@ -170,17 +182,32 @@ @endphp -
    <x-bladewind::calendar
    -    name="week-demo" label="Week demo calendar" view="week" :events="$teamEvents" />
    + @php + $calendarExample5 = <<<'HTML' + + HTML; + @endphp +

    Week and day views do not open at midnight. Since most events happen during the day, the calendar automatically scrolls to a practical morning hour, bringing the most relevant part of the schedule into view immediately.

    The example below shows the same meetings in day view. Overlapping events are displayed side by side, just as they are in week view. Both views use the same underlying layout, with day view simply displaying one wider column instead of seven.

    -
    $weekAnchor = now()->startOfWeek();
    -
    <x-bladewind::calendar
    -    name="day-demo" label="Day demo calendar" view="day" :events="$teamEvents"
    -    :date="$weekAnchor->copy()->addDays(1)->toDateString()" />
    + @php + $calendarExample6 = <<<'HTML' + $weekAnchor = now()->startOfWeek(); + HTML; + @endphp + + @php + $calendarExample7 = <<<'HTML' + + HTML; + @endphp +

    Restricting Dates

    @@ -188,11 +215,16 @@ -
    <x-bladewind::calendar name="booking" label="Booking calendar"
    -    selectable="single"
    -    :min-date="now()->toDateString()"
    -    :max-date="now()->addDays(20)->toDateString()"
    -    :disabled-dates="[now()->addDays(3)->toDateString(), now()->addDays(4)->toDateString()]" />
    + @php + $calendarExample8 = <<<'HTML' + + HTML; + @endphp +

    By default, month view also shows a few grayed out days from the previous and next month so every row of the grid stays full. This is controlled by show-other-month-days, which is true unless you turn it off. Setting it to false leaves those cells empty instead of showing the neighboring month's dates.

    @@ -261,47 +293,57 @@

    JavaScript API

    Every helper function listed here returns true once it succeeds, or if the state it was asked for was already true. It returns false if the calendar it was pointed at could not be found, or if a cancelable event you are listening for called preventDefault() and stopped the change from happening.

    -
    nextCalendarPeriod('team-calendar');
    -previousCalendarPeriod('team-calendar');
    -goToCalendarToday('team-calendar');
    -goToCalendarMonth('team-calendar', 2026, 12);
    -setCalendarView('team-calendar', 'week');
    -selectCalendarDate('team-calendar', '2026-08-14');
    -clearCalendarSelection('team-calendar');
    -calendarSelectedDates('team-calendar'); // ['2026-08-14']
    + @php + $calendarExample9 = <<<'HTML' + nextCalendarPeriod('team-calendar'); + previousCalendarPeriod('team-calendar'); + goToCalendarToday('team-calendar'); + goToCalendarMonth('team-calendar', 2026, 12); + setCalendarView('team-calendar', 'week'); + selectCalendarDate('team-calendar', '2026-08-14'); + clearCalendarSelection('team-calendar'); + calendarSelectedDates('team-calendar'); // ['2026-08-14'] + HTML; + @endphp +

    Calendar with all attributes defined

    -
    <x-bladewind::calendar
    -    name="team-calendar"
    -    label="Team calendar"
    -    view="week"
    -    date="2026-08-14"
    -    week-starts="monday"
    -    selectable="multiple"
    -    :selected="['2026-08-10', '2026-08-14']"
    -    min-date="2026-01-01"
    -    max-date="2026-12-31"
    -    :disabled-dates="['2026-12-25']"
    -    :events="[
    -        [
    -            'date' => '2026-08-14 15:00',
    -            'end' => '2026-08-14 16:00',
    -            'label' => 'Sprint planning',
    -            'type' => 'info',
    -            'href' => '/events/sprint-planning',
    -            'description' => 'Review the roadmap and assign owners for Q3.',
    -        ],
    -    ]"
    -    max-events-per-day="3"
    -    show-other-month-days="true"
    -    show-week-numbers="false"
    -    highlight-today="true"
    -    height="40rem"
    -    client-navigation="true"
    -    today-label="Today"
    -    previous-label="Previous"
    -    next-label="Next"
    -    class="shadow-sm" />
    + @php + $calendarExample10 = <<<'HTML' + + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > calendar.blade.php diff --git a/resources/views/docs/card.blade.php b/resources/views/docs/card.blade.php index 9f2d7fc8..b6e238f4 100644 --- a/resources/views/docs/card.blade.php +++ b/resources/views/docs/card.blade.php @@ -20,22 +20,24 @@

    -
    -        
    -            <x-bladewind::card>
    +    @php
    +        $cardExample1 = <<<'HTML'
    +            
                     // the card content goes here
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp + -
    -        
    -            <x-bladewind::card title="recent activity">
    +    @php
    +        $cardExample2 = <<<'HTML'
    +            
                     // the card content goes here
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +

    Different Radii

    @@ -46,57 +48,62 @@

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sem sit amet velit efficitur faucibus. agna tincidunt sem, a fermentum neque arcu non est. Suspendisse sodales, nunc a hendrerit vestibulum, dui ipsum sagittis felis, vitae efficitur purus justo et mi. Pellentesque at arcu at ipsum semper fringilla. Maecenas at metus sit amet arcu ultricies rutrum. Proin dictum, magna vitae eleifend rhoncus, tellus urna elementum neque, sed dapibus lacus eros id ipsum.

    -
    -        
    -            <x-bladewind::card radius="none">
    +    @php
    +        $cardExample3 = <<<'HTML'
    +            
                     // lorem ipsum text
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sem sit amet velit efficitur faucibus. agna tincidunt sem, a fermentum neque arcu non est. Suspendisse sodales, nunc a hendrerit vestibulum, dui ipsum sagittis felis, vitae efficitur purus justo et mi. Pellentesque at arcu at ipsum semper fringilla. Maecenas at metus sit amet arcu ultricies rutrum. Proin dictum, magna vitae eleifend rhoncus, tellus urna elementum neque, sed dapibus lacus eros id ipsum.

    -
    -        
    -            <x-bladewind::card radius="small">
    +    @php
    +        $cardExample4 = <<<'HTML'
    +            
                     // lorem ipsum text
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sem sit amet velit efficitur faucibus. agna tincidunt sem, a fermentum neque arcu non est. Suspendisse sodales, nunc a hendrerit vestibulum, dui ipsum sagittis felis, vitae efficitur purus justo et mi. Pellentesque at arcu at ipsum semper fringilla. Maecenas at metus sit amet arcu ultricies rutrum. Proin dictum, magna vitae eleifend rhoncus, tellus urna elementum neque, sed dapibus lacus eros id ipsum.

    -
    -        
    -            <x-bladewind::card radius="medium">
    +    @php
    +        $cardExample5 = <<<'HTML'
    +            
                     // lorem ipsum text
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sem sit amet velit efficitur faucibus. agna tincidunt sem, a fermentum neque arcu non est. Suspendisse sodales, nunc a hendrerit vestibulum, dui ipsum sagittis felis, vitae efficitur purus justo et mi. Pellentesque at arcu at ipsum semper fringilla. Maecenas at metus sit amet arcu ultricies rutrum. Proin dictum, magna vitae eleifend rhoncus, tellus urna elementum neque, sed dapibus lacus eros id ipsum.

    -
    -        
    -            <x-bladewind::card radius="large">
    +    @php
    +        $cardExample6 = <<<'HTML'
    +            
                     // lorem ipsum text
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sem sit amet velit efficitur faucibus. agna tincidunt sem, a fermentum neque arcu non est. Suspendisse sodales, nunc a hendrerit vestibulum, dui ipsum sagittis felis, vitae efficitur purus justo et mi. Pellentesque at arcu at ipsum semper fringilla. Maecenas at metus sit amet arcu ultricies rutrum. Proin dictum, magna vitae eleifend rhoncus, tellus urna elementum neque, sed dapibus lacus eros id ipsum.

    -
    -        
    -            <x-bladewind::card radius="xl">
    +    @php
    +        $cardExample7 = <<<'HTML'
    +            
                     // lorem ipsum text
    -            </x-bladewind::card>
    -        
    -    
    + + HTML; + @endphp +
    If you need to completely overwrite the radius of the card, you can specify any of the Tailwind classes used for roundness in the class attribute. @@ -144,27 +151,28 @@ -
    -        
    -            <x-bladewind::card title="invoice details">
    -
    -                <x-bladewind.table striped="true">
    -                    <x-slot name="header">
    -                        <th>Item</th>
    -                        <th width="10%" class="text-center">Quantity</th>
    -                        <th width="20%" class="text-right">Price (USD)</th>
    -                    </x-slot>
    -                    <tr>
    -                        <td>Airpods Max (Black)</td>
    -                        <td class="text-center">1</td>
    -                        <td class="text-right">500.00</td>
    -                    </tr>
    +    @php
    +        $cardExample8 = <<<'HTML'
    +            
    +
    +                
    +                    
    +                        
+ + + + + + + + ... - </x-bladewind.table> + - </x-bladewind::card> - - + + HTML; + @endphp +

Huge Navigation Items

Below is an example of a grid-based navigation that uses cards for its menu items. The hover effect is achieved by adding additional TailwindUI classes to the class attribute of the card. @@ -192,28 +200,29 @@ -

-        
-            <div class="grid grid-cols-3 gap-5">
+    @php
+        $cardExample9 = <<<'HTML'
+            
- <x-bladewind::card class="cursor-pointer hover:shadow-gray-300"> - <svg ...>...</svg> - <span class="text-center ...">Projects</span> - </x-bladewind::card> + + ... + Projects + - <x-bladewind::card class="cursor-pointer hover:shadow-gray-300"> - <svg...>...</svg> - <span class="text-center ...">Tasks</span> - </x-bladewind::card> + + ... + Tasks + - <x-bladewind::card class="cursor-pointer hover:shadow-gray-300"> - <svg...>...</svg> - <span class="text-center ...">Ideas</span> - </x-bladewind::card> + + ... + Ideas + - </div> - -
+ + HTML; + @endphp +

Contact List

Below is an example of a contact list. This does not use the BladewindUI contact card component. @@ -291,45 +300,46 @@
-

-        
-            <div class="grid grid-cols-2 gap-3">
-
-                <x-bladewind::card compact="true">
-                    <div class="flex items-center">
-                        <div>
-                            <x-bladewind.avatar image="/path/to/the/image/file" />
-                        </div>
-                        <div class="grow pl-2 pt-1">
-                            <b>Michael K. Ocansey</b>
-                            <div class="text-sm">Senior Developer</div>
-                            <div class="text-sm">Tech Team</div>
-                        </div>
-                        <div>
-                            <a href="">
-                                <svg>
+    @php
+        $cardExample10 = <<<'HTML'
+            
+ + +
+
+ +
+
+ Michael K. Ocansey +
Senior Developer
+
Tech Team
+
+ +
+
- <x-bladewind::card compact="true"> + ... - </x-bladewind::card> + - <x-bladewind::card compact="true"> + ... - </x-bladewind::card> + - <x-bladewind::card compact="true"> + ... - </x-bladewind::card> + - </div> -
-
+ + HTML; + @endphp +

Contact Card

@@ -355,17 +365,19 @@ birthday="01-May-2000" /> -

-
-    <x-bladewind.contact-card
-        name="Michael K. Ocansey"
-        mobile="+233.123.456.789"
-        image="/path/to/the/image/file"
-        position="Senior Copywriter"
-        email="mike@bladewindui.com"
-        birthday="01-May-2000" />
-
-
+@php + $cardExample11 = <<<'HTML' + + HTML; + $cardExample11 = str_replace('BWATSIGNPLACEHOLDER', '@', $cardExample11); + @endphp +

Setting centered="true" reformats the contact card and vertically aligns and centers the content. @@ -431,40 +443,41 @@ -

-        
-            <x-bladewind::card>
+    @php
+        $cardExample12 = <<<'HTML'
+            
 
-                <x-slot:header>
-                    <div class="flex px-4 pt-2 pb-3">
-                        <x-bladewind.avatar
+                
+                    
+ -
+ image="/path/to/the/image/file" /> +
+ mkocansey + Greater Accra, Accra +
+ + + + + + +
+
+ + + +
+
+ ... +
+
+
+ + + HTML; + @endphp +

Padding And Radius

@@ -472,18 +485,19 @@ reaching for !p-5 and friends when compact is too tight and the default is too loose.

-
-        
-<x-bladewind::card padding="none">...</x-bladewind::card>
-<x-bladewind::card padding="tiny">...</x-bladewind::card>      {{-- p-2 --}}
-<x-bladewind::card padding="small">...</x-bladewind::card>     {{-- p-4 --}}
-<x-bladewind::card padding="regular">...</x-bladewind::card>   {{-- p-6, the default --}}
-<x-bladewind::card padding="medium">...</x-bladewind::card>    {{-- p-8 --}}
-<x-bladewind::card padding="big">...</x-bladewind::card>       {{-- p-10 --}}
-<x-bladewind::card padding="large">...</x-bladewind::card>     {{-- p-12 --}}
-<x-bladewind::card padding="p-5">...</x-bladewind::card>       {{-- or a utility verbatim --}}
-        
-    
+ @php + $cardExample13 = <<<'HTML' + ... + ... {{-- p-2 --}} + ... {{-- p-4 --}} + ... {{-- p-6, the default --}} + ... {{-- p-8 --}} + ... {{-- p-10 --}} + ... {{-- p-12 --}} + ... {{-- or a utility verbatim --}} + HTML; + @endphp +

compact and no_padding still behave exactly as before; an explicit padding simply wins @@ -571,26 +585,27 @@

Card with all attributes defined

-
-
-    <x-bladewind::card
-        title="recent updates"
-        has_shadow="true"
-        has_hover="false"
-        compact="false"
-        no_padding="true"
-        radius="large"
-        url="/user"
-        class="!rounded-none">
-
-        <x-slot:header>...</x-slot:header>
-        <x-slot:footer>...</x-slot:footer>
-
-        ...
-
-    </x-bladewind::card>
-
-
+@php + $cardExample14 = <<<'HTML' + + + ... + ... + + ... + + + HTML; + @endphp +

Contact Card Component Attributes

The table below shows a comprehensive list of all the attributes available for the Contact Card component.

@@ -670,28 +685,30 @@ class="!rounded-none">

Contact Card with all attributes defined

-
-
-    <x-bladewind.contact-card
-        name="Michael K. Ocansey"
-        mobile="+233.123.456.789"
-        image="/path/to/the/image/file"
-        position="Senior Copywriter"
-        email="mike@bladewindui.com"
-        department="Tech"
-        birthday="01-May-2000"
-        has_hover="true"
-        centered="true"
-        no_padding="true"
-        url="viewUserDetails(id)"
-        class="!rounded-none">
-
-        // you can define additional content here
-        ...
-
-    </x-bladewind.contact-card>
-
-
+@php + $cardExample15 = <<<'HTML' + + + // you can define additional content here + ... + + + HTML; + $cardExample15 = str_replace('BWATSIGNPLACEHOLDER', '@', $cardExample15); + @endphp + The source file for the card component is available in resources > views > components > bladewind > card.blade.php diff --git a/resources/views/docs/carousel.blade.php b/resources/views/docs/carousel.blade.php index 900a8a9b..cad0c53b 100644 --- a/resources/views/docs/carousel.blade.php +++ b/resources/views/docs/carousel.blade.php @@ -20,21 +20,22 @@
Slide 3
-
-        
-            <x-bladewind::carousel height="220px">
-                <x-bladewind::carousel.slide>
+    @php
+        $carouselExample1 = <<<'HTML'
+            
+                
                     ...
-                </x-bladewind::carousel.slide>
-                <x-bladewind::carousel.slide>
+                
+                
                     ...
-                </x-bladewind::carousel.slide>
-                <x-bladewind::carousel.slide>
+                
+                
                     ...
-                </x-bladewind::carousel.slide>
-            </x-bladewind::carousel>
-        
-    
+ + + HTML; + @endphp +

Autoplay

@@ -53,13 +54,14 @@

Slide 3
-
-        
-            <x-bladewind::carousel height="220px" autoplay="true" interval="3000">
+    @php
+        $carouselExample2 = <<<'HTML'
+            
                 ...
-            </x-bladewind::carousel>
-        
-    
+ + HTML; + @endphp +

Without Looping

@@ -77,13 +79,14 @@

Slide 3
-
-        
-            <x-bladewind::carousel height="220px" loop="false">
+    @php
+        $carouselExample3 = <<<'HTML'
+            
                 ...
-            </x-bladewind::carousel>
-        
-    
+ + HTML; + @endphp +

Without Arrows Or Indicators

@@ -98,13 +101,14 @@

Slide 2
-
-        
-            <x-bladewind::carousel height="220px" arrows="false" indicators="false">
+    @php
+        $carouselExample4 = <<<'HTML'
+            
                 ...
-            </x-bladewind::carousel>
-        
-    
+ + HTML; + @endphp +

Full List Of Attributes

Carousel

@@ -157,9 +161,9 @@

Carousel with all attributes defined

-
-        
-            <x-bladewind::carousel
+    @php
+        $carouselExample5 = <<<'HTML'
+            
-    
+ class="ml-2"> + HTML; + @endphp +

Slide

@@ -186,11 +191,12 @@ class="ml-2">

Carousel Slide with all attributes defined

-
-        
-            <x-bladewind::carousel.slide class="ml-2">...</x-bladewind::carousel.slide>
-        
-    
+ @php + $carouselExample6 = <<<'HTML' + ... + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > carousel > index.blade.php, diff --git a/resources/views/docs/centered-content.blade.php b/resources/views/docs/centered-content.blade.php index 244cb71b..32ec4401 100644 --- a/resources/views/docs/centered-content.blade.php +++ b/resources/views/docs/centered-content.blade.php @@ -11,17 +11,18 @@ -
-        
-            <x-bladewind::centered-content size="tiny">
+    @php
+        $centeredUcontentExample1 = <<<'HTML'
+            
 
-                <x-bladewind::card>
+                
                     this content is centered in this column
-                </x-bladewind::card>
+                
 
-            </x-bladewind::centered-content>
-        
-    
+ + HTML; + @endphp +

There are different sizes for the centered content component which are too wide for this documentation space. Try them out in your layouts to see how they look. @@ -32,17 +33,18 @@ -

-        
-            <x-bladewind::centered-content size="small">
+    @php
+        $centeredUcontentExample2 = <<<'HTML'
+            
 
-                <x-bladewind::card>
+                
                     this content is centered in this column
-                </x-bladewind::card>
+                
 
-            </x-bladewind::centered-content>
-        
-    
+ + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Centered Content component.

@@ -60,12 +62,13 @@

Centered Content with all attributes defined

-
-        
-            <x-bladewind::centered-content
-                size="medium"/>
-        
-    
+ @php + $centeredUcontentExample3 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > centered-content.blade.php diff --git a/resources/views/docs/chart.blade.php b/resources/views/docs/chart.blade.php index 58fb7ce6..ed0bb5aa 100644 --- a/resources/views/docs/chart.blade.php +++ b/resources/views/docs/chart.blade.php @@ -16,18 +16,20 @@ -
-
-    <?php
-        $labels = ['Red', 'Blue', 'Yellow', 'Green', 'Purple'];
-        $data = [12, 19, 13, 15, 9, 10];
-
-
-
-    
-        <x-bladewind::chart :labels="$labels" :data="$data" title="Colour ranks" />
-    
-
+@php + $chartExample1 = <<<'HTML' + +@php + $chartExample2 = <<<'HTML' + + HTML; + @endphp +

Common Chart Options

There are four top level options in the Chart.js configuration. @@ -36,18 +38,20 @@ Passing each attribute expects you to have defined the data in a format Chart.js expects. For example, whatever array you pass into the data attribute will simply be formatted into JSON and passed to Chart.js as shown below.

-
-    
-    // chart.js configuration
-    const config = {
-        type: '{{$type}}',
-        // $data was passed as an attribute to the chart component
-        data: @@json($data),
-        options: @@json($options),
-        plugins: @@json($plugins)
-    }
-    
-
+ @php + $chartExample3 = <<<'HTML' + // chart.js configuration + const config = { + type: '{{$type}}', + // $data was passed as an attribute to the chart component + data: BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERjson($data), + options: BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERjson($options), + plugins: BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERjson($plugins) + } + HTML; + $chartExample3 = str_replace('BWATSIGNPLACEHOLDER', '@', $chartExample3); + @endphp +

BladewindUI however, exposes a few common chart options that can be passed as attributes for convenience. The list is provided below. @@ -144,19 +148,20 @@ show_axis_lines="false" show_axis_labels="false" />

-
-
-<x-bladewind::chart
-    type="bar"
-    :labels="$labels"
-    :data="$data"
-    title=""
-    show_legend="false"
-    show_borders="false"
-    show_axis_lines="false"
-    show_axis_labels="false" />
-
-
+@php + $chartExample4 = <<<'HTML' + + HTML; + @endphp +

Chart Types

Area Chart

@@ -167,13 +172,14 @@ :labels="$labels" :data="$data" /> -

-
-<x-bladewind::chart
-    type="area"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample5 = <<<'HTML' + + HTML; + @endphp +

Bar Chart

Set type="bar" to display a bar chart. This is the default. @@ -183,13 +189,14 @@ :labels="$labels" :data="$data" /> -

-
-<x-bladewind::chart
-    type="bar"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample6 = <<<'HTML' + + HTML; + @endphp +

Bubble Chart

Set type="bubble" to display a bubble chart. @@ -226,27 +233,29 @@ :labels="$bubble_labels" :data="$bubble_data" /> -

-
-$bubble_labels = [];
-$bubble_data = [
-    ['x' => 5, 'y' => 10, 'r' => 8],
-    ['x' => 10, 'y' => 15, 'r' => 6],
-    ...
-    ['x' => 85, 'y' => 26, 'r' => 7],
-    ['x' => 100, 'y' => 30, 'r' => 10],
-];
-
-
-
-
-<x-bladewind::chart
-    type="bubble"
-    bg_color="rgba(153, 102, 255, 0.5)"
-    border_color="rgb(153, 102, 255)"
-    :labels="$bubble_labels" :data="$bubble_data" show_legend="false" />
-
-
+@php + $chartExample7 = <<<'HTML' + $bubble_labels = []; + $bubble_data = [ + ['x' => 5, 'y' => 10, 'r' => 8], + ['x' => 10, 'y' => 15, 'r' => 6], + ... + ['x' => 85, 'y' => 26, 'r' => 7], + ['x' => 100, 'y' => 30, 'r' => 10], + ]; + HTML; + @endphp + +@php + $chartExample8 = <<<'HTML' + + HTML; + @endphp +

Doughnut Chart

@@ -258,13 +267,14 @@ :labels="$labels" :data="$data" /> -

-
-<x-bladewind::chart
-    type="doughnut"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample9 = <<<'HTML' + + HTML; + @endphp +

Line Chart

@@ -275,13 +285,14 @@ :labels="$labels" border_width="5" :data="$data" /> -

-
-<x-bladewind::chart
-    type="line" border_width="5"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample10 = <<<'HTML' + + HTML; + @endphp +

Pie Chart

@@ -293,13 +304,14 @@ :labels="$labels" :data="$data" /> -

-
-<x-bladewind::chart
-    type="pie"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample11 = <<<'HTML' + + HTML; + @endphp +

Polar Chart

@@ -310,13 +322,14 @@ :labels="$labels" :data="$data" /> -

-
-<x-bladewind::chart
-    type="polar"
-    :labels="$labels" :data="$data" show_legend="false" />
-
-
+@php + $chartExample12 = <<<'HTML' + + HTML; + @endphp +

Radar Chart

@@ -333,21 +346,23 @@ border_color="#36A2EB" border_width="2" :data="$radar_data" /> -

-
-$radar_labels = ['Speed', 'Strength', 'Agility', 'Endurance', 'Skill'];
-$radar_data = [65, 59, 90, 81, 56]
-
-
-
-
-<x-bladewind::chart
-    type="radar"
-    bg_color="rgba(54, 162, 235, 0.3)"
-    border_color="#36A2EB" border_width="2"
-    :labels="$radar_labels" :data="$radar_data" show_legend="false" />
-
-
+@php + $chartExample13 = <<<'HTML' + $radar_labels = ['Speed', 'Strength', 'Agility', 'Endurance', 'Skill']; + $radar_data = [65, 59, 90, 81, 56] + HTML; + @endphp + +@php + $chartExample14 = <<<'HTML' + + HTML; + @endphp +

Scatter Chart

@@ -383,25 +398,27 @@ :labels="$scatter_labels" :data="$scatter_data" /> -

-
-$scatter_labels = [];
-$scatter_data = [
-    ['x' => -15, 'y' => 10],
-    ['x' => -5, 'y' => 5],
-    ...
-    ['x' => 30, 'y' => 13],
-    ['x' => 32, 'y' => 10],
-]
-
-
-
-
-<x-bladewind::chart
-    type="scatter"
-    :labels="$scatter_labels" :data="$scatter_data" show_legend="false" />
-
-
+@php + $chartExample15 = <<<'HTML' + $scatter_labels = []; + $scatter_data = [ + ['x' => -15, 'y' => 10], + ['x' => -5, 'y' => 5], + ... + ['x' => 30, 'y' => 13], + ['x' => 32, 'y' => 10], + ] + HTML; + @endphp + +@php + $chartExample16 = <<<'HTML' + + HTML; + @endphp +

Scatter charts can have lines connecting the dots. This is turned off by default and can be displayed by setting show_line="true". This attribute only applies to scatter charts. @@ -410,13 +427,14 @@ type="scatter" show_legend="false" show_line="true" :labels="$scatter_labels" :data="$scatter_data" /> -

-
-<x-bladewind::chart
-    type="scatter" show_line="true"
-    :labels="$scatter_labels" :data="$scatter_data" show_legend="false" />
-
-
+ @php + $chartExample17 = <<<'HTML' + + HTML; + @endphp +

Mixed Charts

To define a mixture of chart types, you need to create your own chart data array that includes data for all the chart types you want to display. @@ -446,35 +464,37 @@ ]; @endphp -

-
-$data = [
-    "labels" => ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
-    "datasets" => [
-        [
-            'type' => 'bar',
-            'label' => 'Sales',
-            'data' => [10, 20, 30, 25, 15],
-            'backgroundColor' => 'rgba(54, 162, 235, 0.2)',
-            'borderColor' => 'rgb(75, 192, 192)',
-        ],
-        [
-            'type' => 'line',
-            'label' => 'Trend',
-            'data' => [12, 18, 28, 22, 17],
-            'borderColor' => '#FF6384',
-            'borderWidth' => 2,
-            'fill' => false,
-        ]
-    ]
-];
-
-
-
-
-<x-bladewind::chart :data="$data"  />
-
-
+@php + $chartExample18 = <<<'HTML' + $data = [ + "labels" => ['Jan', 'Feb', 'Mar', 'Apr', 'May'], + "datasets" => [ + [ + 'type' => 'bar', + 'label' => 'Sales', + 'data' => [10, 20, 30, 25, 15], + 'backgroundColor' => 'rgba(54, 162, 235, 0.2)', + 'borderColor' => 'rgb(75, 192, 192)', + ], + [ + 'type' => 'line', + 'label' => 'Trend', + 'data' => [12, 18, 28, 22, 17], + 'borderColor' => '#FF6384', + 'borderWidth' => 2, + 'fill' => false, + ] + ] + ]; + HTML; + @endphp + +@php + $chartExample19 = <<<'HTML' + + HTML; + @endphp +

Chart Data

All data is passed to the chart via the data attribute, but there are two ways to define this data. @@ -484,18 +504,20 @@ This requires you to set values for both the labels and data attributes. The data in this case should only be the data points to be displayed in the chart. Each data point is matched against a corresponding label depending on the type of chart being displayed.

-
-
-    <?php
-        $labels = ['Red', 'Blue', 'Yellow', 'Green', 'Purple'];
-        $data = [12, 19, 13, 15, 9, 10];
-
-
-
-    
-        <x-bladewind::chart :labels="$labels" :data="$data" />
-    
-
+ @php + $chartExample20 = <<<'HTML' + + @php + $chartExample21 = <<<'HTML' + + HTML; + @endphp +

Option 2

This requires you to define the entire chart datasets in an array and pass that to the data attribute. @@ -505,36 +527,38 @@ options and plugins. All other attributes are ignored since they will need to be defined in your data array.

-
-
-<?php
-$data = [
-    "labels" => ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
-    "datasets" => [
-        [
-            'type' => 'bar',
-            'label' => 'Sales',
-            'data' => [10, 20, 30, 25, 15],
-            'backgroundColor' => 'rgba(54, 162, 235, 0.2)',
-            'borderColor' => 'rgb(75, 192, 192)',
-        ],
-        [
-            'type' => 'line',
-            'label' => 'Trend',
-            'data' => [12, 18, 28, 22, 17],
-            'borderColor' => '#FF6384',
-            'borderWidth' => 2,
-            'fill' => false,
-        ]
-    ]
-];
-
-
-
-
-<x-bladewind::chart :data="$data"  />
-
-
+ @php + $chartExample22 = <<<'HTML' + ['Jan', 'Feb', 'Mar', 'Apr', 'May'], + "datasets" => [ + [ + 'type' => 'bar', + 'label' => 'Sales', + 'data' => [10, 20, 30, 25, 15], + 'backgroundColor' => 'rgba(54, 162, 235, 0.2)', + 'borderColor' => 'rgb(75, 192, 192)', + ], + [ + 'type' => 'line', + 'label' => 'Trend', + 'data' => [12, 18, 28, 22, 17], + 'borderColor' => '#FF6384', + 'borderWidth' => 2, + 'fill' => false, + ] + ] + ]; + HTML; + @endphp + + @php + $chartExample23 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Chart component.

@include('docs/announcement') @@ -667,25 +691,26 @@

Chart with all attributes defined

-
-
-    <x-bladewind::chart
-        :labels="$labels"
-        :data="$data"
-        :options="$options"
-        :plugins="$plugins"
-        name="population"
-        type="line"
-        bg_color="green"
-        border_color="yellow"
-        border_width="3"
-        show_axis_lines="false"
-        show_axis_labels="false"
-        show_borders="false"
-        show_legend="false"
-        title="Population Distribution" />
-
-
+@php + $chartExample24 = <<<'HTML' + + HTML; + @endphp +

diff --git a/resources/views/docs/chat.blade.php b/resources/views/docs/chat.blade.php index e92dd39e..e3f2d26a 100644 --- a/resources/views/docs/chat.blade.php +++ b/resources/views/docs/chat.blade.php @@ -20,21 +20,22 @@ Perfect, see you then. -

-        
-            <x-bladewind::chat>
-                <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM">
+    @php
+        $chatExample1 = <<<'HTML'
+            
+                
                     Hey, are we still on for the call this afternoon?
-                </x-bladewind::chat.message>
-                <x-bladewind::chat.message outgoing="true" time="10:04 AM" status="read">
+                
+                
                     Yes, 3pm works for me. I will send the link shortly.
-                </x-bladewind::chat.message>
-                <x-bladewind::chat.message sender="Jane Cooper" time="10:05 AM">
+                
+                
                     Perfect, see you then.
-                </x-bladewind::chat.message>
-            </x-bladewind::chat>
-        
-    
+ + + HTML; + @endphp +

Grouping Consecutive Messages

@@ -52,16 +53,17 @@ Let me know what you think. -

-        
-            <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM">
+    @php
+        $chatExample2 = <<<'HTML'
+            
                 Quick update on the proposal.
-            </x-bladewind::chat.message>
-            <x-bladewind::chat.message sender="Jane Cooper" time="10:02 AM" grouped="true">
+            
+            
                 I have added the pricing section you asked for.
-            </x-bladewind::chat.message>
-        
-    
+ + HTML; + @endphp +

Delivery Status

@@ -77,15 +79,16 @@ Great, thanks! This one did not go through. -

-        
-            <x-bladewind::chat.message outgoing="true" status="sending">Uploading the file now.</x-bladewind::chat.message>
-            <x-bladewind::chat.message outgoing="true" status="sent">Here you go.</x-bladewind::chat.message>
-            <x-bladewind::chat.message outgoing="true" status="delivered">Let me know if it opens fine.</x-bladewind::chat.message>
-            <x-bladewind::chat.message outgoing="true" status="read">Great, thanks!</x-bladewind::chat.message>
-            <x-bladewind::chat.message outgoing="true" status="failed">This one did not go through.</x-bladewind::chat.message>
-        
-    
+ @php + $chatExample3 = <<<'HTML' + Uploading the file now. + Here you go. + Let me know if it opens fine. + Great, thanks! + This one did not go through. + HTML; + @endphp +

Attachments

Give a message an attachments slot for files, images, or anything else it carries.

@@ -100,16 +103,17 @@ -
-        
-            <x-bladewind::chat.message sender="Jane Cooper" time="2:14 PM">
+    @php
+        $chatExample4 = <<<'HTML'
+            
                 Here is the signed contract.
-                <x-slot:attachments>
-                    <a href="#">contract-signed.pdf</a>
-                </x-slot:attachments>
-            </x-bladewind::chat.message>
-        
-    
+ + contract-signed.pdf + + + HTML; + @endphp +

Scrollable Thread

@@ -123,13 +127,14 @@ No problem at all. Catch you at the retro. -

-        
-            <x-bladewind::chat height="220px">
+    @php
+        $chatExample5 = <<<'HTML'
+            
                 ...
-            </x-bladewind::chat>
-        
-    
+ + HTML; + @endphp +

Full List Of Attributes

Chat

@@ -152,13 +157,14 @@

Chat with all attributes defined

-
-        
-            <x-bladewind::chat
+    @php
+        $chatExample6 = <<<'HTML'
+            
-    
+ class="ml-2"> + HTML; + @endphp +

Chat Message

@@ -215,9 +221,9 @@ class="ml-2">

Chat Message with all attributes defined

-
-        
-            <x-bladewind::chat.message
+    @php
+        $chatExample7 = <<<'HTML'
+            
                 Sounds good, thanks!
-                <x-slot:attachments>
+                
                     ...
-                </x-slot:attachments>
-            </x-bladewind::chat.message>
-        
-    
+ + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > chat > index.blade.php, diff --git a/resources/views/docs/checkbox.blade.php b/resources/views/docs/checkbox.blade.php index b7d074c3..5f89a077 100644 --- a/resources/views/docs/checkbox.blade.php +++ b/resources/views/docs/checkbox.blade.php @@ -8,53 +8,54 @@ -
-
-    <x-bladewind::checkbox  />
-
-
+@php + $checkboxExample1 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::checkbox label="I agree to the terms and conditions"  />
-        
-    
+ @php + $checkboxExample2 = <<<'HTML' + + HTML; + @endphp +
-
-
-<x-bladewind::checkbox
-    label="I agree to the <a href='/terms'>terms and conditions</a>"  />
-
-
+@php + $checkboxExample3 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            
-            <x-bladewind::checkbox
+    @php
+        $checkboxExample4 = <<<'HTML'
+            
-        
-    
+ checked="true" /> + HTML; + @endphp +
   -
-        
-            
-            <x-bladewind::checkbox
+    @php
+        $checkboxExample5 = <<<'HTML'
+            
-        
-    
+ disabled="true" /> + HTML; + @endphp +

Coloured Checkboxes

@@ -79,54 +80,55 @@ -

-        
-            <x-bladewind::checkbox
+    @php
+        $checkboxExample6 = <<<'HTML'
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
 
-            <x-bladewind::checkbox
+            
-    
+ label="I am a blue checkbox" /> + HTML; + @endphp +

Checkboxes and forms

When using checkboxes with forms, it is always good practice to give the checkbox a name and value. @@ -135,14 +137,15 @@

-
-        
-<x-bladewind::checkbox
-            name="notify_me"
-            value="1"
-            label="Send me weekly newsletters" />
-        
-    
+ @php + $checkboxExample7 = <<<'HTML' + + HTML; + @endphp +

Laravel Form State

@@ -151,16 +154,17 @@ can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

-
-        
-<x-bladewind::checkbox
-    name="terms"
-    value="yes"
-    label="I agree to the terms"
-    fill_from_old="true"
-    show_validation_error="true" />
-        
-    
+ @php + $checkboxExample8 = <<<'HTML' + + HTML; + @endphp +

fill_from_old repopulates the field from old(). show_validation_error gives @@ -185,16 +189,17 @@ Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

-
-        
-// config/bladewind.php
-'forms' => [
-    'fill_from_old' => true,
-    'show_validation_error' => true,
-    'error_bag' => null,
-],
-        
-    
+ @php + $checkboxExample9 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -288,9 +293,9 @@

Checkbox with all attributes defined

-
-        
-            <x-bladewind::checkbox
+    @php
+        $checkboxExample10 = <<<'HTML'
+            
-    
+ class="shadow-sm" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > checkbox.blade.php diff --git a/resources/views/docs/checkcard.blade.php b/resources/views/docs/checkcard.blade.php index e2acee59..86b042b7 100644 --- a/resources/views/docs/checkcard.blade.php +++ b/resources/views/docs/checkcard.blade.php @@ -14,15 +14,16 @@
-
-        
-            <x-bladewind::checkcards name="hosting">
-                <x-bladewind::checkcards.card value="dOcean">
+    @php
+        $checkcardExample1 = <<<'HTML'
+            
+                
                     DigitalOcean
-                </x-bladewind::checkcards.card>
-            </x-bladewind::checkcards>
-        
-    
+ + + HTML; + @endphp +
@@ -30,15 +31,16 @@
-
-        
-            <x-bladewind::checkcards name="hosting-compact" compact="true">
-                <x-bladewind::checkcards.card value="dOcean">
+    @php
+        $checkcardExample2 = <<<'HTML'
+            
+                
                     DigitalOcean
-                </x-bladewind::checkcards.card>
-            </x-bladewind::checkcards>
-        
-    
+ + + HTML; + @endphp +

For convenience the component provides a title attribute that can also be passed in as a slot if you prefer some more customized styling of the title. @@ -56,19 +58,20 @@
-

-        
-            <x-bladewind::checkcards name="hosting-3" max="3">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card value="AWS"
-                        title="Amazon Web Services">
+    @php
+        $checkcardExample3 = <<<'HTML'
+            
+                
+ A subsidiary of Amazon that provides on-demand ... - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

The selectable card takes up the width of its parent element. If you don't want the cards to take up the entire width you will need to restrict this using flex or grids. @@ -97,26 +100,27 @@
-

-        
-            <x-bladewind::checkcards name="hosting-small" max="3">
-                <div class="grid grid-cols-3 gap-4">
-                    <x-bladewind::checkcards.card name="hosting" value="AWS">
+    @php
+        $checkcardExample4 = <<<'HTML'
+            
+                
+ Amazon Web Services - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="azure"> + Microsoft Azure - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="dOcean"> + DigitalOcean - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

Max Selection

By default only one card can be selected at a time. You can increase this by setting the @@ -147,26 +151,27 @@
-

-        
-            <x-bladewind::checkcards name="hosting-small" max="3">
-                <div class="grid grid-cols-3 gap-4">
-                    <x-bladewind::checkcards.card name="hosting" value="AWS">
+    @php
+        $checkcardExample5 = <<<'HTML'
+            
+                
+ Amazon Web Services - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="azure"> + Microsoft Azure - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="dOcean"> + DigitalOcean - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

Max Selection Error Messages

@@ -199,26 +204,27 @@
-

-        
-            <x-bladewind::checkcards name="hosting-small" max="3">
-                <div class="grid grid-cols-3 gap-4">
-                    <x-bladewind::checkcards.card name="hosting" value="AWS">
+    @php
+        $checkcardExample6 = <<<'HTML'
+            
+                
+ Amazon Web Services - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="azure"> + Microsoft Azure - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="dOcean"> + DigitalOcean - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

Automatically Select New Cards

From the max selection example above, you will notice every time three cards are selected, clicking on a fourth card automatically clears the third card that was previously selected. @@ -249,30 +255,31 @@
-

-        
-            <x-bladewind::checkcards
+    @php
+        $checkcardExample7 = <<<'HTML'
+            
+                
+ Amazon Web Services - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="azure"> + Microsoft Azure - </x-bladewind::checkcards.card> + - <x-bladewind::checkcards.card name="hosting" value="dOcean"> + DigitalOcean - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

Icons and Avatars

@@ -300,23 +307,24 @@
-

-        
-            <x-bladewind::checkcards name="hosting-icons">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card
+    @php
+        $checkcardExample8 = <<<'HTML'
+            
+                
+ A copy of your messages will be backed up to Amazon Web Services ... - </x-bladewind::checkcards.card> - <x-bladewind::checkcards.card value="gdrive" title="Google Drive" - icon="circle-stack"> + + A copy of your messages will be backed up to Google Drive ... - </x-bladewind::checkcards.card> - </div> - </x-bladewind::checkcards> - -
+ + + + HTML; + @endphp +

Avatars

Avatars can be used instead of icons. This also relies on a stripped down version of the BladewindUI Avatar component. @@ -336,25 +344,26 @@
-

-        
-            <x-bladewind::checkcards name="hosting-avatar" max="2">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card
+    @php
+        $checkcardExample9 = <<<'HTML'
+            
+                
+ Follow Michael K. Ocansey to know when they post a... - </x-bladewind::checkcards.card> - <x-bladewind::checkcards.card + + Follow Francis Appiah to know when they post any new ... - </x-bladewind::checkcards.card> - </div> - </x-bladewind::checkcards> - -
+ + + + HTML; + @endphp +

Colours

The border colour can be changed by setting the border_color attribute. @@ -373,20 +382,21 @@
-

-        
-            <x-bladewind::checkcards name="hosting-colours"
-                border_color="red">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card
-                        value="AWS" title="AWS" icon="cloud-arrow-up">
+    @php
+        $checkcardExample10 = <<<'HTML'
+            
+                
+ Your messages will be backed up to Amazon Web Services. - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +
@@ -399,20 +409,21 @@

-
-        
-            <x-bladewind::checkcards name="hosting-colours"
-                border_color="orange" color="orange">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card
-                        value="AWS" title="AWS" icon="cloud-arrow-up">
+    @php
+        $checkcardExample11 = <<<'HTML'
+            
+                
+ Your messages will be backed up to Amazon Web Services. - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +
@@ -425,21 +436,22 @@

-
-        
-            <x-bladewind::checkcards name="hosting-avatar2" max="2"
-                 border_color="purple" color="purple">
-                <div class="grid grid-cols-2 gap-4">
-                    <x-bladewind::checkcards.card
+    @php
+        $checkcardExample12 = <<<'HTML'
+            
+                
+ Follow Michael K. Ocansey to know when they post a... - </x-bladewind::checkcards.card> + ... - </div> - </x-bladewind::checkcards> - -
+ + + HTML; + @endphp +

Form Submission

Checkable cards can be used within forms as a substitute for checkboxes or radio buttons. The name specified @@ -449,13 +461,14 @@ Using the hosting name from our examples above, after submitting the form the value of the hosting checkcards can be accessed using any of the following ways permitted in Laravel.

-
-        
+    @php
+        $checkcardExample13 = <<<'HTML'
             $request->get('hosting');
             $request->input('hosting');
             $request->hosting;
-        
-    
+ HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Checkcard component.

@@ -624,42 +637,44 @@

Checkcards with all attributes defined

-
-
-<x-bladewind::checkcards
-    name="hosting"
-    icon="calculator",
-    avatar="OK",
-    avatar_size="medium",
-    class="",
-    required="false",
-    max="3",
-    compact="false",
-    color="primary",
-    radius="medium",
-    border_width="2",
-    border_color="gray",
-    align_items="top",
-    show_error="false",
-    auto_select_new="true",
-    selected_value="azure,google"
-    error_message="You can select only up to 3 companies"
-    error_heading="Check selection!">
-
-    
+ @php + $checkcardExample14 = <<<'HTML' + + HTML; + @endphp +

Checkcard with all attributes defined

-
-
-<x-bladewind::checkcards.card
-    title="Amazon Web Services"
-    value="aws"
-    icon="calculator",
-    avatar="OK",
-    avatar_size="medium",
-    class=""
-    icon_css="size-13" />
-
-    
+ @php + $checkcardExample15 = <<<'HTML' + + HTML; + @endphp + The source file for the card component is available in resources > views > components > bladewind > checkcards > index.blade.php diff --git a/resources/views/docs/code-block.blade.php b/resources/views/docs/code-block.blade.php index b938beb7..06d05a78 100644 --- a/resources/views/docs/code-block.blade.php +++ b/resources/views/docs/code-block.blade.php @@ -17,12 +17,13 @@

-
-        
-            <x-bladewind::code-block language="php" code="Route::get('/users', [UserController::class, 'index']);">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample1 = <<<'HTML' + + + HTML; + @endphp +

Languages

@@ -32,12 +33,13 @@ sql python and yaml.

-
-        
-            <x-bladewind::code-block language="javascript" code="const total = items.reduce((sum, item) => sum + item.price, 0);">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample2 = <<<'HTML' + + + HTML; + @endphp +

Title

Give a code block a title to show a filename or a short label above the code.

@@ -49,22 +51,24 @@ PHP; @endphp -
-        
-            <x-bladewind::code-block language="php" title="routes/web.php" :code="$routesExample">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample3 = <<<'HTML' + + + HTML; + @endphp +

Line Numbers

Set line_numbers="true" to number every line, useful for longer snippets.

-
-        
-            <x-bladewind::code-block language="php" line_numbers="true" :code="$routesExample">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample4 = <<<'HTML' + + + HTML; + @endphp +

Highlighting Lines

@@ -73,12 +77,13 @@ example "2" or "3-5,8".

-
-        
-            <x-bladewind::code-block language="php" line_numbers="true" highlight_lines="2" :code="$routesExample">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample5 = <<<'HTML' + + + HTML; + @endphp +

Wrapping Long Lines

@@ -86,12 +91,13 @@ wrap="true" to wrap long lines onto the next line instead.

-
-        
-            <x-bladewind::code-block language="bash" wrap="true" code="php artisan make:model Product -mfsc --policy --api">
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample6 = <<<'HTML' + + + HTML; + @endphp +

Copy Action

@@ -99,12 +105,13 @@ show_copy="false" to hide it.

-
-        
-            <x-bladewind::code-block language="json" show_copy="false" code='{"name": "bladewindui/ui", "license": "MIT"}'>
-            </x-bladewind::code-block>
-        
-    
+ @php + $codeUblockExample7 = <<<'HTML' + + + HTML; + @endphp +

Full List Of Attributes

@@ -161,9 +168,9 @@

Code Block with all attributes defined

-
-        
-            <x-bladewind::code-block
+    @php
+        $codeUblockExample8 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > code-block.blade.php. Syntax highlighting is powered by Prism. diff --git a/resources/views/docs/code.blade.php b/resources/views/docs/code.blade.php index cdafe8aa..bacc4856 100644 --- a/resources/views/docs/code.blade.php +++ b/resources/views/docs/code.blade.php @@ -9,18 +9,20 @@


-
-        
-            <x-bladewind::code  />
-        
-    
+ @php + $codeExample1 = <<<'HTML' + + HTML; + @endphp +

-
-        
-            <x-bladewind::code size="big"  />
-        
-    
+ @php + $codeExample2 = <<<'HTML' + + HTML; + @endphp +

The verification code component allows you to specify how many boxes you want to display by specifying the total_digits attribute. There is no restriction on the maximum @@ -28,11 +30,12 @@


-
-        
-            <x-bladewind::code total_digits="5"  />
-        
-    
+ @php + $codeExample3 = <<<'HTML' + + HTML; + @endphp +

If you don't want the code being entered to be visible, set the @@ -41,11 +44,12 @@


-
-        
-            <x-bladewind::code hide-input="true"  />
-        
-    
+ @php + $codeExample4 = <<<'HTML' + + HTML; + @endphp +

@@ -62,38 +66,42 @@


-
-        
-            <x-bladewind::code total_digits="7" has-separator="true"  />
-        
-    
+ @php + $codeExample5 = <<<'HTML' + + HTML; + @endphp +

has-separator and hide-input can be combined with each other and with any other attribute.


-
-        
-            <x-bladewind::code total_digits="7" has-separator="true" hide-input="true"  />
-        
-    
+ @php + $codeExample6 = <<<'HTML' + + HTML; + @endphp +

Access the Verification Code

What happens after the user enters their verification code? The component creates a hidden input field with the name that was passed as the name attribute.

-
-            
-                <x-bladewind::code name="pin_code"  />
-            
-        
+ @php + $codeExample7 = <<<'HTML' + + HTML; + @endphp +

The above will create the input fields for the verification codes and create the hidden input below

-
-            
-                <input type="hidden" name="pin_code" class="pin_code ..." id="pin_code"  />
-            
-        
+ @php + $codeExample8 = <<<'HTML' + + HTML; + @endphp +

You can access the value of pin_code either via Javascript or via PHP if you intend to post it in a form to your backend. The onverify attribute allows you to specify a function that should be called when the user has entered a value into the last verification code field. @@ -101,17 +109,18 @@ onverify="verifyPin". The component passes the code entered by the user to your function, as well as the name of the component, so, your function declaration needs to expect one or two parameters. Still using the verifyPin example, your function declaration will be:

-
-            
-                // NOTE: this is not a Bladewind helper function
-                // it should be a function in your project
+        @php
+        $codeExample9 = <<<'HTML'
+            // NOTE: this is not a Bladewind helper function
+            // it should be a function in your project
 
-                verifyPin = (code, name) => {
+            verifyPin = (code, name) => {
 
-                    // do something here with the code
-                }
-            
-        
+ // do something here with the code + } + HTML; + @endphp +

Let's consider a practical example. Enter any code in the fields below and get notified of the code you entered.


@@ -123,17 +132,18 @@ }

-
-            
-                <x-bladewind::code onverify="checkPin" />
+        @php
+        $codeExample10 = <<<'HTML'
+            
 
-                <script>
-                    checkPin = (code) => {
-                        alert(`You entered: ${code}`);
-                    }
-                </script>
-            
-        
+ + HTML; + @endphp +

Clear PIN/Code

@@ -153,23 +163,25 @@ }

-
-            
-                <x-bladewind::code name="clear_me" onverify="checkPinAndClear" />
-            
-        
-
-            
-                <script>
-                    checkPinAndClear = (code) => {
-                        if(code !== 2024) {
-                            clearPin('clear_me');
-                            showNotification('Wrong Code', 'Please enter your code again', 'error');
-                        }
+        @php
+        $codeExample11 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
+        @php
+        $codeExample12 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
 
     

Displaying Errors

@@ -180,14 +192,15 @@

-
-
-    <x-bladewind::code
-        name="pcode"
-        error_message="Yoh! check your code"
-        onverify="checkPinShowError" />
-
-
+@php + $codeExample13 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <script>
+    @php
+        $codeExample14 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
 

The error message is displayed by invoking the Javascript helper function showPinError(name). @@ -217,18 +231,19 @@ hidePinError(name) Javascript helper function. The second parameter to this function is what controls the automatic hiding of the error message. If you do not want to automatically close the error message, set the parameter to false.

-
-        
-            <script>
+    @php
+        $codeExample15 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
     

From the Clear PIN example, the error message was displayed in a notification instead of using the inline error. This is also an option. @@ -243,41 +258,44 @@

-
-        
-            <x-bladewind::code name="spin_me" onverify="validatePin"  />
-        
-    
+ @php + $codeExample16 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <script>
+    @php
+        $codeExample17 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
     

Since Bladewind does not know how long your Ajax call might take or when your process is complete, it cannot automatically hide the spinner for you. You can do that by calling hideSpinner(name), where name is the name of your verification code field.

-
-        
-            <script>
+    @php
+        $codeExample18 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
 
     

Show Success Icon

@@ -287,11 +305,12 @@

-
-        
-            <x-bladewind::code name="spin_me_yes" onverify="spinAndSucceed"  />
-        
-    
+ @php + $codeExample19 = <<<'HTML' + + HTML; + @endphp + -
-
-    <script>
-        spinAndSucceed = (code, name) => {
-            showSpinner(name);
-            setTimeout( () => { showPinSuccess(name); }, 5000);
-        }
-    </script>
-
-
+@php + $codeExample20 = <<<'HTML' + + HTML; + @endphp +

Countdown To Resend Code

This can be useful for two scenarios. The user never received the code you sent so they will need to request another. @@ -330,27 +350,29 @@

-
-        
-            <x-bladewind::code name="time_me" timer="30"  />
-        
-    
-
-        
-            <!-- the DIV that contains the content to display when timer is done -->
+    @php
+        $codeExample21 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
+    @php
+        $codeExample22 = <<<'HTML'
+            
 
-            <div class="bw-code-timer-done hidden">
-                <x-bladewind.button
+            
+ + + HTML; + @endphp + -
-
-    <script>
-        sendNewCode = () => {
-           showButtonSpinner('.bw-time_me-timer .done .send-code');
-           setTimeout( () => {
-               showNotification('Code Sent','Please check your email or SMS for a new verification code');
-                hideButtonSpinner('.bw-time_me-pin-timer .done .send-code');
-                hide('.bw-time_me-pin-timer .done .send-code')
-                setFocus('time_me');
-                clearTimeout();
-           }, 5000);
-        }
-    </script>
-
-
+@php + $codeExample23 = <<<'HTML' + + HTML; + @endphp +

Once the countdown is done, the content of your bw-code-timer-done DIV is copied into a DIV that can be accessed using the class .bw-[name-of-code-field]-pin-timer .done. From our above example, our resend code content will be copied into a DIV accessible with .bw-time_me-pin-timer .done. That is how come our showButtonSpinner() @@ -403,24 +426,26 @@ if(attempts >= 2) showTimer(name, 15); } -

-        
-            <x-bladewind::code name="trigger_me" onverify="triggerTimerManually"  />
-        
-    
-
-
-let attempts = 0;
-triggerTimerManually = (code, name) => {
-    if(parseInt(code) !== 2024) {
-        attempts++
-        showPinError(name);
-        clearPin(name);
-    }
-    if(attempts >= 2) showTimer(name, 15);
-}
-
-
+ @php + $codeExample24 = <<<'HTML' + + HTML; + @endphp + + @php + $codeExample25 = <<<'HTML' + let attempts = 0; + triggerTimerManually = (code, name) => { + if(parseInt(code) !== 2024) { + attempts++ + showPinError(name); + clearPin(name); + } + if(attempts >= 2) showTimer(name, 15); + } + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Spinner component.

@include('docs/announcement') @@ -488,19 +513,20 @@

Verification Code with all attributes defined

-
-
-    <x-bladewind::code
-        name="pin-code"
-        total_digits="5"
-        onverify="verifyPin"
-        has_spinner="false"
-        hide_input="false"
-        has_separator="false"
-        timer="15"
-        error_message="please enter the correct code"  />
-
-
+@php + $codeExample26 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > code.blade.php diff --git a/resources/views/docs/colorpicker.blade.php b/resources/views/docs/colorpicker.blade.php index 41a25cf4..b635136e 100644 --- a/resources/views/docs/colorpicker.blade.php +++ b/resources/views/docs/colorpicker.blade.php @@ -9,23 +9,25 @@

-
-        
-            <x-bladewind::colorpicker  />
-        
-    
+ @php + $colorpickerExample1 = <<<'HTML' + + HTML; + @endphp +

Once you pass a comma separated string of colours, a custom colour picker is displayed instead. These must be HEX colours including the '#' sign. This is useful if you are building a theme based web app that allows users to select their preferred theme for example.

-
-
-    <x-bladewind::colorpicker
-     colors="#fff999, #cccccc, #999222, #787623, #78fcc3, #333678, #878987, #098765"/>
-
-
+@php + $colorpickerExample2 = <<<'HTML' + + HTML; + @endphp +

By default the colorpicker does not show the value of the selected colour. It only changes the colour of the box to what has been selected. @@ -33,11 +35,12 @@

-
-        
-        <x-bladewind::colorpicker show_value="true" />
-        
-    
+ @php + $colorpickerExample3 = <<<'HTML' + + HTML; + @endphp +

The colorpicker comes in different sizes to match with input fields. In case the component is being used in a form with other fields. @@ -49,26 +52,30 @@ -

-    
-        <x-bladewind::colorpicker size="small"  />
-    
-
-
-    
-        <x-bladewind::colorpicker size="regular"  />
-    
-
-
-    
-        <x-bladewind::colorpicker size="medium"  />
-    
-
-
-    
-        <x-bladewind::colorpicker size="big"  />
-    
-
+@php + $colorpickerExample4 = <<<'HTML' + + HTML; + @endphp + +@php + $colorpickerExample5 = <<<'HTML' + + HTML; + @endphp + +@php + $colorpickerExample6 = <<<'HTML' + + HTML; + @endphp + +@php + $colorpickerExample7 = <<<'HTML' + + HTML; + @endphp +

In order to access selected colour values when a form is submitted, provide a name for your colorpicker. BladewindUI provides a random unique name when no name is provided. @@ -120,17 +127,18 @@

Colorpicker with all attributes defined

-
-
-    <x-bladewind::colorpicker
-        name="theme"
-        size="medium"
-        show_value="true"
-        colors="#989098, #cccc44, #323232"
-        selected_value="#909090"
-        class="shadow-sm" />
-
-    
+ @php + $colorpickerExample8 = <<<'HTML' + + HTML; + @endphp +

Using Colorpicker Inside Livewire

diff --git a/resources/views/docs/colours.blade.php b/resources/views/docs/colours.blade.php index dd004ada..f8a5de6b 100644 --- a/resources/views/docs/colours.blade.php +++ b/resources/views/docs/colours.blade.php @@ -83,37 +83,39 @@ BladewindUI internally uses primary as the colour key for all component accents. Here is what the library's default theme definition looks like:

-
-
-/* vendor/bladewindui/ui, default theme */
-@theme {
-    /* primary → blue (default) */
-    --color-primary-50:  #eff6ff;
-    --color-primary-100: #dbeafe;
-    --color-primary-200: #bfdbfe;
-    --color-primary-300: #93c5fd;
-    --color-primary-400: #60a5fa;
-    --color-primary-500: #3b82f6;
-    --color-primary-600: #2563eb;
-    --color-primary-700: #1d4ed8;
-    --color-primary-800: #1e40af;
-    --color-primary-900: #1e3a8a;
-    --color-primary-950: #172554;
+    @php
+        $coloursExample1 = <<<'HTML'
+            /* vendor/bladewindui/ui, default theme */
+            BWATSIGNPLACEHOLDERtheme {
+                /* primary → blue (default) */
+                --color-primary-50:  #eff6ff;
+                --color-primary-100: #dbeafe;
+                --color-primary-200: #bfdbfe;
+                --color-primary-300: #93c5fd;
+                --color-primary-400: #60a5fa;
+                --color-primary-500: #3b82f6;
+                --color-primary-600: #2563eb;
+                --color-primary-700: #1d4ed8;
+                --color-primary-800: #1e40af;
+                --color-primary-900: #1e3a8a;
+                --color-primary-950: #172554;
 
-    /* dark colour scale */
-    --color-dark-100: #f0f1f2;
-    --color-dark-200: #d2d4d7;
-    --color-dark-300: #a7aaad;
-    --color-dark-400: #6c7075;
-    --color-dark-500: #4a4e53;
-    --color-dark-600: #33373c;
-    --color-dark-700: #262a2f;
-    --color-dark-800: #1C1F24;
-    --color-dark-900: #101114;
-    --color-dark-950: #0a0b0d;
-}
-
-    
+ /* dark colour scale */ + --color-dark-100: #f0f1f2; + --color-dark-200: #d2d4d7; + --color-dark-300: #a7aaad; + --color-dark-400: #6c7075; + --color-dark-500: #4a4e53; + --color-dark-600: #33373c; + --color-dark-700: #262a2f; + --color-dark-800: #1C1F24; + --color-dark-900: #101114; + --color-dark-950: #0a0b0d; + } + HTML; + $coloursExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $coloursExample1); + @endphp +

Changing the Primary Colour

@@ -121,47 +123,51 @@ app.css file after importing Tailwind. Your values will win because they appear later in the cascade.

This documentation website uses indigo as its primary colour:

-
-
-/* resources/css/app.css */
-@import "tailwindcss";
+    @php
+        $coloursExample2 = <<<'HTML'
+            /* resources/css/app.css */
+            BWATSIGNPLACEHOLDERimport "tailwindcss";
 
-@theme {
-    /* Override primary with indigo */
-    --color-primary-50:  #eef2ff;
-    --color-primary-100: #e0e7ff;
-    --color-primary-200: #c7d2fe;
-    --color-primary-300: #a5b4fc;
-    --color-primary-400: #818cf8;
-    --color-primary-500: #6366f1;
-    --color-primary-600: #4f46e5;
-    --color-primary-700: #4338ca;
-    --color-primary-800: #3730a3;
-    --color-primary-900: #312e81;
-    --color-primary-950: #1e1b4b;
-}
-
-    
+ BWATSIGNPLACEHOLDERtheme { + /* Override primary with indigo */ + --color-primary-50: #eef2ff; + --color-primary-100: #e0e7ff; + --color-primary-200: #c7d2fe; + --color-primary-300: #a5b4fc; + --color-primary-400: #818cf8; + --color-primary-500: #6366f1; + --color-primary-600: #4f46e5; + --color-primary-700: #4338ca; + --color-primary-800: #3730a3; + --color-primary-900: #312e81; + --color-primary-950: #1e1b4b; + } + HTML; + $coloursExample2 = str_replace('BWATSIGNPLACEHOLDER', '@', $coloursExample2); + @endphp +

You can use any hex, rgb, hsl, or oklch value. If you prefer a custom palette that does not map to a Tailwind built-in scale, simply supply your own hex values:

-
-
-@theme {
-    /* Custom purple palette */
-    --color-primary-100: #f3e8ff;
-    --color-primary-200: #e9d5ff;
-    --color-primary-300: #d8b4fe;
-    --color-primary-400: #c084fc;
-    --color-primary-500: #a855f7;
-    --color-primary-600: #9333ea;
-    --color-primary-700: #7e22ce;
-    --color-primary-800: #6d28d9;
-    --color-primary-900: #4c1d95;
-}
-
-    
+ @php + $coloursExample3 = <<<'HTML' + BWATSIGNPLACEHOLDERtheme { + /* Custom purple palette */ + --color-primary-100: #f3e8ff; + --color-primary-200: #e9d5ff; + --color-primary-300: #d8b4fe; + --color-primary-400: #c084fc; + --color-primary-500: #a855f7; + --color-primary-600: #9333ea; + --color-primary-700: #7e22ce; + --color-primary-800: #6d28d9; + --color-primary-900: #4c1d95; + } + HTML; + $coloursExample3 = str_replace('BWATSIGNPLACEHOLDER', '@', $coloursExample3); + @endphp +

All BladewindUI components read from the primary scale, so every component updates automatically without any further changes. @@ -173,14 +179,16 @@ @custom-variant instead of the old darkMode: 'class' config key. Add this line once in your app.css, above your @theme block:

-
-
-/* resources/css/app.css */
-@import "tailwindcss";
+    @php
+        $coloursExample4 = <<<'HTML'
+            /* resources/css/app.css */
+            BWATSIGNPLACEHOLDERimport "tailwindcss";
 
-@custom-variant dark (&:where(.dark, .dark *));
-
-    
+ BWATSIGNPLACEHOLDERcustom-variant dark (&:where(.dark, .dark *)); + HTML; + $coloursExample4 = str_replace('BWATSIGNPLACEHOLDER', '@', $coloursExample4); + @endphp +

Then toggle the dark class on your <html> element to switch modes. BladewindUI's Theme Switcher component handles this for you automatically. @@ -197,16 +205,18 @@ vendor/bladewindui/ui and are not scanned by default. You need to add an @source directive so Tailwind knows to look there:

-
-
-/* resources/css/app.css */
-@import "tailwindcss";
+    @php
+        $coloursExample5 = <<<'HTML'
+            /* resources/css/app.css */
+            BWATSIGNPLACEHOLDERimport "tailwindcss";
 
-/* Tell Tailwind to scan vendor BladewindUI files */
-@source "../../vendor/bladewindui/ui/**/*.blade.php";
-@source "../../public/vendor/bladewind/js/*.js";
-
-    
+ /* Tell Tailwind to scan vendor BladewindUI files */ + BWATSIGNPLACEHOLDERsource "../../vendor/bladewindui/ui/**/*.blade.php"; + BWATSIGNPLACEHOLDERsource "../../public/vendor/bladewind/js/*.js"; + HTML; + $coloursExample5 = str_replace('BWATSIGNPLACEHOLDER', '@', $coloursExample5); + @endphp +

The paths are relative to your CSS file. If your app.css is at resources/css/app.css, two levels of ../../ will reach the project root. diff --git a/resources/views/docs/command-palette.blade.php b/resources/views/docs/command-palette.blade.php index 38faa04d..6edf9970 100644 --- a/resources/views/docs/command-palette.blade.php +++ b/resources/views/docs/command-palette.blade.php @@ -22,34 +22,39 @@ -


-<x-bladewind::button onclick="openCommandPalette('app-commands')">
-    Search commands
-</x-bladewind::button>
- -
-        
-<x-bladewind::command-palette name="app-commands"
-    label="Command palette" placeholder="Search for a command or page…">
-    <x-bladewind::command-palette.group name="navigate" label="Navigate">
-        <x-bladewind::command-palette.item name="dashboard"
-            label="Dashboard"
-            description="Overview of your workspace"
-            href="#dashboard"
-            icon="home" />
-        <x-bladewind::command-palette.item name="orders"
-            label="Orders"
-            description="Review recent orders"
-            href="#orders"
-            icon="shopping-bag" />
-        <x-bladewind::command-palette.item name="customers"
-            label="Customers"
-            href="#customers" icon="users" />
-    </x-bladewind::command-palette.group>
-    ...
-</x-bladewind::command-palette>
-        
-    
+ @php + $commandUpaletteExample1 = <<<'HTML' + + Search commands + + HTML; + @endphp + + + @php + $commandUpaletteExample2 = <<<'HTML' + + + + + + + ... + + HTML; + @endphp +

Opening the Palette

Command Palette renders hidden. It is not tied to a trigger button by default. Open it with its keyboard shortcut, or call openCommandPalette(name) from any element. Try the demo above with Ctrl + K ( + K on macOS).

@@ -143,35 +148,45 @@

JavaScript API

Helpers return true on success or when the requested state already applies. They return false for a missing target or a canceled event.

-
openCommandPalette('app-commands');
-closeCommandPalette('app-commands');
-toggleCommandPalette('app-commands');
-resetCommandPalette('app-commands');
-setCommandPaletteLoading('app-commands', true);
+ @php + $commandUpaletteExample3 = <<<'HTML' + openCommandPalette('app-commands'); + closeCommandPalette('app-commands'); + toggleCommandPalette('app-commands'); + resetCommandPalette('app-commands'); + setCommandPaletteLoading('app-commands', true); + HTML; + @endphp +

Command Palette with all attributes defined

-
<x-bladewind::command-palette
-    name="app-commands"
-    label="Command palette"
-    placeholder="Search for a command or page…"
-    search-label="Command palette"
-    shortcut="mod+k"
-    size="medium"
-    open="false"
-    loading="false"
-    empty-text="No results found."
-    loading-text="Loading…"
-    close-on-select="true"
-    backdrop-can-close="true"
-    escape-can-close="true"
-    close-label="Close command palette"
-    class="app-command-palette"
-    data-region="app">
-    <x-bladewind::command-palette.group name="actions" label="Actions">
-        <x-bladewind::command-palette.item name="new-order" label="Create order" description="Start a manual order" icon="plus-circle" icon-type="outline" icon-dir="" shortcut="Ctrl+N" keywords="add new" href="/orders/new" disabled="false" external="false" target="_self" class="new-order-item" data-area="orders" />
-    </x-bladewind::command-palette.group>
-    <x-slot:footer>Signed in as Ama Mensah</x-slot:footer>
-</x-bladewind::command-palette>
+ @php + $commandUpaletteExample4 = <<<'HTML' + + + + + Signed in as Ama Mensah + + HTML; + @endphp +

Using Command Palette Inside Livewire

diff --git a/resources/views/docs/context-menu.blade.php b/resources/views/docs/context-menu.blade.php index b0467400..70833261 100644 --- a/resources/views/docs/context-menu.blade.php +++ b/resources/views/docs/context-menu.blade.php @@ -21,20 +21,21 @@ Delete -

-        
-            <x-bladewind::context-menu name="basicMenu">
-                <x-slot:region>
-                    <div>Right-click anywhere in this box</div>
-                </x-slot:region>
-
-                <x-bladewind::context-menu.item icon="pencil-square">Edit</x-bladewind::context-menu.item>
-                <x-bladewind::context-menu.item icon="document-duplicate">Duplicate</x-bladewind::context-menu.item>
-                <x-bladewind::context-menu.item divider="true" />
-                <x-bladewind::context-menu.item icon="trash" tone="danger">Delete</x-bladewind::context-menu.item>
-            </x-bladewind::context-menu>
-        
-    
+ @php + $contextUmenuExample1 = <<<'HTML' + + +
Right-click anywhere in this box
+
+ + Edit + Duplicate + + Delete +
+ HTML; + @endphp +

The region slot is the area that responds to a right-click (or the keyboard context-menu key: both dispatch the same browser contextmenu event, so no @@ -48,11 +49,12 @@ keyboard interaction entirely: it is skipped by arrow-key navigation and cannot be clicked or activated.

-
-        
-            <x-bladewind::context-menu.item icon="lock-closed" disabled="true">Restricted action</x-bladewind::context-menu.item>
-        
-    
+ @php + $contextUmenuExample2 = <<<'HTML' + Restricted action + HTML; + @endphp +

Tone

@@ -84,17 +86,18 @@ Rename -

-        
-            <x-bladewind::context-menu.item icon="folder-plus">
+    @php
+        $contextUmenuExample3 = <<<'HTML'
+            
                 New
-                <x-slot:submenu>
-                    <x-bladewind::context-menu.item icon="document">File</x-bladewind::context-menu.item>
-                    <x-bladewind::context-menu.item icon="folder">Folder</x-bladewind::context-menu.item>
-                </x-slot:submenu>
-            </x-bladewind::context-menu.item>
-        
-    
+ + File + Folder + + + HTML; + @endphp +

Keyboard support

@@ -155,15 +158,16 @@

Context Menu with all attributes defined

-
-        
-            <x-bladewind::context-menu
+    @php
+        $contextUmenuExample4 = <<<'HTML'
+            
-    
+ class="ml-2"> + HTML; + @endphp +

Context Menu Item

@@ -200,20 +204,21 @@ class="ml-2">

Context Menu Item with all attributes defined

-
-        
-            <x-bladewind::context-menu.item
+    @php
+        $contextUmenuExample5 = <<<'HTML'
+            
                 New
-                <x-slot:submenu>
-                    <x-bladewind::context-menu.item icon="document">File</x-bladewind::context-menu.item>
-                </x-slot:submenu>
-            </x-bladewind::context-menu.item>
-        
-    
+ + File + + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > context-menu > index.blade.php, diff --git a/resources/views/docs/contribute.blade.php b/resources/views/docs/contribute.blade.php index 252529a6..5b21c3fd 100644 --- a/resources/views/docs/contribute.blade.php +++ b/resources/views/docs/contribute.blade.php @@ -41,57 +41,75 @@

Testing Locally

It is much easier to test whatever you are working on locally to ensure everything is working as intended. To this end, you will need to include a local version of BladewindUI in a project you can test locally.

You will need to make the following modifications to your project's composer.json file. This is the project you are testing the BladewindUI changes in.

-
-        
-        // your-project/composer.json
-        ...
-        "require": {
+    @php
+        $contributeExample1 = <<<'HTML'
+            // your-project/composer.json
             ...
-            /*
-            issue-184 is the name of the Bladewind branch
-            you either checked out or created
-            dev- is just a prefix required by composer
-            if you checked out the development branch,
-            you will type "dev-development"
-            */
-            "bladewindui/ui": "dev-issue-184",
-            ...
-        },
-        "repositories": {
-            "bladewindui/ui": {
-                "type": "path",
-                "url": "/path/to/bladewindui/folder/on/your/computer"
-                // on my computer, the value for url is
-                //  "/Users/mkocansey/projects/kursor/bladewindui"
+            "require": {
+                ...
+                /*
+                issue-184 is the name of the Bladewind branch
+                you either checked out or created
+                dev- is just a prefix required by composer
+                if you checked out the development branch,
+                you will type "dev-development"
+                */
+                "bladewindui/ui": "dev-issue-184",
+                ...
+            },
+            "repositories": {
+                "bladewindui/ui": {
+                    "type": "path",
+                    "url": "/path/to/bladewindui/folder/on/your/computer"
+                    // on my computer, the value for url is
+                    //  "/Users/mkocansey/projects/kursor/bladewindui"
+                }
             }
-        }
-        
-    
+ HTML; + @endphp +

Now you will need to run composer update at the root of your project.

-
composer update
+ @php + $contributeExample2 = <<<'HTML' + composer update + HTML; + @endphp +

Your project should be using your local version of BladewindUI now. To test the components directly from the vendor/bladewindui directory, use the colon notation for invoking components.

-

-    <x-bladewind::bell />
-    <x-bladewind::notification />
-    
+ @php + $contributeExample3 = <<<'HTML' + + + HTML; + @endphp +

If you are making CSS or Javascript changes, you will need to be compiling the TailwindCSS classes as you code. I use mix for this but you can stick with however you already compile assets.

-

-# this should be run at the root
-# of your local version of bladewind
-npx mix watch
+ @php + $contributeExample4 = <<<'HTML' + # this should be run at the root + # of your local version of bladewind + npx mix watch + HTML; + @endphp +

If for some reason the changes you make are not taking effect in your test project, you will need to run the command below to copy over the assets from bladewind into your project. Run this at the root of your project (not the bladewind project).

-
php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-public --force
+ @php + $contributeExample5 = <<<'HTML' + php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-public --force + HTML; + @endphp +

Documenting New Attributes or Components

This is an optional step. As much as possible I will document any changes that come in the PRs. If you however, introduce new attributes or components and want to take a stab at documenting them, you will need to clone the @@ -103,35 +121,37 @@

All props should be at top of the page and variables should be of the right type.

-
-        
-        props([
-        'size'       => 'small',
-        'show_dot'   => true,       // correct
-        'show_dot'   => 'true',     // wrong
-        ...
-        
-    
+ @php + $contributeExample6 = <<<'HTML' + props([ + 'size' => 'small', + 'show_dot' => true, // correct + 'show_dot' => 'true', // wrong + ... + HTML; + @endphp +

Attribute Names

As much as possible, try to use single words for attribute names where possible. Where you need to use more than one word, the attribute names should read like spoken English. Especially if the attribute values will be boolean. Below are a couple of examples.

-
-        
-        props([
-        'show_dot'   => true,
-        'has_shadow' => true,
-        'accepted_file_types' => '',
-        'is_numeric' => true,   // this can just be 'numeric' => true,
-        'show_close_icon' => true,
+    @php
+        $contributeExample7 = <<<'HTML'
+            props([
+            'show_dot'   => true,
+            'has_shadow' => true,
+            'accepted_file_types' => '',
+            'is_numeric' => true,   // this can just be 'numeric' => true,
+            'show_close_icon' => true,
 
-        // the above attribute can be replaced with the one word
-        'closable' => true,
-        ...
-        
-    
+ // the above attribute can be replaced with the one word + 'closable' => true, + ... + HTML; + @endphp +

Code of Conduct

BladewindUI derives its code of conduct from The Ruby Community Conduct Guideline and we advise contributors to be respectful of these.

diff --git a/resources/views/docs/copy-button.blade.php b/resources/views/docs/copy-button.blade.php index 47062c94..3b4cb769 100644 --- a/resources/views/docs/copy-button.blade.php +++ b/resources/views/docs/copy-button.blade.php @@ -12,11 +12,12 @@ composer require bladewindui/ui -
-        
-            <x-bladewind::copy-button>composer require bladewindui/ui</x-bladewind::copy-button>
-        
-    
+ @php + $copyUbuttonExample1 = <<<'HTML' + composer require bladewindui/ui + HTML; + @endphp +

With no value, the button copies its own slot's trimmed text: the display and the copied value never drift apart because there is only one string to keep in sync. @@ -33,12 +34,13 @@ -

-        
-            <code>sk_live_••••••••1234</code>
-            <x-bladewind::copy-button value="sk_live_a1b2c3d4e5f61234" copy-label="Copy API key" />
-        
-    
+ @php + $copyUbuttonExample2 = <<<'HTML' + sk_live_••••••••1234 + + HTML; + @endphp +

A labelled button

@@ -48,11 +50,12 @@ -

-        
-            <x-bladewind::copy-button value="1234-5678-9012" label="Copy code" />
-        
-    
+ @php + $copyUbuttonExample3 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

@@ -104,9 +107,9 @@

Copy Button with all attributes defined

-
-        
-            <x-bladewind::copy-button
+    @php
+        $copyUbuttonExample4 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > copy-button.blade.php diff --git a/resources/views/docs/credit-card.blade.php b/resources/views/docs/credit-card.blade.php index 85f463b7..3fbdfac1 100644 --- a/resources/views/docs/credit-card.blade.php +++ b/resources/views/docs/credit-card.blade.php @@ -17,22 +17,24 @@

-
-        
-            <x-bladewind::credit-card cardholder_name="Jane T. Doe"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample1 = <<<'HTML' + + HTML; + @endphp +

Flipping To The CVC

Click the round button on the card's edge to flip to the back and enter the security code. The same button flips back, and so does the Escape key while flipped.

-
-        
-            <x-bladewind::credit-card flipped="true"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample2 = <<<'HTML' + + HTML; + @endphp +

Pre-Filling Fields

@@ -48,16 +50,17 @@ expiry_month="07" expiry_year="28" > -

-        
-            <x-bladewind::credit-card
+    @php
+        $creditUcardExample3 = <<<'HTML'
+            
-    
+ expiry_year="28"> + + HTML; + @endphp +

Forcing A Network

@@ -65,28 +68,31 @@ override, for example a saved card where the network is already known but the full number is not shown.

-
-        
-            <x-bladewind::credit-card brand="visa" number="•••• •••• •••• 4242"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample4 = <<<'HTML' + + HTML; + @endphp +

Theming

Set color to any colour in the palette to change the gradient.

-
-        
-            <x-bladewind::credit-card color="green"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample5 = <<<'HTML' + + HTML; + @endphp +

Set variant="outline" for a bare card silhouette instead of the full-colour gradient face.

-
-        
-            <x-bladewind::credit-card variant="outline" cardholder_name="Jane T. Doe"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample6 = <<<'HTML' + + HTML; + @endphp +

Inline Card Information

@@ -94,11 +100,12 @@ CVC on the next, with no cardholder name field or flip animation.

-
-        
-            <x-bladewind::credit-card variant="inline"></x-bladewind::credit-card>
-        
-    
+ @php + $creditUcardExample7 = <<<'HTML' + + HTML; + @endphp +

Validation

@@ -109,23 +116,24 @@ a message beneath the card when it fails.

-
-        
-            <x-bladewind::credit-card
+    @php
+        $creditUcardExample8 = <<<'HTML'
+            
+            
 
-            <script>
+            
+            HTML;
+    @endphp
+    
 
     

Full List Of Attributes

@@ -250,15 +258,20 @@
-
checkout_card.value;
-checkout_card.validate();
-checkout_card.toggleFlip();
-checkout_card.isFlipped();
+ @php + $creditUcardExample9 = <<<'HTML' + checkout_card.value; + checkout_card.validate(); + checkout_card.toggleFlip(); + checkout_card.isFlipped(); + HTML; + @endphp +

Credit Card with all attributes defined

-
-        
-            <x-bladewind::credit-card
+    @php
+        $creditUcardExample10 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > credit-card.blade.php diff --git a/resources/views/docs/currency-input.blade.php b/resources/views/docs/currency-input.blade.php index 18066902..680cdf19 100644 --- a/resources/views/docs/currency-input.blade.php +++ b/resources/views/docs/currency-input.blade.php @@ -11,11 +11,12 @@ -
-        
-            <x-bladewind::currency-input name="price" label="Price" />
-        
-    
+ @php + $currencyUinputExample1 = <<<'HTML' + + HTML; + @endphp +

The default currency is USD and the default locale is en-US, both overridable globally via @@ -38,14 +39,15 @@ -

-        
-            <x-bladewind::currency-input name="price_usd" label="US Dollar" currency="USD" locale="en-US" />
-            <x-bladewind::currency-input name="price_eur" label="Euro (French formatting)" currency="EUR" locale="fr-FR" />
-            <x-bladewind::currency-input name="price_ghs" label="Ghanaian Cedi" currency="GHS" locale="en-GH" />
-            <x-bladewind::currency-input name="price_jpy" label="Japanese Yen (no decimals)" currency="JPY" locale="ja-JP" />
-        
-    
+ @php + $currencyUinputExample2 = <<<'HTML' + + + + + HTML; + @endphp +

Without the intl extension, every currency still gets a sensible symbol (a small built-in table covers the common ones; anything else falls back to the currency code itself) and the correct @@ -66,11 +68,12 @@ -

-        
-            <x-bladewind::currency-input name="price_custom" label="Custom symbol" symbol="US$" symbol-position="suffix" />
-        
-    
+ @php + $currencyUinputExample3 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

@@ -132,9 +135,9 @@

Currency Input with all attributes defined

-
-        
-            <x-bladewind::currency-input
+    @php
+        $currencyUinputExample4 = <<<'HTML'
+            
-    
+ size="regular" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > currency-input.blade.php diff --git a/resources/views/docs/customize.blade.php b/resources/views/docs/customize.blade.php index c1bcbad0..c0f65108 100644 --- a/resources/views/docs/customize.blade.php +++ b/resources/views/docs/customize.blade.php @@ -8,37 +8,41 @@ vendor/bladewindui/table. However, they all share the same bladewind:: view namespace. This Laravel convention means you’ll need to type the <x-bladewind prefix every time you use a BladewindUI component.

-
-        
-            <x-bladewind::button>Save User</x-bladewind::button>
-        
-    
+ @php + $customizeExample1 = <<<'HTML' + <x-bladewind::button>Save User + HTML; + @endphp +

Once you publish the BladewindUI components, the files get moved to your project's resources > views > components > bladewind directory. You can then use the dot, instead of the colon syntax to access a component.

-
-        
-            <x-bladewind.button>Save User</x-bladewind.button>
-        
-    
+ @php + $customizeExample2 = <<<'HTML' + Save User + HTML; + @endphp +

Getting rid of the bladewind prefix

It is possible to get rid of the bladewind prefix entirely.

-
-        
-            <x-bladewind.button>Save User</x-bladewind.button>
+    @php
+        $customizeExample3 = <<<'HTML'
+            Save User
 
             // or
 
-            <x-bladewind::button>Save User</x-bladewind::button>
-        
-    
+ Save User + HTML; + @endphp + becomes -
-        
-            <x.button>Save User</x-button>
-        
-    
+ @php + $customizeExample4 = <<<'HTML' + Save User + HTML; + @endphp +

To achieve this, you should have already published the Bladewind components. Next you will move all the blade files in resources > views > components > bladewind into resources > views > components. You can then delete the bladewind folder from your resources > views > components folder since it should technically be empty at this point. @@ -61,7 +65,12 @@

Updates that touch the css and js files require the library's assets to be republished. Run the command below to republish the library's css and js files.

-
php artisan vendor:publish --tag=bladewind-public --force
+ @php + $customizeExample5 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-public --force + HTML; + @endphp +

To prevent any changes you made earlier from being overwritten by updates, we advise you to make all changes that overwrite Bladewind css classes in your project's css file instead of editing the Bladewind css file directly. Your project's css file should always be included after the Bladewind css file. @@ -75,7 +84,12 @@ . Currently the available languages contributed by the community are English, French, Italian, Arabic, German, Chinese, Spanish and Indonesian. You can add more languages as you see fit or even modify the existing translations. If you want to do this for just your project you will first need to publish the language files by running the command below from the root of your project. You can contribute a new language translation.

-
php artisan vendor:publish --tag=bladewind-lang --force

+ @php + $customizeExample6 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-lang --force + HTML; + @endphp +

The language files will now be available in your project's lang > vendor > bladewind directory. You can now add more languages or edit the language files that were published.

@@ -87,27 +101,43 @@ If you need all your buttons in lowercase, that means you will be typing a lot of uppercasing="false". Now what if you also need all your buttons to be small and to have no focus rings, your code every time will be

-
-         <x-bladewind::button show_focus_ring="false" size="small" uppercasing="false">
-            Save
-        </x-bladewind::button>
-    
+ @php + $customizeExample7 = <<<'HTML' + + Save + + HTML; + @endphp +

This is tedious. Won't it be great to just type the code below to get a button looking the way you'd want for your project?

-
-         <x-bladewind::button>Save</x-bladewind::button>
-    
+ @php + $customizeExample8 = <<<'HTML' + Save + HTML; + @endphp +

To achieve this, create a config/bladewind.php file in the root of your project. If you installed the full bladewindui/ui package you can have Laravel generate this file for you:

-
php artisan vendor:publish --tag=bladewind-config --force
+ @php + $customizeExample9 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-config --force + HTML; + @endphp +

If you installed individual component packages (e.g. bladewindui/button) the bladewind-config publish tag is not available. Simply create the file manually instead:

-
touch config/bladewind.php
+ @php + $customizeExample10 = <<<'HTML' + touch config/bladewind.php + HTML; + @endphp +

Either way, you will end up with a config/bladewind.php file you can edit. You only need to define the components and attributes you want to change. You do not have to copy the full default configuration. @@ -116,32 +146,33 @@ focus rings and not be uppercase.

-

-    
-        // config/bladewind.php
+    @php
+        $customizeExample11 = <<<'HTML'
+                // config/bladewind.php
 
-    ...
+            ...
 
-    /*
-    |--------------------------------------------------------------------------
-    | Button component
-    |--------------------------------------------------------------------------
-    */
-    'button' => [
-        'size' => 'small',
-        'show_focus_ring' => false,
-        'uppercasing' => false,
-        'radius' => 'medium',
-        'tag' => 'button',
+            /*
+            |--------------------------------------------------------------------------
+            | Button component
+            |--------------------------------------------------------------------------
+            */
+            'button' => [
+                'size' => 'small',
+                'show_focus_ring' => false,
+                'uppercasing' => false,
+                'radius' => 'medium',
+                'tag' => 'button',
 
-        // define default attributes for all circular buttons
-        'circle' => [
-            'size' => 'regular',
-        ]
-    ],
-    ...
-    
-    
+ // define default attributes for all circular buttons + 'circle' => [ + 'size' => 'regular', + ] + ], + ... + HTML; + @endphp +

It is very important to ensure the attribute spelling as defined in the docs matches what you define in the config file. @@ -151,7 +182,12 @@ Remember to always to clear your configuration cache if you make any changes to the configuration file by running the command below from the root of your project. -
php artisan config:clear
+ @php + $customizeExample12 = <<<'HTML' + php artisan config:clear + HTML; + @endphp +

Newer Config Groups

@@ -159,52 +195,53 @@ A few groups are worth knowing about because they are not simply a mirror of a component's attributes.

-
-    
-        // config/bladewind.php
+    @php
+        $customizeExample13 = <<<'HTML'
+                // config/bladewind.php
 
-    ...
+            ...
 
-    'card' => [
-        // house style once, rather than on every card. border on + shadow on is
-        // the shipped pairing, but border off + shadow on is what most apps land on
-        'has_border' => false,
-        'has_shadow' => true,
-        // a padding scale, or any tailwind padding utility
-        'padding' => 'regular',
-    ],
+            'card' => [
+                // house style once, rather than on every card. border on + shadow on is
+                // the shipped pairing, but border off + shadow on is what most apps land on
+                'has_border' => false,
+                'has_shadow' => true,
+                // a padding scale, or any tailwind padding utility
+                'padding' => 'regular',
+            ],
 
-    'icon' => [
-        // tiny small regular medium big large, or a utility like size-[18px]
-        'size' => 'medium',
-    ],
+            'icon' => [
+                // tiny small regular medium big large, or a utility like size-[18px]
+                'size' => 'medium',
+            ],
 
-    'statistic' => [
-        // neutral positive negative warning info
-        'tone' => 'neutral',
-        // for metrics where down is good, like arrears or churn
-        'invert_direction' => false,
-    ],
+            'statistic' => [
+                // neutral positive negative warning info
+                'tone' => 'neutral',
+                // for metrics where down is good, like arrears or churn
+                'invert_direction' => false,
+            ],
 
-    'input_group' => [
-        // run attached controls flush against each other
-        'attached' => true,
-    ],
+            'input_group' => [
+                // run attached controls flush against each other
+                'attached' => true,
+            ],
 
-    'pagination' => [
-        // server mode, used when the component is handed a Laravel paginator
-        'per_page_options' => [15, 30, 50],
-        'per_page_name' => 'per_page',
-        'on_each_side' => 1,
-    ],
+            'pagination' => [
+                // server mode, used when the component is handed a Laravel paginator
+                'per_page_options' => [15, 30, 50],
+                'per_page_name' => 'per_page',
+                'on_each_side' => 1,
+            ],
 
-    'table' => [
-        // most apps that care about density set this
-        'divider' => 'thin',
-    ],
-    ...
-    
-    
+ 'table' => [ + // most apps that care about density set this + 'divider' => 'thin', + ], + ... + HTML; + @endphp +

Laravel Form State

@@ -215,30 +252,31 @@ filepicker. Unlike the other sections here, this one is not named after a component — it is shared by all of them.

-
-    
-        // config/bladewind.php
+    @php
+        $customizeExample14 = <<<'HTML'
+                // config/bladewind.php
 
-    ...
+            ...
 
-    /*
-    |--------------------------------------------------------------------------
-    | Laravel form-state integration
-    |--------------------------------------------------------------------------
-    */
-    'forms' => [
-        // repopulate fields from old() after a failed validation
-        'fill_from_old' => true,
+            /*
+            |--------------------------------------------------------------------------
+            | Laravel form-state integration
+            |--------------------------------------------------------------------------
+            */
+            'forms' => [
+                // repopulate fields from old() after a failed validation
+                'fill_from_old' => true,
 
-        // give a field its error state and print $errors->first() beneath it
-        'show_validation_error' => true,
+                // give a field its error state and print $errors->first() beneath it
+                'show_validation_error' => true,
 
-        // which error bag to read. null uses Laravel's default bag
-        'error_bag' => null,
-    ],
-    ...
-    
-    
+ // which error bag to read. null uses Laravel's default bag + 'error_bag' => null, + ], + ... + HTML; + @endphp +

With that in place a plain <x-bladewind::input name="email" /> keeps whatever the user typed after a validation redirect and prints its own error message. diff --git a/resources/views/docs/darkmode.blade.php b/resources/views/docs/darkmode.blade.php index 99142e96..5563fc18 100644 --- a/resources/views/docs/darkmode.blade.php +++ b/resources/views/docs/darkmode.blade.php @@ -9,24 +9,26 @@

-
-    
-    // your-project/vendor/bladewindui/ui/tailwind.css
-    @theme {
-        ...
-        --color-dark-100: #f0f1f2;
-        --color-dark-200: #d2d4d7;
-        --color-dark-300: #a7aaad;
-        --color-dark-400: #6c7075;
-        --color-dark-500: #4a4e53;
-        --color-dark-600: #33373c;
-        --color-dark-700: #262a2f;
-        --color-dark-800: #1C1F24;
-        --color-dark-900: #101114;
-        --color-dark-950: #0a0b0d;
-    }
-    
-    
+ @php + $darkmodeExample1 = <<<'HTML' + // your-project/vendor/bladewindui/ui/tailwind.css + BWATSIGNPLACEHOLDERtheme { + ... + --color-dark-100: #f0f1f2; + --color-dark-200: #d2d4d7; + --color-dark-300: #a7aaad; + --color-dark-400: #6c7075; + --color-dark-500: #4a4e53; + --color-dark-600: #33373c; + --color-dark-700: #262a2f; + --color-dark-800: #1C1F24; + --color-dark-900: #101114; + --color-dark-950: #0a0b0d; + } + HTML; + $darkmodeExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $darkmodeExample1); + @endphp +

@@ -35,26 +37,28 @@

To change the colour used for dark mode, simply define overwriting values in your project's app.css.

-
-    
-        // your-project/resources/css/app.css
-        @theme {
-            ...
-            /* dark colour scale */
-            --color-dark-100: #f0f1f2;
-            --color-dark-200: #d2d4d7;
-            --color-dark-300: #a7aaad;
-            --color-dark-400: #6c7075;
-            --color-dark-500: #4a4e53;
-            --color-dark-600: #33373c;
-            --color-dark-700: #262a2f;
-            --color-dark-800: #1C1F24;
-            --color-dark-900: #101114;
-            --color-dark-950: #0a0b0d;
-            ...
-        }
-    
-    
+ @php + $darkmodeExample2 = <<<'HTML' + // your-project/resources/css/app.css + BWATSIGNPLACEHOLDERtheme { + ... + /* dark colour scale */ + --color-dark-100: #f0f1f2; + --color-dark-200: #d2d4d7; + --color-dark-300: #a7aaad; + --color-dark-400: #6c7075; + --color-dark-500: #4a4e53; + --color-dark-600: #33373c; + --color-dark-700: #262a2f; + --color-dark-800: #1C1F24; + --color-dark-900: #101114; + --color-dark-950: #0a0b0d; + ... + } + HTML; + $darkmodeExample2 = str_replace('BWATSIGNPLACEHOLDER', '@', $darkmodeExample2); + @endphp +

Base Colour and DarkMode Selector

diff --git a/resources/views/docs/data-grid.blade.php b/resources/views/docs/data-grid.blade.php index f4482564..651f1447 100644 --- a/resources/views/docs/data-grid.blade.php +++ b/resources/views/docs/data-grid.blade.php @@ -46,22 +46,27 @@ -
<x-bladewind::data-grid
-    name="orders-grid"
-    label="Orders"
-    searchable="true"
-    selectable="true"
-    sortable="true"
-    paginated="true"
-    page-size="10"
-    :columns="[
-        ['key' => 'reference', 'label' => 'Reference', 'sortable' => true],
-        ['key' => 'customer', 'label' => 'Customer', 'sortable' => true],
-        ['key' => 'status', 'label' => 'Status', 'align' => 'center', 'format' => $statusPill],
-        ['key' => 'total', 'label' => 'Total', 'align' => 'right', 'sortable' => true,
-            'format' => fn ($value) => '$'.number_format($value / 100, 2)],
-    ]"
-    :rows="$orders" />
+ @php + $dataUgridExample1 = <<<'HTML' + + HTML; + @endphp +

The example above uses 34 orders, enough for four real pages at the default page size, so paging, sorting, and searching all have something genuine to work against instead of a handful of rows that fit on one screen anyway.

Columns and Rows

@@ -70,49 +75,69 @@

Shorthand Column Syntax

Writing out ['key' => 'name', 'label' => 'Name'] for every column is tedious when you just want the label auto-generated from the key. Pass a plain array of key strings instead, and the grid title-cases each key and swaps underscores for spaces to build the label.

Shorthand columns skip the format and sort callbacks entirely, so cells render whatever raw value the field holds. That is fine for text and status fields, and the reason the example below leaves total out: an unformatted amount in cents is not something you would want to ship.

-
<x-bladewind::data-grid name="short-columns" label="Reviewers"
-    :columns="['reference', 'customer', 'status']"
-    :rows="$orders" />
+ @php + $dataUgridExample2 = <<<'HTML' + + HTML; + @endphp +

You can also pass an associative array of key => label pairs when you only need to rename a column, without the full array shape.

-
<x-bladewind::data-grid name="aliased-columns" label="Reviewers"
-    :columns="['reference' => 'Order #', 'customer' => 'Placed By', 'status' => 'State']"
-    :rows="$orders" />
+ @php + $dataUgridExample3 = <<<'HTML' + + HTML; + @endphp +

Formatting a Column

format($value, $row) receives the raw cell value and the full row, and its return value is rendered as raw HTML rather than escaped text. That means a format callback can return a styled badge, an icon, or a link, not just a plain string. The Status column in the orders grid above uses exactly this to render a colour-coded pill:

-
$statusColors = [
-    'paid' => 'bg-emerald-100 text-emerald-700',
-    'pending' => 'bg-amber-100 text-amber-700',
-    'refunded' => 'bg-slate-200 text-slate-600',
-];
-
-$columns = [
-    // ...
-    [
-        'key' => 'status',
-        'label' => 'Status',
-        'align' => 'center',
-        'format' => function ($value) use ($statusColors) {
-            $class = $statusColors[$value] ?? $statusColors['pending'];
-            return '<span class="inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium '.$class.'">'
-                .ucfirst($value).'</span>';
-        },
-    ],
-];
+ @php + $dataUgridExample4 = <<<'HTML' + $statusColors = [ + 'paid' => 'bg-emerald-100 text-emerald-700', + 'pending' => 'bg-amber-100 text-amber-700', + 'refunded' => 'bg-slate-200 text-slate-600', + ]; + + $columns = [ + // ... + [ + 'key' => 'status', + 'label' => 'Status', + 'align' => 'center', + 'format' => function ($value) use ($statusColors) { + $class = $statusColors[$value] ?? $statusColors['pending']; + return '' + .ucfirst($value).''; + }, + ], + ]; + HTML; + @endphp + Because format output is not escaped, never feed it raw user input without sanitising first. Build the HTML yourself around a trusted value, as above, or run untrusted text through e() before it goes into the string.

Custom Sort Values

Sorting compares the raw cell value by default, before format runs. That is correct for the currency column above, since total is already an integer number of cents. It breaks down for a column whose sortable order should not match either the raw value or the formatted text, a date stored as a display string, or a status that should sort by severity rather than alphabetically. Give the column its own sort($value, $row) callback to override just the comparison value.

-
<x-bladewind::data-grid name="status-priority" label="Orders by priority" sortable="true"
-    :columns="[
-        ['key' => 'reference', 'label' => 'Reference'],
-        ['key' => 'status', 'label' => 'Status', 'align' => 'center',
-            'format' => $statusPill,
-            'sort' => fn ($value) => ['refunded' => 0, 'pending' => 1, 'paid' => 2][$value] ?? 1],
-    ]"
-    :rows="$orders" />
+ @php + $dataUgridExample5 = <<<'HTML' + + HTML; + @endphp + @php $priorityColumns = [ ['key' => 'reference', 'label' => 'Reference'], @@ -127,8 +152,13 @@

Row Identity

Every row needs a stable, unique key so selection, sorting, and pagination can track it across re-renders. By default the grid reads id off each row. Set row-key when your data's identifier is called something else, an order reference, a UUID column, a database primary key with a different name.

-
<x-bladewind::data-grid name="by-reference" label="Orders" row-key="reference"
-    :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample6 = <<<'HTML' + + HTML; + @endphp +

Sorting

Set sortable="true" on the grid to make every column sortable, or set sortable per column, as the Reference and Customer columns do in the first example on this page. Clicking a header cycles none, ascending, descending, none again.

@@ -136,52 +166,77 @@

Sorting on Load

Pass sort-key and sort-direction to render the grid already sorted, useful for a grid that should default to showing the newest or highest-value rows first without the user having to click anything.

-
<x-bladewind::data-grid name="highest-value-first" label="Orders by value"
-    sortable="true" sort-key="total" sort-direction="desc"
-    :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample7 = <<<'HTML' + + HTML; + @endphp +

Server-Driven Sorting

With client-sort="false", clicking a sortable header does not touch the DOM. It fires a cancelable before-sort-change followed by sort-change, with the column key and the new direction in the event detail. Handle it, refetch the sorted page from your backend, and re-render the grid, the same pattern used by the search and pagination events further down this page.

-
document.addEventListener('bladewind:data-grid:sort-change', (event) => {
-    if (event.detail.name !== 'orders-grid') return;
-    const { key, direction } = event.detail;
-    setDataGridLoading('orders-grid', true);
-    fetch(`/orders?sort=${key}&direction=${direction}`)
-        .then((response) => response.text())
-        .then((html) => {
-            document.getElementById('orders-grid-wrapper').innerHTML = html;
-        });
-});
+ @php + $dataUgridExample8 = <<<'HTML' + document.addEventListener('bladewind:data-grid:sort-change', (event) => { + if (event.detail.name !== 'orders-grid') return; + const { key, direction } = event.detail; + setDataGridLoading('orders-grid', true); + fetch(`/orders?sort=${key}&direction=${direction}`) + .then((response) => response.text()) + .then((html) => { + document.getElementById('orders-grid-wrapper').innerHTML = html; + }); + }); + HTML; + @endphp +

Searching

searchable="true" renders a toolbar search field. client-search defaults to true and filters rows by their rendered cell text as you type. Try searching for a customer name in the first example on this page, or for a status like refunded.

Customise the placeholder with search-placeholder:

-
<x-bladewind::data-grid name="orders-grid" searchable="true" search-placeholder="Search by reference or customer…"
-    :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample9 = <<<'HTML' + + HTML; + @endphp +

Set client-search="false" to filter server-side instead. The grid renders no filtering itself, it emits bladewind:data-grid:search with the current query on every keystroke, so debounce it yourself before hitting your backend.

-
let searchTimer;
-document.addEventListener('bladewind:data-grid:search', (event) => {
-    if (event.detail.name !== 'orders-grid') return;
-    clearTimeout(searchTimer);
-    searchTimer = setTimeout(() => {
-        setDataGridLoading('orders-grid', true);
-        fetch(`/orders?q=${encodeURIComponent(event.detail.query)}`)
-            .then((response) => response.text())
-            .then((html) => {
-                document.getElementById('orders-grid-wrapper').innerHTML = html;
+    @php
+        $dataUgridExample10 = <<<'HTML'
+            let searchTimer;
+            document.addEventListener('bladewind:data-grid:search', (event) => {
+                if (event.detail.name !== 'orders-grid') return;
+                clearTimeout(searchTimer);
+                searchTimer = setTimeout(() => {
+                    setDataGridLoading('orders-grid', true);
+                    fetch(`/orders?q=${encodeURIComponent(event.detail.query)}`)
+                        .then((response) => response.text())
+                        .then((html) => {
+                            document.getElementById('orders-grid-wrapper').innerHTML = html;
+                        });
+                }, 300);
             });
-    }, 300);
-});
+ HTML; + @endphp +

Row Selection

selectable="true" adds a selection column. selection-mode is multiple (checkboxes, with a tri-state select-all in the header, scoped to the current page or search results) or single (radio buttons). A selection bar appears above the grid once anything is selected, with a clear-selection control and an optional bulk-actions slot for custom buttons.

Multiple Selection

-
<x-bladewind::data-grid name="bulk-orders" label="Orders" selectable="true" selection-mode="multiple"
-    paginated="true" page-size="8" :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample11 = <<<'HTML' + + HTML; + @endphp +

Single Selection

@@ -196,20 +251,30 @@

Preselected Rows

Pass selected with an array of row keys to render the grid with some rows already checked, useful for an edit form that reopens with a saved set of chosen rows.

-
<x-bladewind::data-grid name="preselected-orders" label="Orders" selectable="true"
-    :selected="['3', '7', '12']"
-    :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample12 = <<<'HTML' + + HTML; + @endphp +

Bulk Actions

The bulk-actions slot renders inside the selection bar, next to the clear-selection control, and only appears once at least one row is selected. Pair it with dataGridSelectedKeys() to read the current selection when a bulk action fires.

-
<x-bladewind::data-grid name="orders-with-actions" label="Orders" selectable="true"
-    :columns="$orderColumns" :rows="$orders">
-    <x-slot:bulk-actions>
-        <x-bladewind::button size="small" onclick="alert('Exporting: ' + dataGridSelectedKeys('orders-with-actions').join(', '))">Export</x-bladewind::button>
-        <x-bladewind::button size="small" type="red" onclick="alert('Deleting: ' + dataGridSelectedKeys('orders-with-actions').join(', '))">Delete</x-bladewind::button>
-    </x-slot:bulk-actions>
-</x-bladewind::data-grid>
+ @php + $dataUgridExample13 = <<<'HTML' + + + Export + Delete + + + HTML; + @endphp + Export @@ -228,18 +293,28 @@

Server-Driven Pagination

Pass a real Laravel paginator through paginator instead of setting paginated directly, the grid detects it and switches into server mode on its own, rendering Pagination's standard page links. rows should be the paginator's current-page items, not the full dataset.

-
// in your controller or route closure
-$staff = Staff::query()->orderBy('company_name')->paginate(8);
-return view('staff.index', ['staff' => $staff]);
-
<x-bladewind::data-grid name="staff-directory" label="Staff directory" row-key="member_id"
-    :columns="[
-        ['key' => 'company_name', 'label' => 'Company', 'sortable' => true],
-        ['key' => 'first_name', 'label' => 'Contact', 'format' => fn ($v, $row) => $row['first_name'].' '.$row['last_name']],
-        ['key' => 'mobile', 'label' => 'Mobile'],
-        ['key' => 'email', 'label' => 'Email'],
-    ]"
-    :rows="$staff->items()"
-    :paginator="$staff" />
+ @php + $dataUgridExample14 = <<<'HTML' + // in your controller or route closure + $staff = Staff::query()->orderBy('company_name')->paginate(8); + return view('staff.index', ['staff' => $staff]); + HTML; + @endphp + + @php + $dataUgridExample15 = <<<'HTML' + + HTML; + @endphp + @php $staffAll = collect(include resource_path('views/docs/users.php')); $staffPage = \Illuminate\Pagination\Paginator::resolveCurrentPage('staff_page') ?: 1; @@ -277,19 +352,39 @@

Striped

-
<x-bladewind::data-grid name="striped-grid" label="Orders" striped="true" :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample16 = <<<'HTML' + + HTML; + @endphp +

Bordered

-
<x-bladewind::data-grid name="bordered-grid" label="Orders" bordered="true" :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample17 = <<<'HTML' + + HTML; + @endphp +

sticky pins the header row while the body scrolls, and defaults to true. It only has something to do once the grid has a height short enough that the rows actually scroll, so the two go together. Scroll inside the grid below and the header stays put.

-
<x-bladewind::data-grid name="sticky-grid" label="Orders" height="12rem" :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample18 = <<<'HTML' + + HTML; + @endphp +

Set sticky="false" to let the header scroll away with the rest of the content instead, useful if the grid already sits inside its own scroll container that provides a sticky header at a higher level.

-
<x-bladewind::data-grid name="non-sticky-grid" label="Orders" height="12rem" sticky="false" :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample19 = <<<'HTML' + + HTML; + @endphp +

Dense, With a Fixed Scrollable Height

dense and a fixed height pair well for a compact grid embedded inside a card or a dashboard widget, where the header should stay visible while the body scrolls internally instead of pushing the rest of the page down.

@@ -297,18 +392,28 @@ -
<x-bladewind::data-grid name="dense-grid" label="Compact orders"
-    striped="true" dense="true" height="14rem"
-    :columns="$orderColumns" :rows="$orders" />
+ @php + $dataUgridExample20 = <<<'HTML' + + HTML; + @endphp +

Toolbar

The toolbar slot renders next to the search field, for controls that apply to the grid as a whole rather than to a selection, an export button, a view switcher, a status filter.

-
<x-bladewind::data-grid name="orders-with-toolbar" label="Orders" searchable="true"
-    :columns="$orderColumns" :rows="$orders">
-    <x-slot:toolbar>
-        <x-bladewind::button size="small" onclick="alert('Exporting all orders as CSV')">Export CSV</x-bladewind::button>
-    </x-slot:toolbar>
-</x-bladewind::data-grid>
+ @php + $dataUgridExample21 = <<<'HTML' + + + Export CSV + + + HTML; + @endphp + Export CSV @@ -318,23 +423,28 @@

Custom Layout

Skip columns and rows entirely for a fully custom layout: a header slot for <th> content, and the default slot for hand-written <tr> rows. This is the escape hatch for a table body that does not fit the column model at all, merged cells, a summary row, a layout the grid was never meant to describe.

A custom layout opts out of the grid's own sorting, searching, and pagination automation, since those all work against the columns and rows the grid normalises internally. You are responsible for reimplementing any of that behaviour yourself against your hand-written markup. -
<x-bladewind::data-grid name="custom-orders" label="Orders summary">
-    <x-slot:header>
-        <th>Reference</th>
-        <th>Customer</th>
-        <th class="text-right">Total</th>
-    </x-slot:header>
-
-    <tr>
-        <td>ORD-1041</td>
-        <td>Kofi Addo</td>
-        <td class="text-right">$84.00</td>
-    </tr>
-    <tr class="font-semibold">
-        <td colspan="2">Total</td>
-        <td class="text-right">$84.00</td>
-    </tr>
-</x-bladewind::data-grid>
+ @php + $dataUgridExample22 = <<<'HTML' + + +
+ + + + + + + + + + + + + + + HTML; + @endphp + @@ -361,14 +471,19 @@

A practical use for the before events is confirming a change rather than silently accepting it:

-
document.addEventListener('bladewind:data-grid:before-select-change', (event) => {
-    if (event.detail.name !== 'orders-grid') return;
-    if (event.detail.selecting && event.detail.row.status === 'refunded') {
-        if (!confirm('This order was refunded. Select it anyway?')) {
-            event.preventDefault();
-        }
-    }
-});
+ @php + $dataUgridExample23 = <<<'HTML' + document.addEventListener('bladewind:data-grid:before-select-change', (event) => { + if (event.detail.name !== 'orders-grid') return; + if (event.detail.selecting && event.detail.row.status === 'refunded') { + if (!confirm('This order was refunded. Select it anyway?')) { + event.preventDefault(); + } + } + }); + HTML; + @endphp +

Full List of Attributes

@@ -420,29 +535,39 @@ -
sortDataGrid('orders-grid', 'total', 'desc');
-setDataGridPage('orders-grid', 2);
-selectAllDataGridRows('orders-grid', true);
-dataGridSelectedKeys('orders-grid'); // ['3', '7', '12']
-clearDataGridSelection('orders-grid');
-setDataGridLoading('orders-grid', true);
-resetDataGrid('orders-grid');
+ @php + $dataUgridExample24 = <<<'HTML' + sortDataGrid('orders-grid', 'total', 'desc'); + setDataGridPage('orders-grid', 2); + selectAllDataGridRows('orders-grid', true); + dataGridSelectedKeys('orders-grid'); // ['3', '7', '12'] + clearDataGridSelection('orders-grid'); + setDataGridLoading('orders-grid', true); + resetDataGrid('orders-grid'); + HTML; + @endphp +

Putting It All Together

A grid combining most of what is documented above: searchable, multi-select with bulk actions, a toolbar export button, striped rows, and client pagination over the full 34-row order list.

-
<x-bladewind::data-grid name="complete-orders" label="Orders" row-key="reference"
-    searchable="true" search-placeholder="Search orders…"
-    selectable="true" selection-mode="multiple"
-    sortable="true" striped="true"
-    paginated="true" page-size="10"
-    :columns="$orderColumns" :rows="$orders">
-    <x-slot:toolbar>
-        <x-bladewind::button size="small">Export CSV</x-bladewind::button>
-    </x-slot:toolbar>
-    <x-slot:bulk-actions>
-        <x-bladewind::button size="small" type="red">Delete selected</x-bladewind::button>
-    </x-slot:bulk-actions>
-</x-bladewind::data-grid>
+ @php + $dataUgridExample25 = <<<'HTML' + + + Export CSV + + + Delete selected + + + HTML; + @endphp + -
-        
-            <x-bladewind::datepicker  />
-        
-    
+ @php + $datepickerExample1 = <<<'HTML' + + HTML; + @endphp +

By default the datepicker fills up the width of its parent container. You can however specify a width of your choice using the datepicker's css attribute. @@ -23,13 +24,14 @@ -

-        
-            <div class="w-40">
-                <x-bladewind::datepicker placeholder="Invoice Date"  />
-            </div>
-        
-    
+ @php + $datepickerExample2 = <<<'HTML' +
+ +
+ HTML; + @endphp +

Range Calendar

@@ -39,21 +41,23 @@

-
-        
-            <x-bladewind::datepicker range="true"  />
-        
-    
+ @php + $datepickerExample3 = <<<'HTML' + + HTML; + @endphp +

Show As a Required Field

An asterisk is appended to the placeholder text when required="true".

-
-        
-            <x-bladewind::datepicker required="true"  />
-        
-    
+ @php + $datepickerExample4 = <<<'HTML' + + HTML; + @endphp +

Date Formats

@@ -61,31 +65,35 @@ The default format is format="yyyy-mm-dd". When using a range datepicker, the format you specify is applied to both datepickers.

-
-        
-            <x-bladewind::datepicker name="date1" type="range" format="dd-mm-yyyy" />
-        
-    
+ @php + $datepickerExample5 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::datepicker name="date2" format="mm-dd-yyyy" />
-        
-    
+ @php + $datepickerExample6 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::datepicker name="date3" format="D d M, Y" type="range" />
-        
-    
+ @php + $datepickerExample7 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::datepicker name="date4" format="yyyy-mm-dd" />
-        
-    
+ @php + $datepickerExample8 = <<<'HTML' + + HTML; + @endphp +

With Default Values

@@ -94,22 +102,24 @@

-
-        
-            <x-bladewind::datepicker selected_value="2021-12-03"  />
-        
-    
+ @php + $datepickerExample9 = <<<'HTML' + + HTML; + @endphp +

It is possible to have default dates for a range datepicker also.

-
-        
-            <x-bladewind::datepicker range="true" selected_value="2021-12-03 - 2022-01-03"  />
-        
-    
+ @php + $datepickerExample10 = <<<'HTML' + + HTML; + @endphp +

Min and Max Dates

@@ -120,28 +130,31 @@

-
-        
-            <x-bladewind::datepicker min_date="{{date('Y-m-d')}}" />
-        
-    
+ @php + $datepickerExample11 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::datepicker max_date="{{date('Y-m-t')}}" />
-        
-    
+ @php + $datepickerExample12 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::datepicker min_date="{{date('Y-m-01')}}" max_date="{{date('Y-m-t')}}" />
-        
-    
+ @php + $datepickerExample13 = <<<'HTML' + + HTML; + @endphp +

Laravel Form State

When validation fails, Laravel redirects back with the submitted values flashed to the @@ -149,15 +162,16 @@ can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

-
-        
-<x-bladewind::datepicker
-    name="starts_on"
-    label="Start date"
-    fill_from_old="true"
-    show_validation_error="true" />
-        
-    
+ @php + $datepickerExample14 = <<<'HTML' + + HTML; + @endphp +

fill_from_old repopulates the field from old(). show_validation_error gives @@ -174,16 +188,17 @@ Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

-
-        
-// config/bladewind.php
-'forms' => [
-    'fill_from_old' => true,
-    'show_validation_error' => true,
-    'error_bag' => null,
-],
-        
-    
+ @php + $datepickerExample15 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -302,22 +317,23 @@

Calendar with all attributes defined

-
-
-    <x-bladewind::datepicker
-        name="invoice_date"
-        range="true"
-        required="false"
-        placeholder="Invoice Date"
-        selected_value=""
-        format="dd/mm/yyyy"
-        min_date="01/11/2025"
-        max_date="01/12/2025"
-        week_starts="monday"
-        size="big"
-        class="shadow-sm" />
-
-    
+ @php + $datepickerExample16 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > datepicker.blade.php diff --git a/resources/views/docs/description-list.blade.php b/resources/views/docs/description-list.blade.php index 0f02f215..b38b6ecb 100644 --- a/resources/views/docs/description-list.blade.php +++ b/resources/views/docs/description-list.blade.php @@ -15,15 +15,17 @@ Admin -
-        
-            <x-bladewind::description-list>
-                <x-bladewind::description-list.item label="Full name">Jane Cooper</x-bladewind::description-list.item>
-                <x-bladewind::description-list.item label="Email address">jane.cooper@example.com</x-bladewind::description-list.item>
-                <x-bladewind::description-list.item label="Role">Admin</x-bladewind::description-list.item>
-            </x-bladewind::description-list>
-        
-    
+ @php + $descriptionUlistExample1 = <<<'HTML' + + Jane Cooper + jane.cooperBWATSIGNPLACEHOLDERexample.com + Admin + + HTML; + $descriptionUlistExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $descriptionUlistExample1); + @endphp +

Action slots

@@ -40,16 +42,18 @@ -

-        
-            <x-bladewind::description-list.item label="Email address">
-                jane.cooper@example.com
-                <x-slot:action>
-                    <a href="#">Edit</a>
-                </x-slot:action>
-            </x-bladewind::description-list.item>
-        
-    
+ @php + $descriptionUlistExample2 = <<<'HTML' + + jane.cooperBWATSIGNPLACEHOLDERexample.com + + Edit + + + HTML; + $descriptionUlistExample2 = str_replace('BWATSIGNPLACEHOLDER', '@', $descriptionUlistExample2); + @endphp +

Striped rows

@@ -63,13 +67,14 @@ 12 of 20 used -

-        
-            <x-bladewind::description-list striped="true">
+    @php
+        $descriptionUlistExample3 = <<<'HTML'
+            
                 ...
-            </x-bladewind::description-list>
-        
-    
+ + HTML; + @endphp +

Full List Of Attributes

Description List

@@ -97,14 +102,15 @@

Description List with all attributes defined

-
-        
-            <x-bladewind::description-list
+    @php
+        $descriptionUlistExample4 = <<<'HTML'
+            
-    
+ class="ml-2"> + HTML; + @endphp +

Description List Item

@@ -131,18 +137,20 @@ class="ml-2">

Description List Item with all attributes defined

-
-        
-            <x-bladewind::description-list.item
+    @php
+        $descriptionUlistExample5 = <<<'HTML'
+            
-    
+ class="ml-2"> + jane.cooperBWATSIGNPLACEHOLDERexample.com + + Edit + + + HTML; + $descriptionUlistExample5 = str_replace('BWATSIGNPLACEHOLDER', '@', $descriptionUlistExample5); + @endphp + The source file for this component is available in resources > views > components > bladewind > description-list > index.blade.php, diff --git a/resources/views/docs/divider.blade.php b/resources/views/docs/divider.blade.php index 761f0fe1..797b7ab9 100644 --- a/resources/views/docs/divider.blade.php +++ b/resources/views/docs/divider.blade.php @@ -10,11 +10,12 @@ -
-        
-            <x-bladewind::divider />
-        
-    
+ @php + $dividerExample1 = <<<'HTML' + + HTML; + @endphp +

Label

@@ -24,11 +25,12 @@ -

-        
-            <x-bladewind::divider label="OR" />
-        
-    
+ @php + $dividerExample2 = <<<'HTML' + + HTML; + @endphp +

A label only applies to a horizontal divider; it is ignored on a vertical one.

Orientation

@@ -46,17 +48,18 @@ Delete -
-        
-            <div class="flex items-center h-6">
-                <span>Edit</span>
-                <x-bladewind::divider orientation="vertical" />
-                <span>Duplicate</span>
-                <x-bladewind::divider orientation="vertical" />
-                <span>Delete</span>
-            </div>
-        
-    
+ @php + $dividerExample3 = <<<'HTML' +
+ Edit + + Duplicate + + Delete +
+ HTML; + @endphp +

Spacing

@@ -68,13 +71,14 @@ -

-        
-            <x-bladewind::divider spacing="none" />
-            <x-bladewind::divider spacing="small" />
-            <x-bladewind::divider spacing="large" />
-        
-    
+ @php + $dividerExample4 = <<<'HTML' + + + + HTML; + @endphp +

Colour

@@ -84,11 +88,12 @@ -

-        
-            <x-bladewind::divider label="Section" color="primary" />
-        
-    
+ @php + $dividerExample5 = <<<'HTML' + + HTML; + @endphp +

Decorative vs semantic

@@ -99,11 +104,12 @@ role="separator" and aria-orientation instead.

-
-        
-            <x-bladewind::divider decorative="false" />
-        
-    
+ @php + $dividerExample6 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

@@ -145,17 +151,18 @@

Divider with all attributes defined

-
-        
-            <x-bladewind::divider
+    @php
+        $dividerExample7 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + diff --git a/resources/views/docs/drawer.blade.php b/resources/views/docs/drawer.blade.php index e1594b6a..185cd118 100644 --- a/resources/views/docs/drawer.blade.php +++ b/resources/views/docs/drawer.blade.php @@ -52,27 +52,33 @@ -
<x-bladewind::drawer name="customer-details" position="right" size="medium" show-close-button="false">
-    <div class="relative rounded-2xl bg-white p-6 text-center shadow dark:bg-dark-800">
-        <button type="button" onclick="hideDrawer('customer-details')" class="absolute right-4 top-4 text-gray-400">
-            <x-bladewind::icon name="x-mark" />
-        </button>
+    @php
+        $drawerExample1 = <<<'HTML'
+            
+                
+ - <div class="relative mx-auto w-fit"> - <x-bladewind::avatar image="/path/to/image" size="big" /> - <span class="absolute bottom-0 right-0 rounded-full bg-green-500 text-white ring-2 ring-white"> - <x-bladewind::icon name="check" /> - </span> - </div> +
+ + + + +
- <p class="font-bold">Victoria Ferguson</p> - <p class="text-gray-400">victoria@ferguson.eu</p> +

Victoria Ferguson

+

victoriaBWATSIGNPLACEHOLDERferguson.eu

- <!-- role / team, then mail / chat / phone action buttons --> - </div> + +
- <!-- address details list --> -</x-bladewind::drawer>
+ + + HTML; + $drawerExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $drawerExample1); + @endphp +

Positions

Use left, right, top, or bottom. These are physical viewport edges, so left and right remain predictable in RTL pages.

@@ -84,10 +90,15 @@ @endforeach -
<x-bladewind::drawer name="filters" position="left" title="Filters">...</x-bladewind::drawer>
-<x-bladewind::drawer name="details" position="right" title="Details">...</x-bladewind::drawer>
-<x-bladewind::drawer name="notice" position="top" title="Notice">...</x-bladewind::drawer>
-<x-bladewind::drawer name="actions" position="bottom" title="Actions">...</x-bladewind::drawer>
+ @php + $drawerExample2 = <<<'HTML' + ... + ... + ... + ... + HTML; + @endphp +

Sizes

Sizes are adapted to the drawer direction. Left and right drawers change width. Top and bottom drawers change height. Available values are tiny, small, medium, big, large, xl, and omg.

@@ -97,7 +108,12 @@ The panel uses the {{ $drawerSize }} size. @endforeach -
<x-bladewind::drawer name="profile" size="large" title="Profile">...</x-bladewind::drawer>
+ @php + $drawerExample3 = <<<'HTML' + ... + HTML; + @endphp +

A drawer is modal by default. It has a backdrop, traps focus, and prevents background scrolling. Set modal="false" for supporting content that should leave the page interactive.

@@ -107,7 +123,12 @@ The page behind this drawer is blocked until it closes. You can still interact with the page behind this drawer. -
<x-bladewind::drawer name="help" title="Help" modal="false">...</x-bladewind::drawer>
+ @php + $drawerExample4 = <<<'HTML' + ... + HTML; + @endphp +

Use the named header and footer slots to customize those regions while keeping the drawer layout and scrolling behavior.

@@ -117,11 +138,16 @@
CancelSave
-
<x-bladewind::drawer name="edit-customer">
-    <x-slot:header>Custom header</x-slot:header>
-    Form content
-    <x-slot:footer>Custom footer</x-slot:footer>
-</x-bladewind::drawer>
+ @php + $drawerExample5 = <<<'HTML' + + Custom header + Form content + Custom footer + + HTML; + @endphp +

Icons and Close Controls

Set icon, icon-type, and icon-dir using the Icon component contract. Set show-close-button="false" when another clear close action is present.

@@ -130,24 +156,39 @@

This drawer uses a solid Heroicon and a footer close action.

Done -
<x-bladewind::drawer name="security" title="Security settings"
-    icon="shield-check" icon-type="solid" show-close-button="false">...</x-bladewind::drawer>
+ @php + $drawerExample6 = <<<'HTML' + ... + HTML; + @endphp +

Backdrop and Escape Options

Backdrop clicks and the Escape key close a modal drawer by default. Disable either behavior for a workflow that requires an explicit decision. Always provide a visible close action.

-
<x-bladewind::drawer name="approval" title="Approve request"
-    backdrop-can-close="false" escape-can-close="false">
-    ...
-    <x-slot:footer>
-        <x-bladewind::button onclick="hideDrawer('approval')">Cancel</x-bladewind::button>
-    </x-slot:footer>
-</x-bladewind::drawer>
+ @php + $drawerExample7 = <<<'HTML' + + ... + + Cancel + + + HTML; + @endphp +

Programmatic Show, Hide, and Toggle

The three public helpers accept the drawer name and return false when no matching state change can be made.

-
showDrawer('customer-details');
-hideDrawer('customer-details');
-toggleDrawer('customer-details');
+ @php + $drawerExample8 = <<<'HTML' + showDrawer('customer-details'); + hideDrawer('customer-details'); + toggleDrawer('customer-details'); + HTML; + @endphp +

The drawer also emits bladewind:drawer-opened and bladewind:drawer-closed events. Each event bubbles and includes the drawer name in event.detail.name.

Long and Scrollable Content

@@ -208,24 +249,29 @@

Drawer with all attributes defined

-
<x-bladewind::drawer
-    name="customer-profile"
-    title="Customer profile"
-    description="Review the customer record before saving changes."
-    position="right"
-    size="large"
-    modal="true"
-    open="false"
-    show-close-button="true"
-    close-label="Close customer profile"
-    backdrop-can-close="false"
-    escape-can-close="false"
-    icon="user-circle"
-    icon-type="solid"
-    icon-dir=""
-    class="customer-profile-drawer">
-    Customer profile content
-</x-bladewind::drawer>
+ @php + $drawerExample9 = <<<'HTML' + + Customer profile content + + HTML; + @endphp +

Using Drawer Inside Livewire

diff --git a/resources/views/docs/dropmenu.blade.php b/resources/views/docs/dropmenu.blade.php index 4ad2e355..5c0c0dae 100644 --- a/resources/views/docs/dropmenu.blade.php +++ b/resources/views/docs/dropmenu.blade.php @@ -22,19 +22,20 @@ -

-        
-            <x-bladewind.table hover_effect="false" divider="thin">
+    @php
+        $dropmenuExample1 = <<<'HTML'
+            
             ...
-            <x-bladewind::dropmenu>
-                <x-bladewind::dropmenu.item>Invite to Project </x-bladewind::dropmenu.item>
-                <x-bladewind::dropmenu.item>Assign Task</x-bladewind::dropmenu.item>
-                <x-bladewind::dropmenu.item>Send Message</x-bladewind::dropmenu.item>
-            </x-bladewind::dropmenu>
+            
+                Invite to Project 
+                Assign Task
+                Send Message
+            
             ...
-            </x-bladewind.table>
-        
-    
+ + HTML; + @endphp +

By default the Dropmenu is triggered using the horizontal ellipsis icon found on Heroicons. @@ -62,42 +63,43 @@
-

-        
-            <div class="grid grid-cols-3 gap-6">
-                <div class="text-center">
-                    <x-bladewind::dropmenu trigger="musical-note-icon">
-                        <x-bladewind::dropmenu.item>
+    @php
+        $dropmenuExample2 = <<<'HTML'
+            
+
+ + Add to playlist - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Play again - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - <div class="text-center"> - <x-bladewind::dropmenu trigger="arrow-down-circle-icon"> - <x-bladewind::dropmenu.item> + + +
+
+ + Download file - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Add to library - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - <div class="text-center"> - <x-bladewind::dropmenu trigger="cog-6-tooth-icon"> - <x-bladewind::dropmenu.item> + + +
+
+ + Company settings - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + User settings - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - </div> - -
+ + + + + HTML; + @endphp +

Trigger Properties

trigger_css

@@ -111,21 +113,22 @@
-

-        
-            <div class="text-center">
-                <x-bladewind::dropmenu trigger="musical-note-icon"
-                     trigger_css="bg-pink-600 text-white p-2 rounded-full !h-10 !w-10">
-                    <x-bladewind::dropmenu.item>
+    @php
+        $dropmenuExample3 = <<<'HTML'
+            
+ + Add to playlist - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Play again - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - -
+ + + + HTML; + @endphp +

trigger_on

By default the Dropmenu is displayed when you click on the trigger. It is possible to change this behaviour by defining the @@ -138,22 +141,23 @@
-

-        
-            <div class="text-center">
-                <x-bladewind::dropmenu trigger="musical-note-icon"
+    @php
+        $dropmenuExample4 = <<<'HTML'
+            
+ + Add to playlist - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Play again - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - -
+ + + + HTML; + @endphp +

Non Icon Triggers

To trigger the Dropmenu using any HTML element other than an icon, you will need to define the trigger as a slot. @@ -190,52 +194,53 @@
-

-        
-             <div class="grid grid-cols-2 gap-6">
-                <div class="text-center">
-                    <x-bladewind::dropmenu>
-                        <x-slot:trigger>
-                            <x-bladewind.button type="secondary" size="tiny">
+    @php
+        $dropmenuExample5 = <<<'HTML'
+             
+
+ + + Options - </x-bladewind.button> - </x-slot:trigger> - <x-bladewind::dropmenu.item> + + + Add to playlist - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Play again - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - <div class="text-center"> - <x-bladewind::dropmenu> - <x-slot:trigger> - <div class="flex space-x-2 items-center shadow px-4 rounded-md"> - <div class="grow"> - <x-bladewind.avatar image="/assets/...png" /> - </div> - <div class="grow"> - <div><strong>John C. Doe</strong></div> - <div class="text-sm">Tech, IT Support</div> - </div> - <div> - <x-bladewind.icon name="chevron-down" - class="!h-4 !w-4" /> - </div> - </div> - </x-slot:trigger> - <x-bladewind::dropmenu.item> + + +
+
+ + +
+
+ +
+
+
John C. Doe
+
Tech, IT Support
+
+
+ +
+
+
+ Deactivate my account - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item> + + Delete Profile - </x-bladewind::dropmenu.item> - </x-bladewind::dropmenu> - </div> - </div> -
-
+ + + + + HTML; + @endphp +

The Dropmenu items are the actual line items within your Dropmenu. Each item can contain any piece of HTML code @@ -260,19 +265,20 @@ class="!h-4 !w-4" />

This is just n example of how Dropmenu Items can launch modals


-
-        
-            <x-bladewind::dropmenu trigger="light-bulb-icon"
-                trigger_css="bg-yellow-400 ...">
-                <x-bladewind::dropmenu.item>
-                    <a href="/library" target="_blank">Go to Library</a>
-                </x-bladewind::dropmenu.item>
-                <x-bladewind::dropmenu.item onclick="showModal('dropmenu-demo')">
+    @php
+        $dropmenuExample6 = <<<'HTML'
+            
+                
+                    Go to Library
+                
+                
                     Show a Modal
-                </x-bladewind::dropmenu.item>
-            </x-bladewind::dropmenu>
-        
-    
+ + + HTML; + @endphp +

Headers, Icons and Dividers

Headers

@@ -282,15 +288,16 @@ class="!h-4 !w-4" /> the cursor displayed is the default pointer and there is a divider separating the header from the next menu item. To define a Dropmenu item as a header, set header="true.

-
-        
+    @php
+        $dropmenuExample7 = <<<'HTML'
             ...
-            <x-bladewind::dropmenu.item header="true">
+            
                 // define heading here
-            </x-bladewind::dropmenu.item>
+            
             ...
-        
-    
+ HTML; + @endphp +

Icons

@@ -298,32 +305,34 @@ class="!h-4 !w-4" /> This makes use of the BladewindUI Icon component. This is useful only if you have menu items that fit on one line and you want to prefix each line with an icon. To define a Dropmenu item with an icon , set the icon attribute with any icon name from Heroicons. Unlike the icon used in the trigger attribute of the Dropmenu component, items do not require the -icon at the end of the icon name.

-
-        
+    @php
+        $dropmenuExample8 = <<<'HTML'
             ...
-            <x-bladewind::dropmenu.item icon="square-pencil">
+            
                 Edit Profile
-            </x-bladewind::dropmenu.item>
+            
             ...
-        
-    
+ HTML; + @endphp +

By default, icons are positioned on the left of the menu item content. To switch the icon position to the right of the menu item content, set icon_right="true". Setting the attribute on the x-bladewind::dropmenu component will shift all menu items in the menu to the right. Alternatively, you can set the attribute on one or more menu items within the Dropmenu component.

-
-        
+    @php
+        $dropmenuExample9 = <<<'HTML'
             ...
-            <x-bladewind::dropmenu icon_right="true">
-                <x-bladewind::dropmenu.item>
+            
+                
                 ...
-                </x-bladewind::dropmenu.item>
-            </x-bladewind::dropmenu>
+                
+            
             ...
-        
-    
+ HTML; + @endphp +

Dividers

@@ -331,26 +340,28 @@ class="!h-4 !w-4" /> A divider is simply a non-clickable line separating menu items. To define a Dropmenu item as a divider , set divider="true". Any text added to the menu item will be ignored.

-
-        
+    @php
+        $dropmenuExample10 = <<<'HTML'
             ...
-            <x-bladewind::dropmenu.item divider="true" />
+            
             ...
-        
-    
+ HTML; + @endphp +

By default Dropmenu Items are not divided. You can tell each menu item apart on mouseover. If you prefer to have your menu items separated by a thin gray line you can set divided="true" on the Dropmenu component itself (not on the menu items).

-
-        
+    @php
+        $dropmenuExample11 = <<<'HTML'
             ...
-            <x-bladewind::dropmenu divided="true">
+            
                 ...
-            </x-bladewind::dropmenu>
+            
             ...
-        
-    
+ HTML; + @endphp +

The example below addresses headers, icons and dividers.

@@ -399,62 +410,64 @@ class="!h-4 !w-4" />
-
-        
-            <x-bladewind::dropmenu>
+    @php
+        $dropmenuExample12 = <<<'HTML'
+            
 
-                <x-slot:trigger>
-                    <div class="flex space-x-2 items-center rounded-md">
-                        <div class="grow">
-                            <x-bladewind.avatar image="/assets/...jpg" />
-                        </div>
-                        <div>
-                            <x-bladewind.icon name="chevron-down" class="!h-4 !w-4" />
-                        </div>
-                    </div>
-                </x-slot:trigger>
+                
+                    
+
+ +
+
+ +
+
+
- <x-bladewind::dropmenu.item header="true"> - <div class="grow"> - <div><strong>Jane A. Doe</strong></div> - <div class="text-sm">@jane-the-coder</div> - <div class="text-sm">jane@bladewindui.com</div> - </div> - </x-bladewind::dropmenu.item> + +
+
Jane A. Doe
+
BWATSIGNPLACEHOLDERjane-the-coder
+
janeBWATSIGNPLACEHOLDERbladewindui.com
+
+
- <x-bladewind::dropmenu.item icon="pencil-square"> + Edit Profile - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item icon="trash" icon_css="!text-red-300"> - <span class="text-red-500">Delete Profile</span> - </x-bladewind::dropmenu.item> + + + Delete Profile + - <x-bladewind::dropmenu.item divider /> + - <x-bladewind::dropmenu.item icon="computer-desktop"> + Your Repositories - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item icon="briefcase"> + + Your Projects - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item icon="building-office"> + + Your Organizations - </x-bladewind::dropmenu.item> - <x-bladewind::dropmenu.item icon="star"> + + Your Stars - </x-bladewind::dropmenu.item> + - <x-bladewind::dropmenu.item divider /> + - <x-bladewind::dropmenu.item hover="false"> - <x-bladewind.button color="purple" radius="small" size="small" class="w-full"> + + Sign Out - </x-bladewind.button> - </x-bladewind::dropmenu.item> + + - </x-bladewind::dropmenu> -
-
+ + HTML; + $dropmenuExample12 = str_replace('BWATSIGNPLACEHOLDER', '@', $dropmenuExample12); + @endphp +

Menu Position

@@ -553,25 +566,27 @@ class="!h-4 !w-4" />


-
-                
-                    <x-bladewind::dropmenu
-                        position="left">
-                    ...
-                    </x-bladewind::dropmenu>
-                
-            
+ @php + $dropmenuExample13 = <<<'HTML' + + ... + + HTML; + @endphp +

-
-                
-                    <x-bladewind::dropmenu
-                        position="right">
-                    ...
-                    </x-bladewind::dropmenu>
-                
-            
+ @php + $dropmenuExample14 = <<<'HTML' + + ... + + HTML; + @endphp +
@@ -626,13 +641,14 @@ class="!h-4 !w-4" />
-
-        
-            <x-bladewind::dropmenu scrollable="true">
+    @php
+        $dropmenuExample15 = <<<'HTML'
+            
             ...
-            </x-bladewind::dropmenu>
-        
-    
+ + HTML; + @endphp +

@@ -800,14 +816,19 @@ class="!h-4 !w-4" />

-
profile_menu.show();
-profile_menu.hide();
-profile_menu.toggle();
+ @php + $dropmenuExample16 = <<<'HTML' + profile_menu.show(); + profile_menu.hide(); + profile_menu.toggle(); + HTML; + @endphp +

Dropmenu with all attributes defined

-
-        
-            <x-bladewind::dropmenu
+    @php
+        $dropmenuExample17 = <<<'HTML'
+            
 
-                <x-bladewind::dropmenu.item
+                
                 ...
-                <x-bladewind::dropmenu.item>
+                
 
-            </x-bladewind::dropmenu>
-        
-    
+ + HTML; + @endphp +

Using Dropmenu Inside Livewire

diff --git a/resources/views/docs/emptystate.blade.php b/resources/views/docs/emptystate.blade.php index 423b9b4b..8dc454ec 100644 --- a/resources/views/docs/emptystate.blade.php +++ b/resources/views/docs/emptystate.blade.php @@ -14,15 +14,16 @@ onclick="alert('you clicked me')"> -

-        
-            <x-bladewind::empty-state
+    @php
+        $emptystateExample1 = <<<'HTML'
+            
-    
+ onclick="alert('you clicked me')"> + + HTML; + @endphp +

The above example uses the default empty state image that comes bundled with BladewindUI. This image is available at public > vendor > bladewind > images > empty-state.svg. The default image is used if you leave out the image attribute of the Empty State component. You can use your own images by setting the @@ -33,16 +34,17 @@ image="/assets/images/no-code.svg" button_label="Create Gist" onclick="alert('you clicked me')"> -

-        
-            <x-bladewind::empty-state
+    @php
+        $emptystateExample2 = <<<'HTML'
+            
-    
+ onclick="alert('you clicked me')"> + + HTML; + @endphp +

There are times you will want your empty state to have a heading to let the user know immediately what is happening, without having to read the full message. To achieve this set the heading attribute of the Empty State component. @@ -54,17 +56,18 @@ heading="Create Gists Now" onclick="alert('you clicked me')"> -

-        
-            <x-bladewind::empty-state
+    @php
+        $emptystateExample3 = <<<'HTML'
+            
-    
+ onclick="alert('you clicked me')"> + + HTML; + @endphp +

The examples above use the attributes of the empty state component to build the empty state content. It is also possible to ignore all attributes and dump your content right in to the empty state component. @@ -79,22 +82,23 @@ Add biometric info -

-        
-            <x-bladewind::empty-state
-                show_image="false">
+    @php
+        $emptystateExample4 = <<<'HTML'
+            
 
-                <svg>
+                
                     ...
-                </svg>
-                <p class="pt-2">You have no biometric data available</p>
-                <x-bladewind.button color="red" size="small">
+                
+                

You have no biometric data available

+ Add biometric info - </x-bladewind.button> + - </x-bladewind::empty-state> -
-
+ + HTML; + @endphp +

You can also have empty states with no call to action buttons. For example, a "Recent Activities" section that fills up when users perform activities throughout the app. An empty state for a case like that will necessarily need no action to be performed. @@ -108,20 +112,21 @@ -

-        
-            <x-bladewind.card title="Recent Activities" css="w-3/4 mx-auto">
-                <br />
+    @php
+        $emptystateExample5 = <<<'HTML'
+            
+                
- <x-bladewind::empty-state + soon as your organization has some activity"> + - </x-bladewind.card> -
-
+ + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Empty State component.

@@ -189,9 +194,9 @@

Empty State with all attributes defined

-
-        
-            <x-bladewind::empty-state
+    @php
+        $emptystateExample6 = <<<'HTML'
+            
-    
+ class="shadow-sm"> + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > empty-state.blade.php diff --git a/resources/views/docs/error-pages.blade.php b/resources/views/docs/error-pages.blade.php index defe31d7..ae26c5ee 100644 --- a/resources/views/docs/error-pages.blade.php +++ b/resources/views/docs/error-pages.blade.php @@ -9,7 +9,12 @@ publish the Laravel error pages to your working resources directory by running the command below from your terminal.

-

php artisan vendor:publish --tag=laravel-errors
+ @php + $errorUpagesExample1 = <<<'HTML' + php artisan vendor:publish --tag=laravel-errors + HTML; + @endphp +

You will get a message similar to Copied Directory [/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views] To [/resources/views/errors] @@ -21,44 +26,47 @@ Let's take for example the default resources/views/erros/404.blade.php, the code in there looks like this:

-
-        
-            @extends('errors::minimal')
-
-            @section('title', __('Not Found'))
-            @section('code', '404')
-            @section('message', __('Not Found'))
-        
-    
+ @php + $errorUpagesExample2 = <<<'HTML' + BWATSIGNPLACEHOLDERextends('errors::minimal') + + BWATSIGNPLACEHOLDERsection('title', __('Not Found')) + BWATSIGNPLACEHOLDERsection('code', '404') + BWATSIGNPLACEHOLDERsection('message', __('Not Found')) + HTML; + $errorUpagesExample2 = str_replace('BWATSIGNPLACEHOLDER', '@', $errorUpagesExample2); + @endphp +

You can replace everything in the file with the BladewindUI error component. Click here to view an example 404 page using the BladewindUI error component. This just points to a url that has no matching route. The default 404 illustration used is from Storyset.com

-
-        
-            <!--
+    @php
+        $errorUpagesExample3 = <<<'HTML'
+            
-            <x-frameless title="404 | Page not found">
+            
 
-                <x-bladewind::error
+                
 
-                    <x-slot name="image">
-                        <img src="/assets/images/404.svg" alt="404 image" />
-                    </x-slot>
+                    
+                        404 image
+                    
 
-                </x-bladewind::error>
+                
 
-            </x-frameless>
-        
-    
+ + HTML; + @endphp +

The image to be displayed on the error page has been setup as a slot so you can decide if you want to use @@ -104,22 +112,23 @@

Error with all attributes defined

-
-        
-            <x-bladewind::error
+    @php
+        $errorUpagesExample4 = <<<'HTML'
+            
 
-                <x-slot name="image">
-                    <img src="/assets/images/404.svg" alt="404 image" />
-                </x-slot>
+                
+                    404 image
+                
 
-            </x-bladewind::error>
-        
-    
+ + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > error.blade.php diff --git a/resources/views/docs/file-preview.blade.php b/resources/views/docs/file-preview.blade.php index 52d57091..64423af2 100644 --- a/resources/views/docs/file-preview.blade.php +++ b/resources/views/docs/file-preview.blade.php @@ -15,13 +15,14 @@ -
-        
-            <x-bladewind::file-preview name="Quarterly report.pdf" size="2621440" url="/files/1" />
-            <x-bladewind::file-preview name="team-photo.jpg" size="843200" thumbnail="/thumbs/team-photo.jpg" url="/files/2" />
-            <x-bladewind::file-preview name="budget.xlsx" size="51200" url="/files/3" />
-        
-    
+ @php + $fileUpreviewExample1 = <<<'HTML' + + + + HTML; + @endphp +

size is plain bytes, the component formats it into B/KB/MB/GB itself. Without a thumbnail, the icon is derived from the filename's extension (PDF, Word, Excel, @@ -38,11 +39,12 @@ Tag's dismiss button uses.

-
-        
-            <x-bladewind::file-preview name="report.pdf" on-remove="deleteAttachment(1)" />
-        
-    
+ @php + $fileUpreviewExample2 = <<<'HTML' + + HTML; + @endphp +

Set removable="false" to drop the control entirely, useful for a purely informational list the viewer cannot edit. @@ -109,9 +111,9 @@

File Preview with all attributes defined

-
-        
-            <x-bladewind::file-preview
+    @php
+        $fileUpreviewExample3 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > file-preview.blade.php diff --git a/resources/views/docs/filepicker.blade.php b/resources/views/docs/filepicker.blade.php index d4ec4e6a..bec6c4f1 100644 --- a/resources/views/docs/filepicker.blade.php +++ b/resources/views/docs/filepicker.blade.php @@ -8,20 +8,22 @@

-
-        
-            <x-bladewind::filepicker />
-        
-    
+ @php + $filepickerExample1 = <<<'HTML' + + HTML; + @endphp +

By default the Filepicker component provides a random name when no name attribute is specified. If you intend to disable automatic file uploads or will need to grab the base64 version of your files, set the name attribute.

-
-        
-            <x-bladewind::filepicker name="certs" />
-        
-    
+ @php + $filepickerExample2 = <<<'HTML' + + HTML; + @endphp +

Changing the Placeholder

The filepicker loads with a placeholder that is broken into two lines. The first line reads, Browse or drag and drop files. The second line reads, IMAGE, VIDEO, AUDIO, PDF up to 5mb. @@ -35,13 +37,14 @@ placeholder_line1="Upload proof of payment" placeholder_line2="Only PDF files are allowed" /> -

-
-<x-bladewind::filepicker
-    placeholder_line1="Upload proof of payment"
-    placeholder_line2="Only PDF files are allowed"  />
-
-
+@php + $filepickerExample3 = <<<'HTML' + + HTML; + @endphp +

In the example above, we typed out everything for placeholder lines 1 and 2. As mentioned earlier, the default placeholder_line2 contains the values specified for accepted_file_types and max_file_size. The component replaces image/* with the text images, video/* with the text videos, audio/* @@ -52,13 +55,14 @@ placeholder_line1="Drag and drop proof of payment here" placeholder_line2="Files allowed: %s up to %s" /> -

-
-<x-bladewind::filepicker
-    placeholder_line1="Drag and drop proof of payment here"
-    placeholder_line2="Files allowed: %s up to %s"  />
-
-
+ @php + $filepickerExample4 = <<<'HTML' + + HTML; + @endphp +

Option 2

@@ -82,30 +86,32 @@ class="!size-14 rounded-full p-3 bg-purple-400 stroke-2 text-purple-100"/>

-
-
-<!-- remember to add the hidden CSS class -->
-<div class="placeholder-invoices space-y-2 flex hidden align-middle py-3">
-    <div>
-        <x-bladewind::icon
-            name="receipt-percent"
-            class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>
-    </div>
-    <div class="text-left pl-2.5 pt-1.5">
-        <div>Drag & Drop Invoices</div>
-        <div class="!text-xs tracking-wider opacity-70">
-            <u>PDFs</u> only. Max of <u>10mb</u>
-        </div>
-    </div>
-</div>
-
-
- -
-
-<x-bladewind::filepicker name="invoices" />
-
-
+@php + $filepickerExample5 = <<<'HTML' + + + HTML; + @endphp + + +@php + $filepickerExample6 = <<<'HTML' + + HTML; + @endphp +

Allow Drag and Drop Only

@@ -114,13 +120,14 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker
-    can_browse="false"
-    placeholder_line1="Drag and drop files" />
-
-
+@php + $filepickerExample7 = <<<'HTML' + + HTML; + @endphp +

Allow Browsing of Files Only

@@ -129,13 +136,14 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker
-    can_drop"false"
-    placeholder_line1="Drag and drop files" />
-
-
+@php + $filepickerExample8 = <<<'HTML' + + HTML; + @endphp +

Disable the Filepicker

@@ -143,11 +151,12 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker disabled"true" />
-
-
+@php + $filepickerExample9 = <<<'HTML' + + HTML; + @endphp +

Enforce File Sizes

@@ -158,11 +167,12 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker max_file_size="15kb"/>
-
-
+ @php + $filepickerExample10 = <<<'HTML' + + HTML; + @endphp +

In cases where you allow users to upload multiple files, you can set max_total_file_size to restrict the total size your users are allowed to upload without necessarily bothering about the size of individual files. @@ -192,12 +202,13 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker
-    accepted_file_types="application/pdf, .doc, .docx"/>
-
-
+@php + $filepickerExample11 = <<<'HTML' + + HTML; + @endphp +

Select Multiple Files

@@ -209,11 +220,12 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker max_files="5" />
-
-
+@php + $filepickerExample12 = <<<'HTML' + + HTML; + @endphp +

Image Manipulation

@@ -228,19 +240,21 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker max_files="3"
-    show_image_preview="false" />
-
-
+@php + $filepickerExample13 = <<<'HTML' + + HTML; + @endphp + -
-
-<x-bladewind::filepicker max_files="3" />
-
-
+@php + $filepickerExample14 = <<<'HTML' + + HTML; + @endphp +

Image Cropping

@@ -249,11 +263,12 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker can_crop="true" />
-
-
+@php + $filepickerExample15 = <<<'HTML' + + HTML; + @endphp +

When cropping is enabled it is important to set the aspect ratio. @@ -264,11 +279,12 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/>

-
-
-<x-bladewind::filepicker can_crop="true" crop_aspect_ratio="4:3" />
-
-
+@php + $filepickerExample16 = <<<'HTML' + + HTML; + @endphp +

Clicking on the 'Cancel' button from the Cropper popup window does not cancel the file selection. @@ -319,38 +335,41 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/> max_file_size="1mb" :upload_headers="$headers" />

-
-
-$headers = [
-    "Authorization" => "Bearer 67e518a8205b20.18576843",
-]
-
-
-
-
-<x-bladewind::filepicker
-    name="auto_upload"
-    max_file_size="1mb"
-    auto_upload="true"
-    upload_route="/upload"
-    :upload_headers="$headers"
-    delete_route="/upload-delete" />
-
-
+ @php + $filepickerExample17 = <<<'HTML' + $headers = [ + "Authorization" => "Bearer 67e518a8205b20.18576843", + ] + HTML; + @endphp + +@php + $filepickerExample18 = <<<'HTML' + + HTML; + @endphp +

When a file is selected, it will automatically be uploaded to the route specified. The routes and controller below handle this example upload.

-
-
-// web.php
-Route::post('/upload', [FileUploadController::class, 'upload']);
-Route::post('/upload-delete', [FileUploadController::class, 'delete']);
-
-// if you set delete_method="DELETE" and delete_route="/upload" on the component
-// your route will then look like the line below
-Route::delete('/upload', [FileUploadController::class, 'delete']);
-
-
+@php + $filepickerExample19 = <<<'HTML' + // web.php + Route::post('/upload', [FileUploadController::class, 'upload']); + Route::post('/upload-delete', [FileUploadController::class, 'delete']); + + // if you set delete_method="DELETE" and delete_route="/upload" on the component + // your route will then look like the line below + Route::delete('/upload', [FileUploadController::class, 'delete']); + HTML; + @endphp +

This is a very barebones implementation of file uploading in Laravel to give you a sense of what's happening in the controller.

@@ -359,45 +378,46 @@ class="!size-14 rounded-full p-3 bg-purple-400 text-purple-100"/> { "path" : "path/to/the/file-name-dot-extension" } example:
{ "path" : "uploads\/cqzbVgA5ydeQBvNkuBP4cZCGcpBTl3tt9dtufnKK.jpg" }
-
-
-// FileUploadController.php
-namespace App\Http\Controllers;
-
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Storage;
-
-class FileUploadController extends Controller
-{
-    public function upload(Request $request)
-    {
-        $request->validate([
-            'auto_upload' => 'required|mimes:jpg|max:1024',
-        ]);
-
-        $path = $request->file('auto_upload')->store('uploads', 'public');
-
-        return response()->json(['path' => $path]);
-    }
-
-    public function delete(Request $request)
-    {
-        // path: will always contain the path to the file being deleted
-        $filePath = $request->input('path');
-
-        if (!$filePath) {
-            return response()->json(['error' => 'No file path provided'], 400);
-        }
-
-        if (Storage::disk('public')->exists($filePath)) {
-            Storage::disk('public')->delete($filePath);
-            return response()->json(['message' => 'File deleted']);
-        }
-        return response()->json(['error' => 'File not found'], 404);
-    }
-}
-
-
+@php + $filepickerExample20 = <<<'HTML' + // FileUploadController.php + namespace App\Http\Controllers; + + use Illuminate\Http\Request; + use Illuminate\Support\Facades\Storage; + + class FileUploadController extends Controller + { + public function upload(Request $request) + { + $request->validate([ + 'auto_upload' => 'required|mimes:jpg|max:1024', + ]); + + $path = $request->file('auto_upload')->store('uploads', 'public'); + + return response()->json(['path' => $path]); + } + + public function delete(Request $request) + { + // path: will always contain the path to the file being deleted + $filePath = $request->input('path'); + + if (!$filePath) { + return response()->json(['error' => 'No file path provided'], 400); + } + + if (Storage::disk('public')->exists($filePath)) { + Storage::disk('public')->delete($filePath); + return response()->json(['message' => 'File deleted']); + } + return response()->json(['error' => 'File not found'], 404); + } + } + HTML; + @endphp +

Manually Upload Selected Files

@@ -417,54 +437,58 @@ public function delete(Request $request) Upload Files
-

-
-<form method="POST" action="/manual-upload" enctype="multipart/form-data">
-    @@csrf
-<x-bladewind::filepicker
-        name="manual_upload[]"
-        max_file_size="1mb"
-        max_files="3" />
-    <x-bladewind::button can_submit="true">
-        Upload Files
-    </x-bladewind::button>
-</form>
-
-
- -
-
-// web.php
-Route::post('/manual-upload', [FileUploadController::class, 'manual_upload']);
-
-
- -
-
-// FileUploadController.php
-namespace App\Http\Controllers;
-
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Storage;
-
-class FileUploadController extends Controller
-{
-    ...
-    public function manual_upload(Request $request)
-    {
-        $request->validate([
-            'files.*' => 'mimes:jpg|max:1024',
-        ]);
-
-        $uploadedFiles = [];
-        foreach ($request->file('manual_upload') as $file) {
-            $path = $file->store('uploads', 'public');
-            $uploadedFiles[] = $path;
-        }
-        dd($uploadedFiles);}
-}
-
-
+@php + $filepickerExample21 = <<<'HTML' +
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + + + Upload Files + + + HTML; + $filepickerExample21 = str_replace('BWATSIGNPLACEHOLDER', '@', $filepickerExample21); + @endphp + + +@php + $filepickerExample22 = <<<'HTML' + // web.php + Route::post('/manual-upload', [FileUploadController::class, 'manual_upload']); + HTML; + @endphp + + +@php + $filepickerExample23 = <<<'HTML' + // FileUploadController.php + namespace App\Http\Controllers; + + use Illuminate\Http\Request; + use Illuminate\Support\Facades\Storage; + + class FileUploadController extends Controller + { + ... + public function manual_upload(Request $request) + { + $request->validate([ + 'files.*' => 'mimes:jpg|max:1024', + ]); + + $uploadedFiles = []; + foreach ($request->file('manual_upload') as $file) { + $path = $file->store('uploads', 'public'); + $uploadedFiles[] = $path; + } + dd($uploadedFiles);} + } + HTML; + @endphp +

Encode Files as base64

The component allows for files to be retrieved in base64 format. This works for uploading single files or multiple files. @@ -498,48 +522,52 @@ public function manual_upload(Request $request) Upload Files
-

-
-<form method="POST" action="/base64-upload" enctype="multipart/form-data">
-    @@csrf
-<x-bladewind::filepicker
-        name="attachments"
-        max_file_size="1mb"
-        base64="true"
-        max_files="3" />
-    <x-bladewind::button can_submit="true">
-        Upload Files
-    </x-bladewind::button>
-</form>
-
-
- -
-
-// web.php
-Route::post('/base64-upload', [FileUploadController::class, 'base64_upload']);
-
-
- -
-
-// FileUploadController.php
-namespace App\Http\Controllers;
-
-use Illuminate\Http\Request;
-
-class FileUploadController extends Controller
-{
-    ...
-    public function base64_upload(Request $request)
-    {
-        $base64Files = $request->input('attachments_b64');
-        foreach ($base64Files as $file) {
-            dump($file);
-        }
-    }
-
-
+@php + $filepickerExample24 = <<<'HTML' +
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + + + Upload Files + + + HTML; + $filepickerExample24 = str_replace('BWATSIGNPLACEHOLDER', '@', $filepickerExample24); + @endphp + + +@php + $filepickerExample25 = <<<'HTML' + // web.php + Route::post('/base64-upload', [FileUploadController::class, 'base64_upload']); + HTML; + @endphp + + +@php + $filepickerExample26 = <<<'HTML' + // FileUploadController.php + namespace App\Http\Controllers; + + use Illuminate\Http\Request; + + class FileUploadController extends Controller + { + ... + public function base64_upload(Request $request) + { + $base64Files = $request->input('attachments_b64'); + foreach ($base64Files as $file) { + dump($file); + } + } + HTML; + @endphp +
Both the selected files and their encoded base64 versions are available when the form is submitted. You can either use both or just focus on the base64 versions. @@ -557,27 +585,29 @@ public function base64_upload(Request $request) [ 'source' => asset('assets/images/lissete-laverde-z9Ropm8edsw-unsplash.jpg') ], ]; @endphp -
-
-$existingFiles = [
-    [ 'source' => asset('images/yoonbae-cho-Fes4eLW4mg0-unsplash.jpg') ],
-    [ 'source' => asset('images/sam-carter-JU1SVl4smHM-unsplash.jpg') ],
-    [ 'source' => asset('images/lissete-laverde-z9Ropm8edsw-unsplash.jpg') ],
-];
-
-
+@php + $filepickerExample27 = <<<'HTML' + $existingFiles = [ + [ 'source' => asset('images/yoonbae-cho-Fes4eLW4mg0-unsplash.jpg') ], + [ 'source' => asset('images/sam-carter-JU1SVl4smHM-unsplash.jpg') ], + [ 'source' => asset('images/lissete-laverde-z9Ropm8edsw-unsplash.jpg') ], + ]; + HTML; + @endphp +

-
-
-<x-bladewind::filepicker
-    name="edit"
-    max_file_size="2mb"
-    max_files="2"
-    :selected_value="$existingFiles" />
-
-
+ @php + $filepickerExample28 = <<<'HTML' + + HTML; + @endphp +

Note from the above example that even though the $existingFiles array has 3 elements (files), the Filepicker displays only 2 files. This is @@ -593,13 +623,14 @@ public function base64_upload(Request $request) can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

-
-        
-<x-bladewind::filepicker
-    name="avatar"
-    show_validation_error="true" />
-        
-    
+ @php + $filepickerExample29 = <<<'HTML' + + HTML; + @endphp +

fill_from_old repopulates the field from old(). show_validation_error gives @@ -621,16 +652,17 @@ public function base64_upload(Request $request) Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

-
-        
-// config/bladewind.php
-'forms' => [
-    'fill_from_old' => true,
-    'show_validation_error' => true,
-    'error_bag' => null,
-],
-        
-    
+ @php + $filepickerExample30 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -832,42 +864,43 @@ public function base64_upload(Request $request)

Filepicker with all attributes defined

-
-
-<x-bladewind::filepicker
-    name="profile_pic"
-    required="false"
-    placeholder_line1="Choose a profile picture"
-    placeholder_line2="Only jpg files allowed"
-    accepted_file_types=".jpg, .png"
-    selected_value=""
-    disabled="false"
-    base64="false"
-    base64_output="string"
-    can_crop="false"
-    can_drop="false"
-    can_browse="true"
-    validate_file_size="true"
-    show_credits="true"
-    auto_upload="true"
-    max_files="2"
-    max_file_size="1mb"
-    max_total_file_size="2mb"
-    add_new_files_to="bottom"
-    show_image_preview="true"
-    can_resize_image="true"
-    image_resize_width="1024"
-    image_resize_height=""
-    can_crop="false"
-    crop_aspect_ratio="free"
-    upload_route="/dp/upload"
-    upload_method="PATCH"
-    :upload_headers="$headers"
-    delete_route="/dp/delete"
-    delete_method="DELETE"
-    :delete_headers="$headers" />
-
-    
+ @php + $filepickerExample31 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > filepicker.blade.php diff --git a/resources/views/docs/helpers.blade.php b/resources/views/docs/helpers.blade.php index 50c6292b..4b008068 100644 --- a/resources/views/docs/helpers.blade.php +++ b/resources/views/docs/helpers.blade.php @@ -8,8 +8,8 @@

addToStorage

Adds a key/value pair to either localStorage or sessionStorage. The documentation website uses this to set the dark/light mode settings of the user.

-
-        
+    @php
+        $helpersExample1 = <<<'HTML'
             /* -----------------------------------------------------------
                 key:            label of key to store
                 val:            value to store for key
@@ -20,15 +20,15 @@
 
             // example
             addToStorage('theme', 'dark');
-
-        
-    
+ HTML; + @endphp +

animateCss

Animates any element in the DOM. Works with any of the animation classes from animate.css by Daniel Eden. The animation class names should be used without the animate__ prefix.

-
-        
+    @php
+        $helpersExample2 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:     css class that identifies the element to animate
                 animation:   animation class to be applied to element
@@ -37,14 +37,14 @@
 
             // example
             animateCss('.navigation','slideInRight');
-
-        
-    
+ HTML; + @endphp +

changeCss

Add to or remove CSS classes from a single element in the DOM.

-
-        
+    @php
+        $helpersExample3 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the element to change
                 css:        comma separated list of css class names to apply
@@ -59,16 +59,17 @@
 
             // example 2: remove list of css from an element
             changeCss('.nav a.active', 'selected, active', 'remove');
-        
-    
+ HTML; + @endphp +

changeCssForDomArray

Very similar to changeCss but this adds or removes CSS classes from an array of CSS elements in the DOM. This targets elements with the same class name or tag name.

-
-        
+    @php
+        $helpersExample4 = <<<'HTML'
             /* ---------------------------------------------------------------
                 elements:   css class that identifies the element to change
                 css:        comma separated list of css class names to apply
@@ -81,8 +82,9 @@
 
             // example 2: remove list of css classes
             changeCssForDomArray('.nav a', 'selected, active', 'remove');
-        
-    
+ HTML; + @endphp +

compareDates

@@ -90,8 +92,8 @@ Used by the range datepicker to ensure an end date is not less than a start date. Returns boolean.

-
-        
+    @php
+        $helpersExample5 = <<<'HTML'
             /* ---------------------------------------------------------------
                 date1_field:   name of input field that has the start date
                 date2_field:   name of input field that has the end date
@@ -109,13 +111,14 @@
             // from above
             // 1. the start date datepicker field has the name task_begins
             // 2. the end date datepicker field has the name task_ends
-        
-    
+ HTML; + @endphp +

domEl

Shortcut for writing Javascript's document.querySelector. This function has an alias dom_el that does exactly the same thing.

-
-        
+    @php
+        $helpersExample6 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:   css class that identifies the element to target
             -----------------------------------------------------------------*/
@@ -124,16 +127,17 @@
             // examples
             domEl('input.fname').getAttribute('disabled');
             let data = new FormData(dom_el(form));
-        
-    
+ HTML; + @endphp +

domEls

Shortcut for writing Javascript's document.querySelectorAll. This function has an alias dom_els that does exactly the same thing.

-
-        
+    @php
+        $helpersExample7 = <<<'HTML'
             /* ---------------------------------------------------------------
                 elements:   css class that identifies the elements to target
-                scope:      scope within which to search for <elements>
+                scope:      scope within which to search for 
             -----------------------------------------------------------------*/
             domEls(elements, scope = null);
 
@@ -146,13 +150,14 @@
             domEls('input.required', 'form.signup').forEach((el) => {
                 console.log(el.value);
             });
-        
-    
+ HTML; + @endphp +

getFromStorage

Retrieve a value from the enduser's localStorage or sessionStorage based on key that is passed.

-
-        
+    @php
+        $helpersExample8 = <<<'HTML'
             /* ---------------------------------------------------------------
                 key:            key to get value for
                 storageType:    storage to fetch the value from
@@ -161,13 +166,14 @@
 
             // example
             getFromStorage('theme');
-        
-    
+ HTML; + @endphp +

hide

Hide an element from/in the DOM .

-
-        
+    @php
+        $helpersExample9 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the element to hide
                 elementIsDomObject: is the element a dom Object
@@ -177,12 +183,13 @@
             // example
             hide('.top-bar');
             hide(domEl('.top-bar'), true);
-        
-    
+ HTML; + @endphp +

hideButtonSpinner

Hide the spinner associated with a button.

-
-        
+    @php
+        $helpersExample10 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    name of the button
             -----------------------------------------------------------------*/
@@ -190,13 +197,14 @@
 
             // example
             hideButtonSpinner('.save-user');
-        
-    
+ HTML; + @endphp +

hideModal

Specifically hides a BladewindUI Modal component.

-
-        
+    @php
+        $helpersExample11 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the modal to hide
             -----------------------------------------------------------------*/
@@ -204,14 +212,15 @@
 
             // example
             hideModal('.make-payment');
-        
-    
+ HTML; + @endphp +

hideModalActionButtons

Hides the action buttons on a BladewindUI Modal component. The action buttons are the Ok and Cancel buttons. See the example here for how this is used.

-
-        
+    @php
+        $helpersExample12 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the modal to hide
             -----------------------------------------------------------------*/
@@ -220,28 +229,30 @@
             // example
             // this will hide the Cancel and Ok buttons on the make-payment modal
             hideModalActionButtons('make-payment');
-        
-    
+ HTML; + @endphp +

isNumberKey

Used by the Bladewind Textbox component to restrict user input to only numeric values. You can however use this helper function in your own non-Bladewind textboxes. For example to enter verification codes.

-
-        
+    @php
+        $helpersExample13 = <<<'HTML'
             /* ---------------------------------------------------------------
                 evt:    javascript keypress events
             -----------------------------------------------------------------*/
             isNumberKey(evt);
 
             // example
-            <input type="text" onkeypress="return isNumberKey(event)" />
-        
-    
+ + HTML; + @endphp +

removeFromStorage

Remove a key from the enduser's localStorage or sessionStorage.

-
-        
+    @php
+        $helpersExample14 = <<<'HTML'
             /* ---------------------------------------------------------------
                 key:            key to remove
                 storageType:    which storage to remove the  key from
@@ -250,29 +261,31 @@
 
             // example
             removeFromStorage('theme');
-        
-    
+ HTML; + @endphp +

serialize

Prepares form data as key/value pairs to send via Ajax posts or requests..

-
-        
+    @php
+        $helpersExample15 = <<<'HTML'
             /* ---------------------------------------------------------------
                 form:  css class that identifies the form to serialize
             -----------------------------------------------------------------*/
             serialize(form);
 
             // example
-            <form class="signup-form">...</form>
+            ...
 
             serialize('.signup-form');
-        
-    
+ HTML; + @endphp +

showButtonSpinner

Unhide a spinner associated with a Button component with has_spinner="true".

-
-        
+    @php
+        $helpersExample16 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    name of the button
             -----------------------------------------------------------------*/
@@ -280,13 +293,14 @@
 
             // example
             showButtonSpinner('.save-user');
-        
-    
+ HTML; + @endphp +

showModal

Specifically unhides a Bladewind Modal component.

-
-        
+    @php
+        $helpersExample17 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the modal to unhide
             -----------------------------------------------------------------*/
@@ -294,13 +308,14 @@
 
             // example
             showModal('.make-payment');
-        
-    
+ HTML; + @endphp +

showModalActionButtons

Unhides the action buttons on a BladewindUI Modal component. The action buttons are the Ok and Cancel buttons.

-
-        
+    @php
+        $helpersExample18 = <<<'HTML'
             /* --------------------------------------------------------------------
                 element:    css class that identifies the modal to show buttons for
             --------------------------------------------------------------------*/
@@ -309,14 +324,15 @@
             // example
             // this will show the Cancel and Ok buttons on the make-payment modal
             showModalActionButtons('make-payment');
-        
-    
+ HTML; + @endphp +

stringContains

Checks to see if a string contains the specified keyword. Returns true if string contains the keyword and false if string does not contain the keyword.

-
-        
+    @php
+        $helpersExample19 = <<<'HTML'
             /* ---------------------------------------------------------------
                 str:        main string to check keyword against
                 keyword:    keyword to check if it's contained in str
@@ -325,13 +341,14 @@
 
             // example
             stringContains(location.href, '/admin');
-        
-    
+ HTML; + @endphp +

unhide

Unhides any DOM element.

-
-        
+    @php
+        $helpersExample20 = <<<'HTML'
             /* ---------------------------------------------------------------
                 element:    css class that identifies the element to unhide
                 elementIsDomObject: is the element a dom Object
@@ -341,8 +358,9 @@
             // example
             unhide('.top-bar');
             unhide(domEl('.top-bar'), true);
-        
-    
+ HTML; + @endphp +

validateForm

@@ -352,20 +370,20 @@ At the moment, this function only works on text-based input fields and the textarea field. See the Validating Input Fields section of the Textbox component documentation. You can either pass a string targeting the class of the HTML form or pass an HTMLFormElement.

-
-        
+    @php
+        $helpersExample21 = <<<'HTML'
             /* ---------------------------------------------------------------
                 form:    css class of the form or HTMLFormElement to validate
             -----------------------------------------------------------------*/
             validateForm(form);
 
             // example
-            <form class="signup-form">
-                <x-bladewind.input required="true" name="fullname" label="Name" />
-                <x-bladewind.input required="true" name="email" label="Email" />
-                <x-bladewind.input required="true" name="mobile"
-                    label="Mobile" numeric="true" />
-            </form>
+            
+                
+                
+                
+            
 
             // ---- this option uses the css class name of the form ------------
             domEl('.signup-form').addEventListener('submit', function (e){
@@ -393,8 +411,9 @@
                     }
                 });
             }
-        
-    
+ HTML; + @endphp +

 

diff --git a/resources/views/docs/horizontal-line-graph.blade.php b/resources/views/docs/horizontal-line-graph.blade.php index 9be91e80..a916244b 100644 --- a/resources/views/docs/horizontal-line-graph.blade.php +++ b/resources/views/docs/horizontal-line-graph.blade.php @@ -9,13 +9,14 @@

-
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample1 = <<<'HTML'
+            
-    
+ percentage="55.8" /> + HTML; + @endphp +

That’s the basic syntax for displaying a horizontal line graph but let’s look at more practical examples of how to use this component in your applications. @@ -32,53 +33,54 @@ -

-        
-            <div class="grid grid-cols-2 gap-6">
+    @php
+        $horizontalUlineUgraphExample2 = <<<'HTML'
+            
- <x-bladewind.card title="Mobile Money Penetration"> + - <x-bladewind::horizontal-line-graph + - <x-bladewind::horizontal-line-graph + - <x-bladewind::horizontal-line-graph + - </x-bladewind.card> + - <x-bladewind.card title="Farmer age ratio"> + - <x-bladewind::horizontal-line-graph + - <x-bladewind::horizontal-line-graph + - <x-bladewind::horizontal-line-graph + - </x-bladewind.card> + - </div> - -
+ + HTML; + @endphp +

Different Colours

@@ -92,69 +94,74 @@ class="py-3" /> percentage="10" color="red" /> -

-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample3 = <<<'HTML'
+            
-    
+ color="red" /> + HTML; + @endphp + -
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample4 = <<<'HTML'
+            
-    
+ color="yellow"/> + HTML; + @endphp + -
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample5 = <<<'HTML'
+            
-    
+ color="green" /> + HTML; + @endphp + -
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample6 = <<<'HTML'
+            
-    
+ color="pink" /> + HTML; + @endphp + -
-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="50"
-                    color="cyan" />
-            
-        
+ @php + $horizontalUlineUgraphExample7 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="60"
-                    color="gray" />
-            
-        
+ @php + $horizontalUlineUgraphExample8 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="70"
-                    color="purple" />
-            
-        
+ @php + $horizontalUlineUgraphExample9 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="80"
-                    color="orange" />
-            
-        
+ @php + $horizontalUlineUgraphExample10 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="80"
-                    color="violet" />
-            
-        
+ @php + $horizontalUlineUgraphExample11 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="80"
-                    color="indigo" />
-            
-        
+ @php + $horizontalUlineUgraphExample12 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="80"
-                    color="fuchsia" />
-            
-        
+ @php + $horizontalUlineUgraphExample13 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="90" />
-            
-        
+ @php + $horizontalUlineUgraphExample14 = <<<'HTML' + + HTML; + @endphp +

@@ -266,14 +280,15 @@ class="py-3" /> percentage="10" color="red" shade="dark" />

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="10"
-                    shade="dark" color="red" />
-            
-        
+ @php + $horizontalUlineUgraphExample15 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="20"
-                    shade="dark" color="yellow" />
-            
-        
+ @php + $horizontalUlineUgraphExample16 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="30"
-                    shade="dark" color="green" />
-            
-        
+ @php + $horizontalUlineUgraphExample17 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="40"
-                    shade="dark" color="pink" />
-            
-        
+ @php + $horizontalUlineUgraphExample18 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="40"
-                    shade="dark" color="fuchsia" />
-            
-        
+ @php + $horizontalUlineUgraphExample19 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="40"
-                    shade="dark" color="indigo" />
-            
-        
+ @php + $horizontalUlineUgraphExample20 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="40"
-                    shade="dark" color="violet" />
-            
-        
+ @php + $horizontalUlineUgraphExample21 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="50"
-                    shade="dark" color="cyan" />
-            
-        
+ @php + $horizontalUlineUgraphExample22 = <<<'HTML' + + HTML; + @endphp +

-

-            
-                <x-bladewind::horizontal-line-graph
-                    label="Women Farmers: "
-                    percentage="60"
-                    shade="dark" color="gray" />
-            
-        
+ @php + $horizontalUlineUgraphExample23 = <<<'HTML' + + HTML; + @endphp +

-
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample24 = <<<'HTML'
+            
-    
+ shade="dark" color="purple" /> + HTML; + @endphp +

-
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample25 = <<<'HTML'
+            
-    
+ shade="dark" color="orange" /> + HTML; + @endphp +

-
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample26 = <<<'HTML'
+            
-    
+ shade="dark" /> + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Horizontal Line Graph component.

@@ -484,17 +510,18 @@ class="py-3" />

Horizontal Line Graph with all attributes defined

-
-        
-            <x-bladewind::horizontal-line-graph
+    @php
+        $horizontalUlineUgraphExample27 = <<<'HTML'
+            
-    
+ class="py-4" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > horizontal-line-graph.blade.php diff --git a/resources/views/docs/icon.blade.php b/resources/views/docs/icon.blade.php index 62cd1975..82937ced 100644 --- a/resources/views/docs/icon.blade.php +++ b/resources/views/docs/icon.blade.php @@ -10,11 +10,12 @@
-
-        
-            <x-bladewind::icon name="swatch" />
-        
-    
+ @php + $iconExample1 = <<<'HTML' + + HTML; + @endphp +

By default this component sets all icons at h-6 and w-6. You can override the icon size and colours using the standard TailwindCSS classes. You can in fact, add any TailwindCSS class to the icon. @@ -22,35 +23,38 @@

-
-        
-            <x-bladewind::icon
-                name="video-camera-slash" class="!h-16 !w-16 text-amber-500" />
-        
-    
+ @php + $iconExample2 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample3 = <<<'HTML'
+            
-    
+ cursor-pointer hover:bg-pink-500 hover:p-3" /> + HTML; + @endphp +
-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample4 = <<<'HTML'
+            
-    
+ hover:bg-cyan-500 hover:text-white" /> + HTML; + @endphp +

Solid Icons

@@ -60,22 +64,24 @@ class="!h-14 !w-14 text-cyan-500 p-3 animate-bounce rounded-md

-
-        
-            <x-bladewind::icon name="swatch" type="solid" />
-        
-    
+ @php + $iconExample5 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample6 = <<<'HTML'
+            
-    
+ class="!h-16 !w-16 text-amber-500" /> + HTML; + @endphp +

SVG Icons

@@ -92,31 +98,33 @@ class="!h-16 !w-16 text-amber-500" /> ' /> -

-        
-            <x-bladewind::icon name='<svg class="h-24 w-24 inline-block dark:!fill-dark-100" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M6.72 9.56H5.78C3.7 9.56 2 7.86003 2 5.78003C2 3.70003 3.7 2 5.78 2H7.67001C9.23001 2 10.5 3.28002 10.5 4.83002V7.39001V17.1C10.5 18.14 9.64999 18.99 8.60999 18.99C7.56999 18.99 6.72 18.14 6.72 17.1V9.56Z" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M5.77985 6.72003C5.25985 6.72003 4.83984 6.30009 4.83984 5.78009C4.83984 5.26009 5.25985 4.84009 5.77985 4.84009" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.28 13.52V9.56H18.22C20.3 9.56 22 7.86003 22 5.78003C22 3.70003 20.3 2 18.22 2H16.33C14.77 2 13.5 3.28002 13.5 4.83002V7.39001V17.1C13.5 18.14 14.35 18.99 15.39 18.99C16.43 18.99 17.28 18.14 17.28 17.1" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M18.2207 6.72003C18.7407 6.72003 19.1607 6.30009 19.1607 5.78009C19.1607 5.26009 18.7407 4.84009 18.2207 4.84009" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M8.5 22V19" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M15.5 22V19" stroke="#292D32" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>' />
-        
-    
+ @php + $iconExample7 = <<<'HTML' + + HTML; + @endphp +
-
-        
-            <x-bladewind::icon name='<svg class="h-24 w-24 inline-block dark:!fill-dark-100" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M16.2702 9.10001L14.3002 8.25001C14.1402 8.18001 14.0002 7.97001 14.0002 7.79001V4.79001C14.0002 3.85001 13.3102 2.74001 12.4702 2.31001C12.1702 2.16001 11.8202 2.16001 11.5202 2.31001C10.6802 2.74001 9.99023 3.86001 9.99023 4.80001V7.80001C9.99023 7.98001 9.85023 8.19001 9.69023 8.26001L4.11023 10.67C3.49023 10.92 2.99023 11.69 2.99023 12.36V13.65C2.99023 14.49 3.62023 14.9 4.39023 14.57L9.30023 12.45C9.68023 12.28 10.0002 12.49 10.0002 12.91V15.76C10.0002 15.99 9.87023 16.31 9.71023 16.47L7.44023 18.75C7.20023 18.99 7.09023 19.45 7.20023 19.78L7.64023 21.11C7.82023 21.69 8.48024 21.97 9.02024 21.69L11.3502 19.73C11.7002 19.43 12.2802 19.43 12.6302 19.73L14.9602 21.69C15.5002 21.96 16.1602 21.69 16.3602 21.11L16.8002 19.78C16.9102 19.46 16.8002 18.99 16.5602 18.75L14.2902 16.47C14.1202 16.31 13.9902 15.99 13.9902 15.76V12.91C13.9902 12.49 14.3002 12.29 14.6902 12.45L19.6002 14.57C20.3702 14.9 21.0002 14.49 21.0002 13.65V12.36C21.0002 11.69 20.5002 10.92 19.8802 10.66" stroke="#292D32" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>' />
-        
-    
+ @php + $iconExample8 = <<<'HTML' + + HTML; + @endphp +

Note how the name attribute now uses single quotes and not double quotes

@@ -134,12 +142,13 @@ class="!h-16 !w-16 text-amber-500" />
-
-        
-            <x-bladewind::icon name="discount-shape"
-                class="!h-24 !w-24 !fill-yellow-500 !stroke-yellow-300" />
-        
-    
+ @php + $iconExample9 = <<<'HTML' + + HTML; + @endphp +

@@ -150,14 +159,15 @@ class="!h-24 !w-24 !fill-yellow-500 !stroke-yellow-300" />

-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample10 = <<<'HTML'
+            
-    
+ class="!h-24 !w-24 !fill-green-300 !stroke-green-500" /> + HTML; + @endphp +

Custom SVG Directory

@@ -172,14 +182,15 @@ class="!h-24 !w-24 !fill-green-300 !stroke-green-500" />

-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample11 = <<<'HTML'
+            
-    
+ class="h-24 w-24" /> + HTML; + @endphp +

Some TailwindCSS classes may not work on SVG files/icons that are not from Heroicons. SVG fill and stroke classes were not working as expected in some cases. @@ -192,17 +203,18 @@ class="h-24 w-24" /> class. It takes a named size, or any Tailwind sizing utility verbatim if you need something in between.

-
-        
-<x-bladewind::icon name="user" size="tiny" />
-<x-bladewind::icon name="user" size="small" />
-<x-bladewind::icon name="user" size="regular" />
-<x-bladewind::icon name="user" size="medium" />   {{-- the default --}}
-<x-bladewind::icon name="user" size="big" />
-<x-bladewind::icon name="user" size="large" />
-<x-bladewind::icon name="user" size="size-[18px]" />
-        
-    
+ @php + $iconExample12 = <<<'HTML' + + + + {{-- the default --}} + + + + HTML; + @endphp +

A sizing class in the class attribute still wins over size. That was the only way to size an icon before this @@ -241,15 +253,16 @@ class. It takes a named size, or any Tailwind sizing utility verbatim if you nee

Icon with all attributes defined

-
-        
-            <x-bladewind::icon
+    @php
+        $iconExample13 = <<<'HTML'
+            
-    
+ class="h-16 w-16 text-amber-500" /> + HTML; + @endphp +

diff --git a/resources/views/docs/inline-edit.blade.php b/resources/views/docs/inline-edit.blade.php index 0fd6a57f..243a1b3a 100644 --- a/resources/views/docs/inline-edit.blade.php +++ b/resources/views/docs/inline-edit.blade.php @@ -12,11 +12,12 @@ -

-        
-            <x-bladewind::inline-edit name="project_name" value="Q3 Marketing Campaign" />
-        
-    
+ @php + $inlineUeditExample1 = <<<'HTML' + + HTML; + @endphp +

Click the text (or its pencil icon) to edit, Enter to save, Escape or the × button to cancel. An empty value shows @@ -39,11 +40,11 @@ function renameProject(id, name) { } -

-        
-            <x-bladewind::inline-edit name="project_name" value="Q3 Marketing Campaign" on-save="renameProject(1, newValue)" />
+    @php
+        $inlineUeditExample2 = <<<'HTML'
+            
 
-            <script>
+            
+            HTML;
+    @endphp
+    
 
     

Required and validation

@@ -64,11 +66,12 @@ function renameProject(id, name) { onSave (for a server-side validation failure, say) surfaces the same way.

-
-        
-            <x-bladewind::inline-edit name="project_name" required="true" required-message="A project needs a name" />
-        
-    
+ @php + $inlineUeditExample3 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

@@ -125,9 +128,9 @@ function renameProject(id, name) {

Inline Edit with all attributes defined

-
-        
-            <x-bladewind::inline-edit
+    @php
+        $inlineUeditExample4 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > inline-edit.blade.php diff --git a/resources/views/docs/input-group.blade.php b/resources/views/docs/input-group.blade.php index 43506225..0bd83c9f 100644 --- a/resources/views/docs/input-group.blade.php +++ b/resources/views/docs/input-group.blade.php @@ -35,14 +35,15 @@

-
-        
-<x-bladewind::input-group>
-    <x-bladewind::input name="search" placeholder="Search orders" />
-    <x-bladewind::button class="shrink-control">Search</x-bladewind::button>
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample1 = <<<'HTML' + + + Search + + HTML; + @endphp +

In this example, the input grows and the Search button keeps its normal width. @@ -62,20 +63,21 @@

-
-        
-<x-bladewind::input-group>
-    <x-bladewind::select
-        name="currency"
-        :data="$currencies"
-        class="shrink-control" />
-    <x-bladewind::input
-        name="amount"
-        numeric="true"
-        placeholder="Amount" />
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample2 = <<<'HTML' + + + + + HTML; + @endphp +

Using Three Controls

@@ -91,21 +93,22 @@ class="shrink-control" />

-
-        
-<x-bladewind::input-group>
-    <x-bladewind::select
-        name="currency"
-        :data="$currencies"
-        class="shrink-control" />
-    <x-bladewind::input
-        name="amount"
-        numeric="true"
-        placeholder="Amount" />
-    <x-bladewind::button class="shrink-control">Pay</x-bladewind::button>
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample3 = <<<'HTML' + + + + Pay + + HTML; + @endphp +

Email Input And Button

@@ -121,22 +124,24 @@ class="shrink-control" />

-
-        
-<form method="POST" action="/subscribe">
-    @@csrf
-    <x-bladewind::input-group>
-        <x-bladewind::input
-            name="email"
-            type="email"
-            placeholder="Email address" />
-        <x-bladewind::button
-            can_submit="true"
-            class="shrink-control">Subscribe</x-bladewind::button>
-    </x-bladewind::input-group>
-</form>
-        
-    
+ @php + $inputUgroupExample4 = <<<'HTML' +
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + + + Subscribe + + + HTML; + $inputUgroupExample4 = str_replace('BWATSIGNPLACEHOLDER', '@', $inputUgroupExample4); + @endphp +

Phone Number With Country Code

@@ -152,20 +157,21 @@ class="shrink-control">Subscribe</x-bladewind::button>

-
-        
-<x-bladewind::input-group>
-    <x-bladewind::select
-        name="country_code"
-        :data="$countryCodes"
-        class="shrink-control" />
-    <x-bladewind::input
-        name="phone"
-        type="tel"
-        placeholder="Phone number" />
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample5 = <<<'HTML' + + + + + HTML; + @endphp +

Textarea And Button

@@ -180,17 +186,18 @@ class="shrink-control" />

-
-        
-<x-bladewind::input-group>
-    <x-bladewind::textarea
-        name="message"
-        placeholder="Write a short message"
-        rows="2" />
-    <x-bladewind::button class="shrink-control">Send</x-bladewind::button>
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample6 = <<<'HTML' + + + Send + + HTML; + @endphp +

Attached And Gapped

@@ -206,14 +213,15 @@ class="shrink-control" />

-
-        
-<x-bladewind::input-group attached="false">
-    <x-bladewind::input name="search" placeholder="Search orders" />
-    <x-bladewind::button class="shrink-control">Search</x-bladewind::button>
-</x-bladewind::input-group>
-        
-    
+ @php + $inputUgroupExample7 = <<<'HTML' + + + Search + + HTML; + @endphp +

Supported Controls

diff --git a/resources/views/docs/input.blade.php b/resources/views/docs/input.blade.php index a095b9d8..3d6d23bb 100644 --- a/resources/views/docs/input.blade.php +++ b/resources/views/docs/input.blade.php @@ -9,19 +9,21 @@

-
-        
-            <x-bladewind::input  />
-        
-    
+ @php + $inputExample1 = <<<'HTML' + + HTML; + @endphp +

Password Input

This behaves just like the regular HTML password input. Nothing fancy. Any values entered into this field are masked.

-
-        
-            <x-bladewind::input type="password"  />
-        
-    
+ @php + $inputExample2 = <<<'HTML' + + HTML; + @endphp +

Reveal Passwords

The component allows you to specify if the user should be able to view the password they entered by clicking on an eye. This can be achieved by setting @@ -30,20 +32,22 @@ The eye icon will be displayed ONLY if the input type="password". It will be ignored in all other cases.

-
-        
-            <x-bladewind::input type="password" viewable="true"  />
-        
-    
+ @php + $inputExample3 = <<<'HTML' + + HTML; + @endphp +

Numeric Input

This accepts only numeric values. Useful when entering phone numbers, age or amounts. By default the decimal point is not allowed as it is technically not a number. In cases where you need decimals, use the attribute with_dots="true"

-
-        
-            <x-bladewind::input numeric="true"  />
-        
-    
+ @php + $inputExample4 = <<<'HTML' + + HTML; + @endphp +

Minimum & Maximum Values

You may want users to enter a minimum or maximum number when using the numeric input. For example, let's say employees cannot request more than 5 days off per leave request. @@ -54,27 +58,29 @@


-
-
-    <x-bladewind::input
-        placeholder="Minimum is 3"
-        name="input-min"
-        numeric="true"
-        min="3"
-        error_message="Minimum value must be 3"
-        show_error_inline="true" />
-
-
-
-
-    <x-bladewind::input
-        placeholder="Maximum is 12"
-        name="input-max"
-        numeric="true"
-        max="12"
-        error_message="Maximum value must be 12" />
-
-
+@php + $inputExample5 = <<<'HTML' + + HTML; + @endphp + +@php + $inputExample6 = <<<'HTML' + + HTML; + @endphp +

Input Masking

@@ -115,29 +121,33 @@ -

-        
-            <x-bladewind::input name="phone" mask="(999) 999-9999" />
-        
-    
+ @php + $inputExample7 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::input name="dob" mask="99/99/9999" placeholder="MM/DD/YYYY" />
-        
-    
+ @php + $inputExample8 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::input name="postcode" mask="a9a 9a9" placeholder="A9A 9A9" />
-        
-    
+ @php + $inputExample9 = <<<'HTML' + + HTML; + @endphp + -
-        
-            <x-bladewind::input name="key" mask="****-****-****-****" placeholder="XXXX-XXXX-XXXX-XXXX" />
-        
-    
+ @php + $inputExample10 = <<<'HTML' + + HTML; + @endphp +

Dynamic Masks

@@ -152,11 +162,12 @@ Visa / Mastercard / Discover format (4-4-4-4) — no JavaScript required on your part.

-
-        
-            <x-bladewind::input name="card" dynamicMask="creditCard" />
-        
-    
+ @php + $inputExample11 = <<<'HTML' + + HTML; + @endphp +

Custom dynamic masks

@@ -165,21 +176,23 @@ function that receives the current value and returns a mask template. The exampl from 99999 to the ZIP+4 format 99999-9999 once more than five digits are entered.

-
-        
-            <x-bladewind::input name="zip" dynamicMask="zipCode" />
-        
-    
-
-        
+    @php
+        $inputExample12 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
+    @php
+        $inputExample13 = <<<'HTML'
             function zipCode(input) {
                 const digits = input.replace(/\D/g, '');
-                return digits.length <= 5
+                return digits.length <= 5
                     ? '99999'           // ZIP
                     : '99999-9999';     // ZIP+4
             }
-        
-    
+ HTML; + @endphp + A global function with the same name as a built-in (e.g. your own creditCard) takes precedence, so you can override the built-ins when you need to. @@ -196,18 +209,19 @@ function zipCode(input) {
-
-        
-            <x-bladewind::input name="price" money="true" />
+    @php
+        $inputExample14 = <<<'HTML'
+            
 
-            <x-bladewind::input
+            
-    
+ moneyPrecision="2" /> + HTML; + @endphp + Masking forces the field to type="text" so formatted values (separators and letters) are preserved, so you don't need to set numeric="true" on a masked field. @@ -219,18 +233,20 @@ function zipCode(input) { This is a nice way to build compact looking forms without having form labels in the way. If you prefer to create and style your own form labels, simply ignore the label attribute and use the placeholder attribute instead.

-
-        
-            <x-bladewind::input label="Full name"  />
-        
-    
+ @php + $inputExample15 = <<<'HTML' + + HTML; + @endphp +

Placeholder Text

-
-        
-            <x-bladewind::input placeholder="Full name"  />
-        
-    
+ @php + $inputExample16 = <<<'HTML' + + HTML; + @endphp +

What Happens When Both Placeholder and Label are Set

The label attribute actually replaces placeholder. In most common cases input labels are displayed above @@ -238,36 +254,39 @@ function zipCode(input) { Having a placeholder text that is longer than your label text results in some parts of the placeholder text sticking out under the label. If you want the placeholder to still be shown even when there is a label, set show_placeholder_always="true"

-
-
-    <x-bladewind::input
-        name="mobile" label="Mobile" placeholder="000.0000.000" />
-
-
+@php + $inputExample17 = <<<'HTML' + + HTML; + @endphp +

From the example above you will notice the placeholder is sticking out under the label. This is because the placeholder text is longer than the label. This is why Bladewind hides the placeholder when the label is set. One way to fix this is by appending non breaking spaces to your label till the placeholder text is covered. This is an ugly solution.

-
-
-    <x-bladewind::input name="mobile"
-        label="Mobile             "
-        placeholder="000.0000.000"
-        show_placeholder_always="true" />
-
-
+@php + $inputExample18 = <<<'HTML' + + HTML; + @endphp +

Required Fields

This either adds a red asterisk sign to the placeholder text or a red star to the label of the input field.

-
-        
-            <x-bladewind::input required="true" label="Full name"  />
-        
-    
+ @php + $inputExample19 = <<<'HTML' + + HTML; + @endphp +

Events

You can append any of the available HTML event attributes (onclick, onblur, onfocus, onmouseover, onmouseout, onkeyup, onkeydown etc) to the component, just like you would to a regular <input ... tag. @@ -276,16 +295,17 @@ function zipCode(input) {

-
-
-    <x-bladewind::input
-        name="events"
-        label="Full name"
-        required="true"
-        onfocus="changeCss('.events', '!border-2,!border-red-400')"
-        onblur="changeCss('.events', '!border-2,!border-red-400', 'remove')"  />
-
-
+@php + $inputExample20 = <<<'HTML' + + HTML; + @endphp +

Validating Required Fields

Bladewind comes with a very handy Javascript helper function (validateForm(element)) for validating input and textarea fields that have the attribute required='true" set. @@ -314,66 +334,67 @@ function zipCode(input) {

Let's take a look at the code for the form and then proceed to break it down.

-
-
-    <x-bladewind.notification />
+@php
+        $inputExample21 = <<<'HTML'
+            
 
-    <x-bladewind.card>
+            
 
-        <form method="get" class="signup-form">
+                
 
-            <h1 class="my-2 text-2xl font-light text-blue-900/80">
-                Create Account</h1>
-            <p class="mt-3 mb-6 text-blue-900/80 text-sm">
-                This is a sign up form example to demonstrate
-                how to validate forms using Bladewind.
-            </p>
+                    

+ Create Account

+

+ This is a sign up form example to demonstrate + how to validate forms using Bladewind. +

- <x-bladewind::input - name="fname" - required="true" - label="Full Name" - error_message="You will need to enter your full name" /> + - <div class="flex gap-4"> +
- <x-bladewind::input - name="email" - required="true" - label="Email" /> + - <x-bladewind::input - name="mobile" - label="Mobile" - numeric="true" /> + - </div> +
- <x-bladewind.textarea - required="true" - name="bio" - error_message="Yoh! write something nice about yourself" - show_error_inline="true" - label="Describe yourself"></x-bladewind.textarea> + - <div class="text-center"> +
- <x-bladewind.button - name="btn-save" - has_spinner="true" - type="primary" - can_submit="true" - class="mt-3"> - Sign Up Today - </x-bladewind.button> + + Sign Up Today + - </div> +
- </form> + - </x-bladewind.card> -
-
+ + HTML; + @endphp +

Error messages can either be displayed inline or using the Bladewind notification component. You will notice we included the Notification component on line 1. On line 5 we have a form with a class of signup-form. @@ -390,8 +411,8 @@ class="mt-3"> error message beneath the field the attribute was set on.

Below is the javascript that triggers the validation of the form. domEl, unhide and validateForm are helper functions in the package.

-
-        
+    @php
+        $inputExample22 = <<<'HTML'
             /**
             domEl(), validateForm(), hide() and unhide()
             are helper functions available in BladewindUI
@@ -407,8 +428,9 @@ class="mt-3">
                     unhide('.btn-save .bw-spinner') : // do this is validated
                     hide('.btn-save .bw-spinner'); // do this if not validated
             }
-        
-    
+ HTML; + @endphp +

Manipulating Inputs Using Javascript

@@ -458,41 +480,43 @@ class="mt-3"> Let's take a look at the code for the form and then proceed to look at the Javascript that's triggered. Pay attention to lines 4 and 12.

-
-        
+    @php
+        $inputExample23 = <<<'HTML'
             ...
-            <div class="flex gap-4">
-                <x-bladewind::input name="full_name" required="true"  label="Full name" />
-                <x-bladewind::input name="age_camp" label="How old are you?"
-                    required="true" numeric="true" with_dots="true" />
-            </div>
-            <b class="guardian-info py-2 block hidden">Who is your guardian?</b>
-            <div class="guardian flex gap-4 hidden">
-                <x-bladewind::input name="guardian_name_camp" required="true" label="Guardian's Name" />
-                <x-bladewind::input name="guardian_email_camp"
+            
+ + +
+ + +
-
+ HTML; + @endphp +

From the above form, we want to perform an action when the value of the age_camp input field changes. The resultant HTML code generated for the input field is below.

-
-
-    <input
-        class="bw-input peer required age_camp placeholder-transparent dark:placeholder-transparent"
-        type="text"
-        id="age_camp"
-        name="age_camp"
-        value=""
-        autocomplete="off"
-        placeholder="How old are you?" />
-
-
+@php + $inputExample24 = <<<'HTML' + + HTML; + @endphp +

The name we provided to the Input component has been used as part of the class names of the component. This makes it easy for us to access the component in Javascript. Below is the script that performs the hiding and unhiding of the DIVs based on the value of the age input. @@ -501,24 +525,25 @@ class="bw-input peer required age_camp placeholder-transparent dark:placeholder-

Entering a value in the guardian email field also unhides an address field. This however uses an onkeyup event defined on the input field itself.

-
-        
-        // domEl, unhide and hide are helper functions in BladewindUI
-        domEl('.age_camp').addEventListener('keyup', (el) => {
-            if(el.target.value !== ''  && el.target.value < 18 ){
-                unhide('.guardian-info');
-                unhide('.guardian');
-            } else {
-                hide('.guardian-info');
-                hide('.guardian');
-            }
-        })
+    @php
+        $inputExample25 = <<<'HTML'
+            // domEl, unhide and hide are helper functions in BladewindUI
+            domEl('.age_camp').addEventListener('keyup', (el) => {
+                if(el.target.value !== ''  && el.target.value < 18 ){
+                    unhide('.guardian-info');
+                    unhide('.guardian');
+                } else {
+                    hide('.guardian-info');
+                    hide('.guardian');
+                }
+            })
 
-        showAddress = (value) => {
-            if(value !== '') unhide('.guardian_address');
-        }
-        
-    
+ showAddress = (value) => { + if(value !== '') unhide('.guardian_address'); + } + HTML; + @endphp +

To manipulate BladewindUI input elements using Javascript, simply target them using the name defined either in the class or id attributes. @@ -532,53 +557,60 @@ class="bw-input peer required age_camp placeholder-transparent dark:placeholder-

Prefixes

You can use prefixes even when your input has a label.

-
-        
-            <x-bladewind::input name="site" label="website address" prefix="https://" />
-        
-    
+ @php + $inputExample26 = <<<'HTML' + + HTML; + @endphp +

You can drop the label and use a placeholder instead.

-
-        
-            <x-bladewind::input name="site2" placeholder="website address" prefix="https://" />
-        
-    
-
-        
-            <x-bladewind::input name="usd" placeholder="0.00" prefix="USD" />
-        
-    
-
-        
-            <x-bladewind::input name="twitter" placeholder="Twitter handle" prefix="@" />
-        
-    
-
-        
-            <x-bladewind::input name="gh" placeholder="username" prefix="https://github.com/" />
-        
-    
+ @php + $inputExample27 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample28 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample29 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample30 = <<<'HTML' + + HTML; + @endphp +

Suffixes

Suffixes get appended to the end of the input field

-
-        
-            <x-bladewind::input name="space" placeholder="workspace-name" suffix=".slack.com" />
-        
-    
+ @php + $inputExample31 = <<<'HTML' + + HTML; + @endphp + -
-
-    <x-bladewind::input
-        name="tnc"
-        placeholder="Your bio. Keep it brief and nice"
-        suffix='<a href="#">See some good examples</a>' />
-
-
+@php + $inputExample32 = <<<'HTML' + + HTML; + @endphp +

Prefix and Suffix Transparency

@@ -586,40 +618,43 @@ class="bw-input peer required age_camp placeholder-transparent dark:placeholder- You can specify both a prefix and suffix on your input fields.

-
-
-    <x-bladewind::input
-        name="usdbg"
-        placeholder="0.00"
-        prefix="USD"
-        transparent_prefix="false"
-        numeric />
-
-
+@php + $inputExample33 = <<<'HTML' + + HTML; + @endphp +
-
-
-    <x-bladewind::input
-        name="spacex"
-        placeholder="workspace-name"
-        transparent_suffix="false"
-        suffix=".slack.com" />
-
-
+@php + $inputExample34 = <<<'HTML' + + HTML; + @endphp +
-
-
-    <x-bladewind::input
-        name="spacexx"
-        prefix="https://"
-        transparent_prefix="false"
-        placeholder="workspace-name"
-        suffix=".slack.com"
-        transparent_suffix="false" />
-
-
+@php + $inputExample35 = <<<'HTML' + + HTML; + @endphp +

Inputs With Icons

The BladewindUI input field can have an icon for those moments where you want a simple icon to describe the field. @@ -642,44 +677,46 @@ class="bw-input peer required age_camp placeholder-transparent dark:placeholder- Sign Up

-

-        
-            <x-bladewind.centered-content size="small">
+    @php
+        $inputExample36 = <<<'HTML'
+            
 
-                <x-bladewind::input
+                
 
-                <x-bladewind::input
+                
 
-                <div class="flex gap-4">
-                    <x-bladewind::input
+                
+ - <x-bladewind::input + - </div> +
- <x-bladewind.button class="w-full">Sign Up</x-bladewind.button> + Sign Up - </x-bladewind.centered-content> -
-
+ + HTML; + $inputExample36 = str_replace('BWATSIGNPLACEHOLDER', '@', $inputExample36); + @endphp +

As explained on the BladewindUI Icon component page, it is possible to use SVG tags and custom SVG files as the input icons. @@ -688,36 +725,38 @@ class="bw-input peer required age_camp placeholder-transparent dark:placeholder- ' prefix_is_icon="true" /> -

-
-<x-bladewind::input
-    name="www"
-    placeholder="website address"
-    prefix_is_icon="true"
-    prefix='<svg xmlns="http://www.w3.org/2000/svg" fill="none"
-    viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
-    class="w-6 h-6">
-<path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" />
-</svg>' />
-
-
+@php + $inputExample37 = <<<'HTML' + + HTML; + @endphp +
-
-
-<x-bladewind::input
-    name="www"
-    placeholder="website address"
-    prefix_is_icon="true"
-    transparent_prefix="false"
-    prefix='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
-<path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" />
-</svg>' />
-
-
+@php + $inputExample38 = <<<'HTML' + + HTML; + @endphp +

Clearable Inputs

Clearable fields display an x icon when a field has a value entered. Clicking on the x icon deletes the text in the input field. Quite handy and saves users from clicking the backspace several times in say, a search field. @@ -752,18 +791,30 @@ class="w-6 h-6">

-
-    <x-bladewind::input label="I am small" size="small" />
-    
-
-    <x-bladewind::input label="I am regular" />
-    
-
-    <x-bladewind::input label="I am medium" size="medium" />
-    
-
-    <x-bladewind::input label="I am big" size="big" />
-    
+ @php + $inputExample39 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample40 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample41 = <<<'HTML' + + HTML; + @endphp + + @php + $inputExample42 = <<<'HTML' + + HTML; + @endphp +

Laravel Form State

@@ -772,15 +823,16 @@ class="w-6 h-6"> can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

-
-        
-<x-bladewind::input
-    name="email"
-    label="Email address"
-    fill_from_old="true"
-    show_validation_error="true" />
-        
-    
+ @php + $inputExample43 = <<<'HTML' + + HTML; + @endphp +

fill_from_old repopulates the field from old(). show_validation_error gives @@ -797,16 +849,17 @@ class="w-6 h-6"> Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

-
-        
-// config/bladewind.php
-'forms' => [
-    'fill_from_old' => true,
-    'show_validation_error' => true,
-    'error_bag' => null,
-],
-        
-    
+ @php + $inputExample44 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -1075,9 +1128,9 @@ class="w-6 h-6">

Input with all attributes defined

-
-        
-            <x-bladewind::input
+    @php
+        $inputExample45 = <<<'HTML'
+            
-    
+ /> + HTML; + $inputExample45 = str_replace('BWATSIGNPLACEHOLDER', '@', $inputExample45); + @endphp +

 

diff --git a/resources/views/docs/install.blade.php b/resources/views/docs/install.blade.php index d6cc526f..6db39eb7 100644 --- a/resources/views/docs/install.blade.php +++ b/resources/views/docs/install.blade.php @@ -23,25 +23,60 @@

Pull in every component at once. This is the easiest way to get started and is ideal for new projects or if you want to explore the full library.

-
composer require bladewindui/ui
+ @php + $installExample1 = <<<'HTML' + composer require bladewindui/ui + HTML; + @endphp +

Install a component group

Components are organised into three groups. Install a group when you only need a logical subset of BladewindUI. See the component groups section below for exactly which components each group contains.

-
composer require bladewindui/forms
-
composer require bladewindui/content
-
composer require bladewindui/navigation
+ @php + $installExample2 = <<<'HTML' + composer require bladewindui/forms + HTML; + @endphp + + @php + $installExample3 = <<<'HTML' + composer require bladewindui/content + HTML; + @endphp + + @php + $installExample4 = <<<'HTML' + composer require bladewindui/navigation + HTML; + @endphp +

Install a single component

The library also allows users to pick only the components they need. This is ideal for existing projects where you want to introduce BladewindUI gradually, or if you only need one or two components.

-
composer require bladewindui/table
-
composer require bladewindui/accordion
-
composer require bladewindui/datepicker
+ @php + $installExample5 = <<<'HTML' + composer require bladewindui/table + HTML; + @endphp + + @php + $installExample6 = <<<'HTML' + composer require bladewindui/accordion + HTML; + @endphp + + @php + $installExample7 = <<<'HTML' + composer require bladewindui/datepicker + HTML; + @endphp +

All shared dependencies, such as the Icon, Spinner, and core helper utilities, are automatically installed by Composer when you require any BladewindUI package. You do not need to install or configure these dependencies yourself; Composer’s dependency resolution ensures everything required is available and up to date.

@@ -50,8 +85,18 @@

After installing, publish the compiled CSS, JavaScript, and language files to your project's public directory.

-
php artisan vendor:publish --tag=bladewind-public --force
-{{--
php artisan vendor:publish --tag=bladewind-lang --force
--}} + @php + $installExample8 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-public --force + HTML; + @endphp + +{{-- @php + $installExample9 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-lang --force + HTML; + @endphp + --}} Always republish assets when you update to a new version of BladewindUI. CSS and JS are updated regularly. See Updating BladewindUI below. @@ -62,11 +107,12 @@ Add the stylesheet to the <head> of your layout file. Your own CSS should come after the BladewindUI stylesheet so your customisations take effect.

-
-        
-            <link href="{{ asset('vendor/bladewind/css/bladewind-ui.min.css') }}" rel="stylesheet" />
-        
-    
+ @php + $installExample10 = <<<'HTML' + + HTML; + @endphp +

If your app already has its own Tailwind build

@@ -76,11 +122,12 @@ that already compiles its own Tailwind: the document gets reset twice, in an order nobody controls. Use the Preflight-free variant instead.

-
-        
-            <link href="{{ asset('vendor/bladewind/css/bladewind-ui-no-preflight.min.css') }}" rel="stylesheet" />
-        
-    
+ @php + $installExample11 = <<<'HTML' + + HTML; + @endphp +

The component rules in the two files are identical, because both are built from one shared source, so they cannot drift. The variant only drops the global reset. Tailwind's @@ -95,20 +142,24 @@ Add the JavaScript anywhere before the closing </body> tag. The @@bladewindScripts directive emits the tags for you.

-
-        
-            @@bladewindScripts
-        
-    
+ @php + $installExample12 = <<<'HTML' + BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERbladewindScripts + HTML; + $installExample12 = str_replace('BWATSIGNPLACEHOLDER', '@', $installExample12); + @endphp +

That gives you helpers.js, which every component assumes. Components with their own JavaScript take their name as an argument:

-
-        
-            @@bladewindScripts('select', 'dropmenu', 'datepicker')
-        
-    
+ @php + $installExample13 = <<<'HTML' + BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERbladewindScripts('select', 'dropmenu', 'datepicker') + HTML; + $installExample13 = str_replace('BWATSIGNPLACEHOLDER', '@', $installExample13); + @endphp +

Recognised names are select, dropmenu, datepicker, @@ -127,11 +178,12 @@

Writing the tags by hand still works, if you prefer:

-
-        
-            <script src="{{ asset('vendor/bladewind/js/helpers.js') }}"></script>
-        
-    
+ @php + $installExample14 = <<<'HTML' + + HTML; + @endphp +

Helper functions such as showModal() and hideModal() are available on @@ -143,11 +195,12 @@

Save User

-
-        
-            <x-bladewind::button>Save User</x-bladewind::button>
-        
-    
+ @php + $installExample15 = <<<'HTML' + Save User + HTML; + @endphp +

@@ -166,15 +219,16 @@

Set your nonce once and every script tag the library emits carries it:

-
-    
-        // config/bladewind.php
+    @php
+        $installExample16 = <<<'HTML'
+                // config/bladewind.php
 
-    'script' => [
-        'nonce' => fn () => request()->attributes->get('csp-nonce'),
-    ],
-    
-    
+ 'script' => [ + 'nonce' => fn () => request()->attributes->get('csp-nonce'), + ], + HTML; + @endphp +

Individual components also take a nonce attribute if you would rather pass it per component. @@ -194,13 +248,19 @@ vendor directory. To use the dot syntax instead, publish the component views to your own resources/views/components/bladewind directory:

-
php artisan vendor:publish --tag=bladewind-components --force
+ @php + $installExample17 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-components --force + HTML; + @endphp +

You can then call components using the dot syntax:

-
-        
-            <x-bladewind.button>Save User</x-bladewind.button>
-        
-    
+ @php + $installExample18 = <<<'HTML' + Save User + HTML; + @endphp + If you use the dot syntax, republish the component views after every BladewindUI update. @@ -296,7 +356,12 @@

Forms Group: bladewindui/forms

-
composer require bladewindui/forms
+ @php + $installExample19 = <<<'HTML' + composer require bladewindui/forms + HTML; + @endphp +
@@ -376,7 +441,12 @@

Content Group: bladewindui/content

-
composer require bladewindui/content
+ @php + $installExample20 = <<<'HTML' + composer require bladewindui/content + HTML; + @endphp +
@@ -456,7 +526,12 @@

Navigation Group: bladewindui/navigation

-
composer require bladewindui/navigation
+ @php + $installExample21 = <<<'HTML' + composer require bladewindui/navigation + HTML; + @endphp +
@@ -517,7 +592,12 @@ Every attribute in every component has a project-level default you can override once and have it apply everywhere. Publish the config file (available when using the full bladewindui/ui package):

-
php artisan vendor:publish --tag=bladewind-config
+ @php + $installExample22 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-config + HTML; + @endphp +

This creates config/bladewind.php in your project. Edit any value there and all component instances will follow suit. No need to set the attribute on every tag. @@ -528,32 +608,49 @@

Run composer update to pull in the latest version.

-
composer update
+ @php + $installExample23 = <<<'HTML' + composer update + HTML; + @endphp +

Then republish the public assets to pick up any CSS or JavaScript changes:

-
php artisan vendor:publish --tag=bladewind-public --force
+ @php + $installExample24 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-public --force + HTML; + @endphp +

If you are using the dot syntax, also republish the component views:

-
php artisan vendor:publish --tag=bladewind-components --force
+ @php + $installExample25 = <<<'HTML' + php artisan vendor:publish --tag=bladewind-components --force + HTML; + @endphp +

To automate both publish steps after every composer update, add the following to your composer.json under scripts:

-
-        
-        "scripts": {
-            "post-update-cmd": [
-                "@php artisan vendor:publish --tag=laravel-assets --ansi",
-                "@php artisan vendor:publish --tag=bladewind-public --force",
-                // add this line only if you also publish component views
-                "@php artisan vendor:publish --tag=bladewind-components --force"
-            ]
-        }
-        
-    
+ @php + $installExample26 = <<<'HTML' + "scripts": { + "post-update-cmd": [ + "BWATSIGNPLACEHOLDERphp artisan vendor:publish --tag=laravel-assets --ansi", + "BWATSIGNPLACEHOLDERphp artisan vendor:publish --tag=bladewind-public --force", + // add this line only if you also publish component views + "BWATSIGNPLACEHOLDERphp artisan vendor:publish --tag=bladewind-components --force" + ] + } + HTML; + $installExample26 = str_replace('BWATSIGNPLACEHOLDER', '@', $installExample26); + @endphp + Any changes you have made to published BladewindUI component view files will be overwritten when you republish the components. diff --git a/resources/views/docs/kanban.blade.php b/resources/views/docs/kanban.blade.php index 608c3394..987e4136 100644 --- a/resources/views/docs/kanban.blade.php +++ b/resources/views/docs/kanban.blade.php @@ -22,22 +22,23 @@ Set up the staging environment -
-        
-            <x-bladewind::kanban>
-                <x-bladewind::kanban.column title="To do" id="todo">
-                    <x-bladewind::kanban.card value="1">Design the onboarding flow</x-bladewind::kanban.card>
-                    <x-bladewind::kanban.card value="2">Write the API documentation</x-bladewind::kanban.card>
-                </x-bladewind::kanban.column>
-                <x-bladewind::kanban.column title="In progress" id="in-progress">
-                    <x-bladewind::kanban.card value="3">Build the payments webhook</x-bladewind::kanban.card>
-                </x-bladewind::kanban.column>
-                <x-bladewind::kanban.column title="Done" id="done">
-                    <x-bladewind::kanban.card value="4">Set up the staging environment</x-bladewind::kanban.card>
-                </x-bladewind::kanban.column>
-            </x-bladewind::kanban>
-        
-    
+ @php + $kanbanExample1 = <<<'HTML' + + + Design the onboarding flow + Write the API documentation + + + Build the payments webhook + + + Set up the staging environment + + + HTML; + @endphp +

Reacting To A Move

@@ -46,34 +47,36 @@ (cardId, fromColumnId, toColumnId, newIndex). Use it to save the new position with a request to your backend.

-
-        
-            <x-bladewind::kanban on_move="saveCardPosition">
+    @php
+        $kanbanExample2 = <<<'HTML'
+            
                 ...
-            </x-bladewind::kanban>
+            
 
-            <script>
+            
+            HTML;
+    @endphp
+    
 
     

Empty State

A column with no cards shows a short message instead of a blank space. Customise it with empty_text.

-
-        
-            <x-bladewind::kanban.column title="Backlog" id="backlog" empty_text="Nothing queued up yet">
-            </x-bladewind::kanban.column>
-        
-    
+ @php + $kanbanExample3 = <<<'HTML' + + + HTML; + @endphp +

Loading State

@@ -83,12 +86,13 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) { -

-        
-            <x-bladewind::kanban.column title="Review" id="review" loading="true">
-            </x-bladewind::kanban.column>
-        
-    
+ @php + $kanbanExample4 = <<<'HTML' + + + HTML; + @endphp +

Column Actions

Give a column an actions slot for a control shown beside its title, such as an add-card button.

@@ -102,18 +106,19 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) { Design the onboarding flow -
-        
-            <x-bladewind::kanban.column title="To do" id="todo">
-                <x-slot:actions>
-                    <button type="button">
-                        <x-bladewind::icon name="plus" />
-                    </button>
-                </x-slot:actions>
-                <x-bladewind::kanban.card value="1">Design the onboarding flow</x-bladewind::kanban.card>
-            </x-bladewind::kanban.column>
-        
-    
+ @php + $kanbanExample5 = <<<'HTML' + + + + + Design the onboarding flow + + HTML; + @endphp +

Full List Of Attributes

Kanban

@@ -141,14 +146,15 @@ function saveCardPosition(cardId, fromColumnId, toColumnId, newIndex) {

Kanban with all attributes defined

-
-        
-            <x-bladewind::kanban
+    @php
+        $kanbanExample6 = <<<'HTML'
+            
-    
+ class="ml-2"> + HTML; + @endphp +

Kanban Column

@@ -190,18 +196,19 @@ class="ml-2">

Kanban Column with all attributes defined

-
-        
-            <x-bladewind::kanban.column
+    @php
+        $kanbanExample7 = <<<'HTML'
+            
-    
+ class="ml-2"> + ... + + HTML; + @endphp +

Kanban Card

@@ -223,11 +230,12 @@ class="ml-2">

Kanban Card with all attributes defined

-
-        
-            <x-bladewind::kanban.card value="42" class="ml-2">Fix login bug</x-bladewind::kanban.card>
-        
-    
+ @php + $kanbanExample8 = <<<'HTML' + Fix login bug + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > kanban > index.blade.php, diff --git a/resources/views/docs/kbd.blade.php b/resources/views/docs/kbd.blade.php index d49f35c5..137c1790 100644 --- a/resources/views/docs/kbd.blade.php +++ b/resources/views/docs/kbd.blade.php @@ -10,11 +10,12 @@

Press Esc to close.

-
-        
-            <p>Press <x-bladewind::kbd>Esc</x-bladewind::kbd> to close.</p>
-        
-    
+ @php + $kbdExample1 = <<<'HTML' +

Press Esc to close.

+ HTML; + @endphp +

Key combinations

@@ -26,11 +27,12 @@ Open the command palette with

-
-        
-            <x-bladewind::kbd :keys="['Ctrl', 'K']" />
-        
-    
+ @php + $kbdExample2 = <<<'HTML' + + HTML; + @endphp +

Sizes

Set size to tiny, small (default), or regular.

@@ -41,13 +43,14 @@ Tab -
-        
-            <x-bladewind::kbd size="tiny">Tab</x-bladewind::kbd>
-            <x-bladewind::kbd size="small">Tab</x-bladewind::kbd>
-            <x-bladewind::kbd size="regular">Tab</x-bladewind::kbd>
-        
-    
+ @php + $kbdExample3 = <<<'HTML' + Tab + Tab + Tab + HTML; + @endphp +

Full List Of Attributes

@@ -74,14 +77,15 @@

Kbd with all attributes defined

-
-        
-            <x-bladewind::kbd
+    @php
+        $kbdExample4 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > kbd.blade.php diff --git a/resources/views/docs/laravel8.blade.php b/resources/views/docs/laravel8.blade.php index 7c44a50d..deb9b41d 100644 --- a/resources/views/docs/laravel8.blade.php +++ b/resources/views/docs/laravel8.blade.php @@ -20,15 +20,16 @@ Saving ...    Saving ...

-
-        
-            <x-bladewind.button
+    @php
+        $laravel8Example1 = <<<'HTML'
+            
                 Saving...
-            </x-bladewind.button>
-        
-    
+ + HTML; + @endphp +

This principle is applicable for ALL component attributes that are more than one word. Single word attributes like diff --git a/resources/views/docs/list.blade.php b/resources/views/docs/list.blade.php index a0f8bfbe..26e9e31f 100644 --- a/resources/views/docs/list.blade.php +++ b/resources/views/docs/list.blade.php @@ -42,42 +42,44 @@ -

-        
-<x-bladewind::card no-padding="true">
-    <x-bladewind::listview compact="true">
-        <x-bladewind::listview.item>
-            <x-bladewind::avatar size="small" image="/assets/images/me.jpeg" />
-            <div>
-                <div class="text-sm font-medium text-slate-900 dark:text-slate-200">Michael K. Ocansey</div>
-                <div class="text-sm text-slate-500 truncate">mike@bladewindui.com</div>
-            </div>
-        </x-bladewind::listview.item>
-        <x-bladewind::listview.item>
-            <x-bladewind::avatar size="small" image="AJ" bg_color="orange" />
-            <div>
-                <div class="text-sm font-medium text-slate-900 dark:text-slate-200">Anonymous Jackson</div>
-                <div class="text-sm text-slate-500 truncate">fake@person.com</div>
-            </div>
-        </x-bladewind::listview.item>
-        <x-bladewind::listview.item>
-            <x-bladewind::avatar size="small" image="/assets/images/issah.jpg" />
-            <div>
-                <div class="text-sm font-medium text-slate-900 dark:text-slate-200">Catherine Gerald</div>
-                <div class="text-sm text-slate-500 truncate">kate.gee@gmail.com</div>
-            </div>
-        </x-bladewind::listview.item>
-        <x-bladewind::listview.item>
-            <x-bladewind::avatar size="small" image="/assets/images/audrey.jpeg" />
-            <div>
-                <div class="text-sm font-medium text-slate-900 dark:text-slate-200">Audrey Munyiva</div>
-                <div class="text-sm text-slate-500 truncate">audrey@munyiva.com</div>
-            </div>
-        </x-bladewind::listview.item>
-    </x-bladewind::listview>
-    </x-bladewind::card>
-        
-    
+ @php + $listExample1 = <<<'HTML' + + + + +
+
Michael K. Ocansey
+
mikeBWATSIGNPLACEHOLDERbladewindui.com
+
+
+ + +
+
Anonymous Jackson
+
fakeBWATSIGNPLACEHOLDERperson.com
+
+
+ + +
+
Catherine Gerald
+
kate.geeBWATSIGNPLACEHOLDERgmail.com
+
+
+ + +
+
Audrey Munyiva
+
audreyBWATSIGNPLACEHOLDERmunyiva.com
+
+
+
+
+ HTML; + $listExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $listExample1); + @endphp + The <x-bladewind::listview.item> component creates a flex container. @@ -117,29 +119,32 @@ -
-        
-            <x-bladewind::listview transparent="true">
+    @php
+        $listExample2 = <<<'HTML'
+            
 
-                <x-bladewind::listview.item>
+                
 
-                    <x-bladewind::avatar
+                    
+                    
+
Michael K. Ocansey - </div> - <div class="text-sm text-slate-500 truncate"> - kabutey@gmail.com - </div> - </div> +
+
+ kabuteyBWATSIGNPLACEHOLDERgmail.com +
+
- </x-bladewind::listview.item> +
... - </x-bladewind::listview> -
-
+ + HTML; + $listExample2 = str_replace('BWATSIGNPLACEHOLDER', '@', $listExample2); + @endphp + +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the List View component.

@@ -168,29 +173,31 @@

List View with all attributes defined

-
-        
-            <x-bladewind::listview compact="true" transparent="true" class="bg-yellow-50">
+    @php
+        $listExample3 = <<<'HTML'
+            
 
-                <x-bladewind::listview.item>
+                
 
-                    <x-bladewind::avatar
+                    
+                    
+
Michael K. Ocansey - </div> - <div class="text-sm text-slate-500 truncate"> - kabutey@gmail.com - </div> - </div> +
+
+ kabuteyBWATSIGNPLACEHOLDERgmail.com +
+
- </x-bladewind::listview.item> +
... - </x-bladewind::listview> -
-
+ + HTML; + $listExample3 = str_replace('BWATSIGNPLACEHOLDER', '@', $listExample3); + @endphp + The source files for this component are available in resources > views > components > bladewind > listview > index.blade.php and diff --git a/resources/views/docs/mcp.blade.php b/resources/views/docs/mcp.blade.php index 5efe93aa..79d09455 100644 --- a/resources/views/docs/mcp.blade.php +++ b/resources/views/docs/mcp.blade.php @@ -51,19 +51,20 @@ with the full path to npx on your machine (run which npx in your terminal to find it):

-
-
-{
-  "mcpServers": {
-    "bladewindui": {
-      "command": "/usr/local/bin/npx",
-      // "command": "npx", use this on Windows or if npx is in your PATH
-      "args": ["-y", "mcp-remote", "https://bladewindui.com/mcp/server"]
-    }
-  }
-}
-
-    
+ @php + $mcpExample1 = <<<'HTML' + { + "mcpServers": { + "bladewindui": { + "command": "/usr/local/bin/npx", + // "command": "npx", use this on Windows or if npx is in your PATH + "args": ["-y", "mcp-remote", "https://bladewindui.com/mcp/server"] + } + } + } + HTML; + @endphp +

Save the file and restart Claude Desktop fully (quit and reopen — do not just close the window). Once connected, a hammer icon will appear at the bottom of a new chat showing the available tools. @@ -76,18 +77,19 @@ Open Cursor Settings → MCP and click Add new global MCP server, or edit ~/.cursor/mcp.json directly:

-
-
-{
-  "mcpServers": {
-    "bladewindui": {
-      "type": "http",
-      "url": "https://bladewindui.com/mcp/server"
-    }
-  }
-}
-
-    
+ @php + $mcpExample2 = <<<'HTML' + { + "mcpServers": { + "bladewindui": { + "type": "http", + "url": "https://bladewindui.com/mcp/server" + } + } + } + HTML; + @endphp +

For a project-scoped setup — useful when you want every developer on a team to get BladewindUI context automatically — create .cursor/mcp.json at the root of your Laravel project and commit it to version control. @@ -98,18 +100,19 @@

Open User Settings (JSON) via Cmd/Ctrl + Shift + PPreferences: Open User Settings (JSON) and add:

-
-
-{
-  "github.copilot.chat.mcpServers": {
-    "bladewindui": {
-      "type": "http",
-      "url": "https://bladewindui.com/mcp/server"
-    }
-  }
-}
-
-    
+ @php + $mcpExample3 = <<<'HTML' + { + "github.copilot.chat.mcpServers": { + "bladewindui": { + "type": "http", + "url": "https://bladewindui.com/mcp/server" + } + } + } + HTML; + @endphp +

Available Tools

Once connected, the AI can call three tools against the BladewindUI MCP server:

diff --git a/resources/views/docs/meter.blade.php b/resources/views/docs/meter.blade.php index 8ae2aea0..04a94936 100644 --- a/resources/views/docs/meter.blade.php +++ b/resources/views/docs/meter.blade.php @@ -15,11 +15,12 @@ -
-        
-            <x-bladewind::meter value="72" max="100" low="30" high="70" label="Battery" />
-        
-    
+ @php + $meterExample1 = <<<'HTML' + + HTML; + @endphp +

With no optimum, higher values are assumed to be better: the zone above high is green, below low is red, and the band between @@ -37,11 +38,12 @@ -

-        
-            <x-bladewind::meter value="8" max="100" low="20" high="60" optimum="0" label="Error rate" />
-        
-    
+ @php + $meterExample2 = <<<'HTML' + + HTML; + @endphp +

Without zones

@@ -53,11 +55,12 @@ -

-        
-            <x-bladewind::meter value="640" max="1000" label="Storage used (MB)" />
-        
-    
+ @php + $meterExample3 = <<<'HTML' + + HTML; + @endphp +

Sizes

Set size to tiny, small, medium (default), or large.

@@ -119,9 +122,9 @@

Meter with all attributes defined

-
-        
-            <x-bladewind::meter
+    @php
+        $meterExample4 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > meter.blade.php diff --git a/resources/views/docs/modal.blade.php b/resources/views/docs/modal.blade.php index 52f1da12..9e44bfac 100644 --- a/resources/views/docs/modal.blade.php +++ b/resources/views/docs/modal.blade.php @@ -26,33 +26,34 @@

-
-        
-            <x-bladewind::button
+    @php
+        $modalExample1 = <<<'HTML'
+            
                 Basic modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::button
-                onclick="showModal('tnc-agreement-titled')">
+            
                 Basic modal with a title
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
-                name="tnc-agreement">
+            
                 Please agree to the terms and conditions of
                 the agreement before proceeding.
-            </x-bladewind::modal>
+            
 
-            <x-bladewind::modal
+            
                 Please agree to the terms and conditions of
                 the agreement before proceeding.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

@@ -78,21 +79,22 @@

Info Modal

-
-        
-            <x-bladewind::button onclick="showModal('info')">
+    @php
+        $modalExample2 = <<<'HTML'
+            
                 Info Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 We really think you should buy some Bitcoin
                 despite it's ups and dowms. What sayeth thou?
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Error Modal

This requires that you set type="error" on the modal component. The default icon changes to a red exclamation mark. @@ -100,20 +102,21 @@

Error Modal

-
-        
-            <x-bladewind::button onclick="showModal('error')">
+    @php
+        $modalExample3 = <<<'HTML'
+            
                 Error Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 You do not have permissions to delete this user.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Warning Modal

This requires that you set type="warning" on the modal component. The default icon changes to a yellow bell icon. @@ -121,21 +124,22 @@

Warning Modal

-
-        
-            <x-bladewind::button onclick="showModal('warning')">
+    @php
+        $modalExample4 = <<<'HTML'
+            
                 Warning Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 Hmmm...This is your first warning.
                 Two more warnings and you are off this platform.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Success Modal

This requires that you set type="success" on the modal component. The default icon changes to a green thumbs up icon. @@ -144,20 +148,21 @@ Success Modal

-
-        
-            <x-bladewind::button onclick="showModal('success')">
-                Success Modal
-            </x-bladewind::button>
-
-           <x-bladewind::modal
-                type="success"
-                title="User Deleted"
-                name="success">
-                Yayy.. User deleted successfully
-            </x-bladewind::modal>
-        
-    
+ @php + $modalExample5 = <<<'HTML' + + Success Modal + + + + Yayy.. User deleted successfully + + HTML; + @endphp +

Stretched Action Buttons

Some users prefer to have their action buttons span the entire width of the modal. To achieve this simply set stretched_action_buttons="true" on the modal component. @@ -166,21 +171,22 @@ Stretched Buttons Modal

-
-        
-            <x-bladewind::button onclick="showModal('stretched')">
-                Success Modal
-            </x-bladewind::button>
+    @php
+        $modalExample6 = <<<'HTML'
+             
+                 Success Modal
+             
 
-           <x-bladewind::modal
-                title="Stretched Buttons"
-                stretched_action_buttons="true"
-                name="stretched">
-                The action buttons in this modal have been stretched.
-                This means each button gets its own line. Cool right?
-            </x-bladewind::modal>
-        
-    
+ + The action buttons in this modal have been stretched. + This means each button gets its own line. Cool right? + + HTML; + @endphp +

Backdrop Blur Intensity

@@ -197,21 +203,22 @@ omg blur -

-        
-            <x-bladewind::button onclick="showModal('noblur')">
-                No Blur
-            </x-bladewind::button>
-
-           <x-bladewind::modal
-                title="See Through Me"
-                blur_size="none"
-                name="noblur">
-                The backdrop of this modal is not blurred.
-                You can see all the content behind the backdrop.
-            </x-bladewind::modal>
-        
-    
+ @php + $modalExample7 = <<<'HTML' + + No Blur + + + + The backdrop of this modal is not blurred. + You can see all the content behind the backdrop. + + HTML; + @endphp + There will be eclipse of the moon every couple of years. Just keep looking up, you might see one in action. @@ -287,22 +294,23 @@

Custom Icon Modal

-
-        
-            <x-bladewind::button onclick="showModal('iconic')">
+    @php
+        $modalExample8 = <<<'HTML'
+            
                 Custom Icon Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 The file you are trying to download is very big.
                 Do you still want to continue with the download?
-            </x-bladewind::modal>
-        
-    
+
+ HTML; + @endphp +

You may want to use a custom icon but with one of the predefined states. For example, you may want to display a success modal but you don't like the default check-circle icon used. It is possible to use a custom icon with any of the predefined states. Simply set both the type and icon attributes. @@ -314,23 +322,24 @@

Success

-
-        
-            <x-bladewind::button
-                onclick="showModal('iconic-info')">
+    @php
+        $modalExample9 = <<<'HTML'
+            
                 Info
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 The file you are trying to download is very big.
                 Do you still want to continue with the download?
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Different Sizes

On mobile the modal has just one size @@ -347,20 +356,21 @@

Tiny Modal

-
-        
-            <x-bladewind::button onclick="showModal('tiny-modal')">
+    @php
+        $modalExample10 = <<<'HTML'
+            
                 Tiny Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I am the tiniest in the modal family. Don't hate.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Small Modal

This requires that you set size="small" on the modal component. @@ -368,20 +378,21 @@

Small Modal

-
-        
-            <x-bladewind::button onclick="showModal('small-modal')">
+    @php
+        $modalExample11 = <<<'HTML'
+            
                 Small Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I am the smallest in the modal family. Don't hate.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Medium Modal

This requires that you set size="medium" on the modal component. @@ -390,21 +401,22 @@

Medium Modal

-
-        
-            <x-bladewind::button onclick="showModal('medium-modal')">
+    @php
+        $modalExample12 = <<<'HTML'
+            
                 Medium Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I am the medium sized modal.
                 Also the default if you do not set a size.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Big Modal

This requires that you set size="big" on the modal component. @@ -413,21 +425,22 @@

Big Modal

-
-        
-            <x-bladewind::button onclick="showModal('big-modal')">
+    @php
+        $modalExample13 = <<<'HTML'
+            
                 Big Modal
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I am the medium sized modal.
                 Also the default if you do not set a size.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Large Modal

This requires that you set size="large" on the modal component. @@ -435,21 +448,22 @@

Large Modal

-
-        
-            <x-bladewind::button onclick="showModal('large-modal')">
-                Large Modal
-            </x-bladewind::button>
-
-           <x-bladewind::modal
-                size="large"
-                title="Large Modal"
-                name="large-modal">
-                I am the large modal. If I am not large enough to contain
-                your needs, check out my xl brother.
-            </x-bladewind::modal>
-        
-    
+ @php + $modalExample14 = <<<'HTML' + + Large Modal + + + + I am the large modal. If I am not large enough to contain + your needs, check out my xl brother. + + HTML; + @endphp +

XL Modal

This requires that you set size="xl" on the modal component. @@ -457,21 +471,22 @@

xl Modal

-
-        
-            <x-bladewind::button onclick="showModal('xl-modal')">
-                Xl Modal
-            </x-bladewind::button>
-
-           <x-bladewind::modal
-                size="xl"
-                title="XL Modal"
-                name="xl-modal">
-                I am the extra large modal. How do you like my size now.
-                You could fill me up with some much needed content.
-            </x-bladewind::modal>
-        
-    
+ @php + $modalExample15 = <<<'HTML' + + Xl Modal + + + + I am the extra large modal. How do you like my size now. + You could fill me up with some much needed content. + + HTML; + @endphp +

OMG Modal a.k.a Full Width Modal

This requires that you set size="omg" on the modal component. @@ -479,23 +494,24 @@

omg Modal

-
-        
-            <x-bladewind::button onclick="showModal('omg-modal')">
-                OMG Modal
-            </x-bladewind::button>
-
-           <x-bladewind::modal
-                size="omg"
-                title="Full Width Modal"
-                name="omg-modal">
-                I am the full width modal. My nickname is OMG.
-                I take up the entire screen. I do not know why
-                you will need a modal like this but well, like they say,
-                it is better to have and not use that need and not have.
-            </x-bladewind::modal>
-        
-    
+ @php + $modalExample16 = <<<'HTML' + + OMG Modal + + + + I am the full width modal. My nickname is OMG. + I take up the entire screen. I do not know why + you will need a modal like this but well, like they say, + it is better to have and not use that need and not have. + + HTML; + @endphp +

Modal Size Table

@@ -569,39 +585,41 @@

No cancel button

-
-        
-            <x-bladewind::button onclick="showModal('no-cancel')">
+    @php
+        $modalExample17 = <<<'HTML'
+            
                 No cancel button
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I have no cancel button. Just okay and that is fine.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

No Okay Button

No okay button

-
-        
-            <x-bladewind::button onclick="showModal('no-okay')">
+    @php
+        $modalExample18 = <<<'HTML'
+            
                 No okay button
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I have no okay button.
                 Just cancel this thing and let's all go home.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Hiding Both Action Buttons

@@ -617,20 +635,21 @@ I have no action buttons. Only the backdrop can close me now. -

-        
-            <x-bladewind::button onclick="showModal('no-action-buttons')">
+    @php
+        $modalExample19 = <<<'HTML'
+            
                 No action buttons
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 I have no action buttons. Only the backdrop can close me now.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

Action Button Actions

By default both action buttons close the modal. It is possible to change these default actions. To achieve this you will need to @@ -653,13 +672,13 @@ cancel_button_label="don't delete"> Are you sure you want to delete this user? This action cannot be undone. -

-        
-            <x-bladewind::button onclick="showModal('custom-actions')">
+    @php
+        $modalExample20 = <<<'HTML'
+            
                 CLick me for custom actions
-            </x-bladewind::button>
+            
 
-            <x-bladewind::modal
+            
                 Are you sure you want to delete this user? This action cannot be undone.
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp +

You will notice from the custom actions example above that we introduced the attribute close_after_action="false". @@ -725,33 +745,34 @@ -

-        
-            <x-bladewind::button onclick="showModal('lock-screen')">
-                <svg>...</svg> lock the screen
-            </x-bladewind::button>
+    @php
+        $modalExample21 = <<<'HTML'
+            
+                ... lock the screen
+            
 
-            <x-bladewind::modal
+            
 
-                    <div class="flex mx-auto justify-center my-2">
-                        <x-bladewind.avatar class="" image="/path/to/the/image/file" />
-                    </div>
-                    <div class="my-4">
+                    
+ +
+
You will need to unlock the screen to continue using this application. - </div> +
- <x-bladewind.input + - <x-bladewind::button class="w-full">Check password</x-bladewind::button> + Check password - </x-bladewind::modal> -
-
+ + HTML; + @endphp +

Submitting Form Using Action Button

@@ -789,39 +810,41 @@ } -

-        
+    @php
+        $modalExample22 = <<<'HTML'
             // the modal and its form
-            <x-bladewind::modal
+            
-    
- -
-        
+                >
+
+                
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + Edit Your Profile +
+ + + +
+ + + + + + + HTML; + $modalExample22 = str_replace('BWATSIGNPLACEHOLDER', '@', $modalExample22); + @endphp + + + @php + $modalExample23 = <<<'HTML' // the script called by the Update button saveProfile = () => { if(validateForm('.profile-form')){ @@ -830,8 +853,9 @@ return false; } } -
-
+ HTML; + @endphp +

The "Update" button from the modal above calls a saveProfile() Javascript function when it is clicked on ok_button_action="saveProfile()". In the Javascript function, we validate the profile form @@ -897,75 +921,78 @@ } -

-        
-        // the modal and its form.
-        // take note of the processing and process-complete components
-
-        <x-bladewind::modal
-            backdrop_can_close="false"
-            name="form-mode-ajax"
-
-            ok_button_action="saveProfileAjax()"
-            ok_button_label="Update"
-            close_after_action="false">
-
-            <form method="get" action="" class="profile-form-ajax">
-                @@csrf
-                <b>Edit Your Profile</b>
-                <div class="grid grid-cols-2 gap-4 mt-6">
-                    <x-bladewind::input required="true" name="first_name2"
-                        label="First name" error_message="Please enter your first name" />
-                    <x-bladewind::input required="true" name="last_name2"
-                        label="Last name" error_message="Please enter your last name" />
-                </div>
-                <x-bladewind::input required="true" name="email2"
-                        label="Email address" error_message="Please enter your email" />
-                <x-bladewind::input numeric="true" name="mobile2" label="Mobile" />
-            </form>
-
-            <x-bladewind::processing
-                name="profile-updating"
-                message="Updating your profile." />
-
-            <x-bladewind::process-complete
-                name="profile-update-yes"
-                process_completed_as="passed"
-                button_label="Done"
-                button_action="hideModal('form-mode-ajax')"
-                message="Profile updated successfully." />
-
-        </x-bladewind::modal>
-        
-    
- -
-        
-        // the script called by the Update button
-        saveProfileAjax = () => {
-            if(validateForm('.profile-form-ajax')){
-                // show process indicator while you make your ajax call
-                unhide('.profile-updating');
-                hide('.profile-form-ajax');
-                hideModalActionButtons('form-mode-ajax');
-                // make the call
-                makeAjaxCall(serialize('.profile-form-ajax'));
-            } else {
-                return false;
+    @php
+        $modalExample24 = <<<'HTML'
+            // the modal and its form.
+            // take note of the processing and process-complete components
+
+            
+
+                
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + Edit Your Profile +
+ + +
+ + + + + + + + +
+ HTML; + $modalExample24 = str_replace('BWATSIGNPLACEHOLDER', '@', $modalExample24); + @endphp + + + @php + $modalExample25 = <<<'HTML' + // the script called by the Update button + saveProfileAjax = () => { + if(validateForm('.profile-form-ajax')){ + // show process indicator while you make your ajax call + unhide('.profile-updating'); + hide('.profile-form-ajax'); + hideModalActionButtons('form-mode-ajax'); + // make the call + makeAjaxCall(serialize('.profile-form-ajax')); + } else { + return false; + } } - } - makeAjaxCall = (formData) => { - // this is a dummy function but your real function - // will make a call and post all the data - setTimeout(() => { - // do these when your ajax call is done saving your data - hide('.profile-updating'); - unhide('.profile-update-yes') - }, 5000); - } -
-
+ makeAjaxCall = (formData) => { + // this is a dummy function but your real function + // will make a call and post all the data + setTimeout(() => { + // do these when your ajax call is done saving your data + hide('.profile-updating'); + unhide('.profile-update-yes') + }, 5000); + } + HTML; + @endphp +

The example above follows the same principle as the first, except we submit the form via Ajax. When the Update button is clicked the saveProfileAjax() function is called. @@ -1015,47 +1042,50 @@ } -

-        
-        // the modal and its form.
-        <x-bladewind::modal
-            backdrop_can_close="false"
-            name="form-mode-simple"
-            ok_button_label=""
-            >
-
-            <form method="get" action="" class="profile-form-simple"
-                  onsubmit="return saveProfileSimple()">
-                @@csrf
-                <b>Edit Your Profile</b>
-                <div class="grid grid-cols-2 gap-4 mt-6">
-                    <x-bladewind::input required="true" name="first_name3"
-                        label="First name" error_message="Please enter your first name" />
-                    <x-bladewind::input required="true" name="last_name3"
-                        label="Last name" error_message="Please enter your last name" />
-                </div>
-                <x-bladewind::input required="true" name="email3"
-                        label="Email address" error_message="Please enter your email" />
-                <x-bladewind::input numeric="true" name="mobile3"
-                        label="Mobile" />
-                <x-bladewind::button can_submit="true" class="w-full mt-2">
-                    Update Profile
-                </x-bladewind::button>
-            </form>
-        </x-bladewind::modal>
-        
-    
-
-        
-        // the script called by the Update button
-        saveProfileSimple = () => {
-            if(validateForm('.profile-form-simple')){
-                return domEl('.profile-form-simple').submit();
+    @php
+        $modalExample26 = <<<'HTML'
+            // the modal and its form.
+            
+
+                
+ BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + Edit Your Profile +
+ + +
+ + + + Update Profile + + +
+ HTML; + $modalExample26 = str_replace('BWATSIGNPLACEHOLDER', '@', $modalExample26); + @endphp + + @php + $modalExample27 = <<<'HTML' + // the script called by the Update button + saveProfileSimple = () => { + if(validateForm('.profile-form-simple')){ + return domEl('.profile-form-simple').submit(); + } + return false; } - return false; - } -
-
+ HTML; + @endphp +

The example above sets ok_button_label="" to hide the Okay button. @@ -1107,38 +1137,41 @@ function returns false when validation fails or true if otherwise. That is reall Hey :auth_user, to delete :name, first delete all the pictures they have uploaded -

-        
-        <x-bladewind::modal
-            name="placeholder-example"
-            title="Confirm"
-            type="error">
-            Hey :auth_user, to delete <b>:name</b>,
-            first delete all the pictures they have uploaded
-        </x-bladewind::modal>
-        
-    
-
-        
-<x-bladewind::table>
-    ...
-    <tr>
-        <td>Alfred Rowe</td>
-        <td>Outsourcing</td>
-        <td>alfred@therowe.com</td>
-        <td>
-            <x-bladewind::button
-            size="tiny"
-            color="red"
-            onclick="showModal('placeholder-example', {
-                auth_user: 'mike',
-                name: 'Alfred Rowe'
-            })">Delete</x-bladewind::button></td>
-    </tr>
-    ...
-</x-bladewind::table>
-        
-    
+ @php + $modalExample28 = <<<'HTML' + + Hey :auth_user, to delete :name, + first delete all the pictures they have uploaded + + HTML; + @endphp + + @php + $modalExample29 = <<<'HTML' + + ... +
+ + + + + + ... + + HTML; + $modalExample29 = str_replace('BWATSIGNPLACEHOLDER', '@', $modalExample29); + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Modal component.

@@ -1249,9 +1282,9 @@ function returns false when validation fails or true if otherwise. That is reall

Modal with all attributes defined

-
-        
-            <x-bladewind::modal
+    @php
+        $modalExample30 = <<<'HTML'
+            
                 ...
-            </x-bladewind::modal>
-        
-    
+ + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > modal.blade.php and diff --git a/resources/views/docs/notification.blade.php b/resources/views/docs/notification.blade.php index ac15bd04..a43b16d0 100644 --- a/resources/views/docs/notification.blade.php +++ b/resources/views/docs/notification.blade.php @@ -8,22 +8,24 @@

To use this component simply include it anywhere on your page. If you intend to use this throughout your app it will be best to include the component in say your header page.

-
-        
-            <x-bladewind::notification />
-        
-    
+ @php + $notificationExample1 = <<<'HTML' + + HTML; + @endphp +

Now you can trigger a notification using the javascript helper function. The function accepts four parameters listed below.

-
-        
-            <script>
+    @php
+        $notificationExample2 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
 
     
         
@@ -56,13 +58,14 @@
         
     
 
-    
-        
-            <script>
+    @php
+        $notificationExample3 = <<<'HTML'
+            
+            HTML;
+    @endphp
+    
 

@@ -84,40 +87,41 @@ `Samuel just accepted your invitation to join BladewindUI Inc. Say Hello`, 'info')">info

-
-        
-            <x-bladewind.button
+    @php
+        $notificationExample4 = <<<'HTML'
+            
                 success
-            </x-bladewind.button>  
+              
 
-            <x-bladewind.button
+            
                 error
-            </x-bladewind.button>  
+              
 
-            <x-bladewind.button
+            Upgrade soon`,
+                    'warning')">
                 warning
-            </x-bladewind.button>  
+              
 
-            <x-bladewind.button
+            Say Hello`,
+                    'info')">
                 info
-            </x-bladewind.button>
-        
-    
+ + HTML; + @endphp +

@@ -140,20 +144,21 @@ 'Your message could not be deleted. Try again', 'error', 15, 'regular', 'same_one')">Same Notification  

-
-        
-            <x-bladewind.button
+    @php
+        $notificationExample5 = <<<'HTML'
+            
                 Same Notification
-            </x-bladewind.button>  
-        
-    
+   + HTML; + @endphp +

Full List Of Attributes

The table below shows a comprehensive list of all the attributes available for the Notification component.

@@ -181,11 +186,12 @@

Notification with all attributes defined

-
-        
-            <x-bladewind::notification position="top-right" />
-        
-    
+ @php + $notificationExample6 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > notification.blade.php diff --git a/resources/views/docs/number.blade.php b/resources/views/docs/number.blade.php index 8e899a51..54e5f74f 100644 --- a/resources/views/docs/number.blade.php +++ b/resources/views/docs/number.blade.php @@ -9,16 +9,18 @@
-
-                
-                    <x-bladewind::number  />
-                
-            
-
-                
-                    <x-bladewind::number step="10"  />
-                
-            
+ @php + $numberExample1 = <<<'HTML' + + HTML; + @endphp + + @php + $numberExample2 = <<<'HTML' + + HTML; + @endphp +

The Number component simply extends the BladewindUI Input component by making use of prefix and suffix icons as well as setting numeric="true". @@ -35,26 +37,30 @@

-
-        
-            <x-bladewind::number size="small" />
-        
-    
-
-        
-            <x-bladewind::number size="regular" />
-        
-    
-
-        
-            <x-bladewind::number size="medium" />
-        
-    
-
-        
-            <x-bladewind::number size="big" />
-        
-    
+ @php + $numberExample3 = <<<'HTML' + + HTML; + @endphp + + @php + $numberExample4 = <<<'HTML' + + HTML; + @endphp + + @php + $numberExample5 = <<<'HTML' + + HTML; + @endphp + + @php + $numberExample6 = <<<'HTML' + + HTML; + @endphp +

Button Transparency

@@ -67,16 +73,18 @@

-
-        
-            <x-bladewind::number transparent_icons="false" />
-        
-    
-
-        
-            <x-bladewind::number transparent_icons="false" size="big" />
-        
-    
+ @php + $numberExample7 = <<<'HTML' + + HTML; + @endphp + + @php + $numberExample8 = <<<'HTML' + + HTML; + @endphp +

Labels

It will make sense for users to know what it is you want them to increment or decrease. A field with no label will be quite @@ -84,11 +92,12 @@ Setting a label in this case will move the label text to the top border of the input field.

-
-        
-            <x-bladewind::number label="quantity"  />
-        
-    
+ @php + $numberExample9 = <<<'HTML' + + HTML; + @endphp +

If you don't need to initialize your number component with a default value, you can set @@ -99,11 +108,12 @@ Traditional placeholders don't work in the number component.

-
-        
-            <x-bladewind::number selected_value="" label="quantity"  />
-        
-    
+ @php + $numberExample10 = <<<'HTML' + + HTML; + @endphp +

Minimum and Maximum Limits

Clicking on the up arrow will keep increasing the numbers until you get tired of clicking. You will typically not want that to @@ -117,11 +127,12 @@ when a minimum value is set.

-
-        
-            <x-bladewind::number min="18" max="60" label="Your age"  />
-        
-    
+ @php + $numberExample11 = <<<'HTML' + + HTML; + @endphp +

Form Values

@@ -132,11 +143,12 @@

When your form is submitted, you will be able to retrieve the time as shown below.

-
-        
+    @php
+        $numberExample12 = <<<'HTML'
             $request->age;
-        
-    
+ HTML; + @endphp +

 

Full List Of Attributes

@@ -216,22 +228,23 @@

 

Number with all attributes defined

-
-
-<x-bladewind::number
-    name="age"
-    icon_type="outline"
-    required="false"
-    label="Age"
-    size="big"
-    transparent_icons="true"
-    min="18"
-    max="65"
-    step="10"
-    with_dots="false"
-    selected_value="12" />
-
-
+@php + $numberExample13 = <<<'HTML' + + HTML; + @endphp +

 

diff --git a/resources/views/docs/password-meter.blade.php b/resources/views/docs/password-meter.blade.php index a8a85e85..47a55c52 100644 --- a/resources/views/docs/password-meter.blade.php +++ b/resources/views/docs/password-meter.blade.php @@ -14,12 +14,13 @@ -
-        
-            <x-bladewind::input type="password" name="password" label="Password" viewable="true" />
-            <x-bladewind::password-meter for="password" />
-        
-    
+ @php + $passwordUmeterExample1 = <<<'HTML' + + + HTML; + @endphp +

for is the watched field's name (or, failing that, its id): exactly what you already passed the field itself, nothing extra to keep in @@ -34,11 +35,12 @@ length still matters. Four points is "Strong", one is "Weak", and an empty field shows nothing at all.

-
-        
-            <x-bladewind::password-meter for="password" min-length="10" strong-length="16" />
-        
-    
+ @php + $passwordUmeterExample2 = <<<'HTML' + + HTML; + @endphp +

Hiding the label

@@ -46,11 +48,12 @@ it and rely on the bar's colour alone.

-
-        
-            <x-bladewind::password-meter for="password" show-label="false" />
-        
-    
+ @php + $passwordUmeterExample3 = <<<'HTML' + + HTML; + @endphp +

Full List Of Attributes

@@ -87,16 +90,17 @@

Password Meter with all attributes defined

-
-        
-            <x-bladewind::password-meter
+    @php
+        $passwordUmeterExample4 = <<<'HTML'
+            
-    
+ class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > password-meter.blade.php diff --git a/resources/views/docs/popover.blade.php b/resources/views/docs/popover.blade.php index e6dc3c52..8e59f527 100644 --- a/resources/views/docs/popover.blade.php +++ b/resources/views/docs/popover.blade.php @@ -11,13 +11,14 @@

This is the popover content. You can put any markup here.

-
-        
-            <x-bladewind::popover>
-                <p>This is the popover content. You can put <strong>any markup</strong> here.</p>
-            </x-bladewind::popover>
-        
-    
+ @php + $popoverExample1 = <<<'HTML' + +

This is the popover content. You can put any markup here.

+
+ HTML; + @endphp +

Trigger Icon

@@ -36,13 +37,14 @@

This is triggered by a vertical ellipsis icon.

-
-        
-            <x-bladewind::popover trigger="question-mark-circle-icon">...</x-bladewind::popover>
-            <x-bladewind::popover trigger="bell-icon">...</x-bladewind::popover>
-            <x-bladewind::popover trigger="ellipsis-vertical-icon">...</x-bladewind::popover>
-        
-    
+ @php + $popoverExample2 = <<<'HTML' + ... + ... + ... + HTML; + @endphp +

Custom Trigger Markup

@@ -60,20 +62,21 @@

  • Delete
  • -
    -        
    -            <x-bladewind::popover>
    -                <x-slot:trigger>
    -                    <x-bladewind::button size="small" type="secondary">Options</x-bladewind::button>
    -                </x-slot:trigger>
    -                <ul class="space-y-2 text-sm">
    -                    <li><a href="#">Edit record</a></li>
    -                    <li><a href="#">Duplicate</a></li>
    -                    <li><a href="#">Delete</a></li>
    -                </ul>
    -            </x-bladewind::popover>
    -        
    -    
    + @php + $popoverExample3 = <<<'HTML' + + + Options + + + + HTML; + @endphp +

    Title

    @@ -88,17 +91,18 @@

  • Sign out
  • -
    -        
    -            <x-bladewind::popover title="Account Actions">
    -                <ul class="space-y-2 text-sm">
    -                    <li><a href="#">Edit profile</a></li>
    -                    <li><a href="#">Change password</a></li>
    -                    <li><a href="#">Sign out</a></li>
    -                </ul>
    -            </x-bladewind::popover>
    -        
    -    
    + @php + $popoverExample4 = <<<'HTML' + + + + HTML; + @endphp +

    Position

    @@ -120,14 +124,15 @@

    I open to the right of the trigger.

    -
    -        
    -            <x-bladewind::popover position="top">...</x-bladewind::popover>
    -            <x-bladewind::popover position="bottom">...</x-bladewind::popover>
    -            <x-bladewind::popover position="left">...</x-bladewind::popover>
    -            <x-bladewind::popover position="right">...</x-bladewind::popover>
    -        
    -    
    + @php + $popoverExample5 = <<<'HTML' + ... + ... + ... + ... + HTML; + @endphp +

    Trigger Event

    @@ -138,13 +143,14 @@

    This popover opened on mouseover.

    -
    -        
    -            <x-bladewind::popover triggerOn="mouseover">
    -                <p>This popover opened on mouseover.</p>
    -            </x-bladewind::popover>
    -        
    -    
    + @php + $popoverExample6 = <<<'HTML' + +

    This popover opened on mouseover.

    +
    + HTML; + @endphp +

    Width

    @@ -155,13 +161,14 @@

    This popover is 360px wide, giving more room for longer content.

    -
    -        
    -            <x-bladewind::popover width="360" title="Wider popover">
    -                <p>This popover is 360px wide...</p>
    -            </x-bladewind::popover>
    -        
    -    
    + @php + $popoverExample7 = <<<'HTML' + +

    This popover is 360px wide...

    +
    + HTML; + @endphp +

    Popovers In Scrolling Containers

    @@ -261,28 +268,34 @@

    -
    user_menu.show();
    -user_menu.hide();
    -user_menu.toggle();
    + @php + $popoverExample8 = <<<'HTML' + user_menu.show(); + user_menu.hide(); + user_menu.toggle(); + HTML; + @endphp +

    Popover with all attributes defined

    -
    -        
    -            <x-bladewind::popover
    +    @php
    +        $popoverExample9 = <<<'HTML'
    +            
    -    
    + class="rounded-lg"> + + + HTML; + @endphp +

    Using Popover Inside Livewire

    diff --git a/resources/views/docs/process-indicator.blade.php b/resources/views/docs/process-indicator.blade.php index 67fae666..f51e65cd 100644 --- a/resources/views/docs/process-indicator.blade.php +++ b/resources/views/docs/process-indicator.blade.php @@ -64,61 +64,63 @@ Let's break down what is happening by first looking at the buttons that triggered the modal.

    -
    -        
    -            <x-bladewind::button
    +    @php
    +        $processUindicatorExample1 = <<<'HTML'
    +            
                     Delete Payment and Pass
    -            </x-bladewind::button>
    +            
     
    -            <x-bladewind::button
    +            
                     Delete Payment and Fail
    -            </x-bladewind::button>
    -        
    -    
    + + HTML; + @endphp +

    Next, let's look at the modal element and the two possible process outcomes

    -
    -        
    -            <x-bladewind::modal
    +    @php
    +        $processUindicatorExample2 = <<<'HTML'
    +            
     
                     // this shows that process is in progress
    -                <x-bladewind::processing
    +                
     
                     // this is shown when process completes with a pass
    -                <x-bladewind::process-complete
    +                
     
                     // this is shown when process completes with a failure
    -                <x-bladewind::process-complete
    +                
     
    -            </x-bladewind::modal>
    -        
    -    
    + + HTML; + @endphp +

    Now let's take a look at the Javascript function both buttons are calling.

    -
    -        
    -            <script>
    +    @php
    +        $processUindicatorExample3 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
     
         

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Process Indicator component.

    @@ -221,32 +224,33 @@

    Process Indicator with all attributes defined

    -
    -        
    -            <x-bladewind::processing
    +    @php
    +        $processUindicatorExample4 = <<<'HTML'
    +            
     
                 // this is shown when process completes with a pass
    -            <x-bladewind::process-complete
    +            
     
                 // this is shown when process completes with a failure
    -            <x-bladewind::process-complete
    +            
    -    
    + message="Pending payment could not be deleted" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > processing.blade.php diff --git a/resources/views/docs/progress-bar.blade.php b/resources/views/docs/progress-bar.blade.php index d601acb2..da36d13c 100644 --- a/resources/views/docs/progress-bar.blade.php +++ b/resources/views/docs/progress-bar.blade.php @@ -10,11 +10,12 @@

    -
    -        
    -            <x-bladewind::progress-bar percentage="36" />
    -        
    -    
    + @php + $progressUbarExample1 = <<<'HTML' + + HTML; + @endphp +

    The progress bar percentage is not displayed by default. To display it, set the attribute show_percentage_label="true". @@ -23,11 +24,12 @@

    -
    -        
    -            <x-bladewind::progress-bar percentage="36" show_percentage_label="true" />
    -        
    -    
    + @php + $progressUbarExample2 = <<<'HTML' + + HTML; + @endphp +

    If you prefer to have the percentage out of the bar, set show_percentage_label_inline="false". @@ -43,28 +45,30 @@

    -
    -        
    -            <x-bladewind::progress-bar
    +    @php
    +        $progressUbarExample3 = <<<'HTML'
    +            
    -    
    + show_percentage_label="true" /> + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar
    +    @php
    +        $progressUbarExample4 = <<<'HTML'
    +            
    -    
    + show_percentage_label="true" /> + HTML; + @endphp +

    You may want to append a suffix or prepend a prefix to the percentage label to achieve things like 53% complete or Upload in progress: 53% complete. Depending on your needs you can set percentage_prefix and/or percentage_suffix. @@ -74,15 +78,16 @@ show_percentage_label_inline="false" percentage_suffix="complete" />

    -
    -        
    -            <x-bladewind::progress-bar
    +    @php
    +        $progressUbarExample5 = <<<'HTML'
    +            
    -    
    + show_percentage_label="true" /> + HTML; + @endphp +

    Different Colours

    @@ -91,193 +96,219 @@

    Faint Colours

    -
    -            
    -                <x-bladewind::progress-bar percentage="10" color="red" />
    -            
    -        
    + @php + $progressUbarExample6 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="20" color="yellow"/>
    -        
    -    
    + @php + $progressUbarExample7 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="30" color="green" />
    -        
    -    
    + @php + $progressUbarExample8 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="40" color="pink" />
    -        
    -    
    + @php + $progressUbarExample9 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="50" color="cyan" />
    -        
    -    
    + @php + $progressUbarExample10 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="60" color="gray" />
    -        
    -    
    + @php + $progressUbarExample11 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="70" color="purple" />
    -        
    -    
    + @php + $progressUbarExample12 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" color="orange" />
    -        
    -    
    + @php + $progressUbarExample13 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" color="violet" />
    -        
    -    
    + @php + $progressUbarExample14 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" color="fuchsia" />
    -        
    -    
    + @php + $progressUbarExample15 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" color="indigo" />
    -        
    -    
    + @php + $progressUbarExample16 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="90" />
    -        
    -    
    + @php + $progressUbarExample17 = <<<'HTML' + + HTML; + @endphp +

    Dark Colours

    -
    -            
    -                <x-bladewind::progress-bar percentage="50" shade="dark" color="red" />
    -            
    -        
    + @php + $progressUbarExample18 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="20" shade="dark" color="yellow" />
    -            
    -        
    + @php + $progressUbarExample19 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="30" shade="dark" color="green" />
    -            
    -        
    + @php + $progressUbarExample20 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="40" shade="dark" color="pink" />
    -            
    -        
    + @php + $progressUbarExample21 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="50" shade="dark" color="cyan" />
    -            
    -        
    + @php + $progressUbarExample22 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="60" shade="dark" color="gray" />
    -            
    -        
    + @php + $progressUbarExample23 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::progress-bar percentage="70" shade="dark" color="purple" />
    -            
    -        
    + @php + $progressUbarExample24 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" shade="dark" color="orange" />
    -        
    -    
    + @php + $progressUbarExample25 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" shade="dark" color="violet" />
    -        
    -    
    + @php + $progressUbarExample26 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" shade="dark" color="indigo" />
    -        
    -    
    + @php + $progressUbarExample27 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::progress-bar percentage="80" shade="dark" color="fuchsia" />
    -        
    -    
    + @php + $progressUbarExample28 = <<<'HTML' + + HTML; + @endphp +
    -
    -        
    -            <x-bladewind::progress-bar percentage="90" shade="dark" />
    -        
    -    
    + @php + $progressUbarExample29 = <<<'HTML' + + HTML; + @endphp +

    Striped and Animated

    -
    -        
    -            <x-bladewind::progress-bar percentage="60" shade="dark" color="red" striped="true" />
    -        
    -    
    + @php + $progressUbarExample30 = <<<'HTML' + + HTML; + @endphp +
    -
    -
    -    <x-bladewind::progress-bar
    -        percentage="50"
    -        shade="dark"
    -        color="violet"
    -        striped="true"
    -        animated="true" />
    -
    -
    +@php + $progressUbarExample31 = <<<'HTML' + + HTML; + @endphp + {{--

    Dynamic Progression

    @@ -360,22 +391,23 @@

    Progress Bar with all attributes defined

    -
    -
    -<x-bladewind::progress-bar
    -    percentage="50"
    -    color="red"
    -    show_percentage_label="false"
    -    show_percentage_label_inline="true"
    -    percentage_label_position="top-left"
    -    shade="faint"
    -    percentage_prefix="uploading content: "
    -    percentage_suffix="completed"
    -    striped="true"
    -    animated="true"
    -    class="m-0" />
    -
    -
    +@php + $progressUbarExample32 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > progress-bar.blade.php diff --git a/resources/views/docs/progress-circle.blade.php b/resources/views/docs/progress-circle.blade.php index 2bd408d5..9f8bf712 100644 --- a/resources/views/docs/progress-circle.blade.php +++ b/resources/views/docs/progress-circle.blade.php @@ -14,11 +14,12 @@

    -
    -        
    -            <x-bladewind::progress-circle percentage="45" />
    -        
    -    
    + @php + $progressUcircleExample1 = <<<'HTML' + + HTML; + @endphp +

    By default the progress circle label is not displayed. That can be changed by setting show_label="true". @@ -28,17 +29,21 @@

    -
    -        <x-bladewind::progress-circle percentage="58" show_label="true" />
    -    
    -
    -        
    -            <x-bladewind::progress-circle
    +    @php
    +        $progressUcircleExample2 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $progressUcircleExample3 = <<<'HTML'
    +            
    -    
    + show_percent="true" /> + HTML; + @endphp +

    Different Colours

    @@ -61,12 +66,13 @@


    Fuchsia

    -

    -            
    -                <x-bladewind::progress-circle percentage="10" color="red" />
    -                ...
    -            
    -        
    + @php + $progressUcircleExample4 = <<<'HTML' + + ... + HTML; + @endphp +

    Dark Colours

    @@ -85,16 +91,17 @@

    Fuchsia

    -

    -            
    -                <x-bladewind::progress-circle
    -                    percentage="10"
    -                    shade="dark"
    -                    color="red" />
    +        @php
    +        $progressUcircleExample5 = <<<'HTML'
    +            
     
    -                ...
    -            
    -        
    + ... + HTML; + @endphp +

    Different Sizes

    @@ -110,15 +117,16 @@


    Large

    -

    -            
    -                <x-bladewind::progress-circle
    -                    size="tiny"
    -                    percentage="10" />
    +        @php
    +        $progressUcircleExample6 = <<<'HTML'
    +            
     
    -                ...
    -            
    -        
    + ... + HTML; + @endphp +

    Custom Sizes

    @@ -162,13 +170,14 @@

    -

    -            
    -                <x-bladewind::progress-circle
    -                    size="400"
    -                    percentage="89" />
    -            
    -        
    + @php + $progressUcircleExample7 = <<<'HTML' + + HTML; + @endphp +

    You will notice from the example above the circle width is quite thin for a circle that big. To increase the width of the circle set @@ -179,14 +188,15 @@

    -

    -            
    -                <x-bladewind::progress-circle
    -                    size="400"
    -                    circle_width="50"
    -                    percentage="89" />
    -            
    -        
    + @php + $progressUcircleExample8 = <<<'HTML' + + HTML; + @endphp +

    Things get a bit quirky when you need to display labels in custom circles. Again, because the circle size is unknown, @@ -199,20 +209,21 @@ size="400" circle_width="50" show_label="true" show_percent="true" />

    -

    -            
    -                <x-bladewind::progress-circle
    -                    percentage="73"
    -                    size="400"
    -                    circle_width="50"
    -                    text_size="50"
    -                    align="100"
    -                    valign="0"
    -                    show_label="true"
    -                    show_percent="true"
    -                />
    -            
    -        
    + @php + $progressUcircleExample9 = <<<'HTML' + + HTML; + @endphp +

    See the table below for the definitions of the attributes used above. @@ -287,22 +298,23 @@

    Progress Circle with all attributes defined

    -
    -
    -    <x-bladewind::progress-circle
    -        percentage = "50"
    -        color = "red",
    -        show_label = "false",
    -        show_percent = "false",
    -        animate = "true",
    -        size="medium"
    -        circle_width="50"
    -        text_size="50"
    -        align="100"
    -        valign="0"
    -        shade = "faint" />
    -
    -
    +@php + $progressUcircleExample10 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > progress-circle.blade.php diff --git a/resources/views/docs/radiobutton.blade.php b/resources/views/docs/radiobutton.blade.php index bb4337f6..6288c55b 100644 --- a/resources/views/docs/radiobutton.blade.php +++ b/resources/views/docs/radiobutton.blade.php @@ -9,11 +9,12 @@ -
    -        
    -            <x-bladewind::radio name="tnc"  />
    -        
    -    
    + @php + $radiobuttonExample1 = <<<'HTML' + + HTML; + @endphp +

    What kind of movies do you like?

    @@ -21,36 +22,39 @@ -
    -
    -    <x-bladewind::radio label="Action" name="genre"  />
    -    <x-bladewind::radio label="Comedy" name="genre"  />
    -    <x-bladewind::radio label="Drama" name="genre"  />
    -    <x-bladewind::radio label="Thriller" name="genre" />
    -
    -
    +@php + $radiobuttonExample2 = <<<'HTML' + + + + + HTML; + @endphp + -
    -
    -    <x-bladewind::radio
    -        label="I am checked by default"
    -        checked="true"
    -        name="check_me"  />
    -
    -
    +@php + $radiobuttonExample3 = <<<'HTML' + + HTML; + @endphp +    -
    -
    -    <x-bladewind::radio
    -        label="I am disabled"
    -        disabled="true"  />
    -
    -
    +@php + $radiobuttonExample4 = <<<'HTML' + + HTML; + @endphp +

    Coloured Checkboxes

    @@ -71,69 +75,70 @@ -

    -        
    -            <x-bladewind::radio
    +    @php
    +        $radiobuttonExample5 = <<<'HTML'
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
     
    -            <x-bladewind::radio
    +            
    -    
    + label="I am a fuchsia radio" /> + HTML; + @endphp +

    Radio buttons and forms

    @@ -143,14 +148,15 @@

    -
    -        
    -<x-bladewind::radio
    -            name="notify_me"
    -            value="1"
    -            label="Send me weekly newsletters" />
    -        
    -    
    + @php + $radiobuttonExample6 = <<<'HTML' + + HTML; + @endphp +

    Laravel Form State

    When validation fails, Laravel redirects back with the submitted values flashed to the @@ -158,16 +164,17 @@ can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

    -
    -        
    -<x-bladewind::radio
    -    name="plan"
    -    value="pro"
    -    label="Pro"
    -    fill_from_old="true"
    -    show_validation_error="true" />
    -        
    -    
    + @php + $radiobuttonExample7 = <<<'HTML' + + HTML; + @endphp +

    fill_from_old repopulates the field from old(). show_validation_error gives @@ -187,16 +194,17 @@ Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

    -
    -        
    -// config/bladewind.php
    -'forms' => [
    -    'fill_from_old' => true,
    -    'show_validation_error' => true,
    -    'error_bag' => null,
    -],
    -        
    -    
    + @php + $radiobuttonExample8 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

    An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -290,18 +298,19 @@

    Radio button with all attributes defined

    -
    -        
    -            <x-bladewind::radio
    +    @php
    +        $radiobuttonExample9 = <<<'HTML'
    +            
    -    
    + class="shadow-sm" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > radio.blade.php diff --git a/resources/views/docs/rating.blade.php b/resources/views/docs/rating.blade.php index f5cd2aab..0d68d6aa 100644 --- a/resources/views/docs/rating.blade.php +++ b/resources/views/docs/rating.blade.php @@ -8,213 +8,234 @@ You can either display ratings as stars, hearts or thumbsup.

    -
    -            
    -                <x-bladewind::rating name="star-rating" />
    -            
    -        
    + @php + $ratingExample1 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    type="heart"
    -                    name="heart-rating" />
    -            
    -        
    + @php + $ratingExample2 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    type="thumbsup"
    -                    name="thumb-rating" />
    -            
    -        
    + @php + $ratingExample3 = <<<'HTML' + + HTML; + @endphp +

    Different Colors

    The BladewindUI tag component allows you to specify different colours. The tags by default are faint in colour with blue being the default colour. There are nine colour options to pick from.

    -
    -            
    -                <x-bladewind::rating
    -                    rating="1"
    -                    color="red"
    -                    name="red-rating" />
    -            
    -        
    + @php + $ratingExample4 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="2"
    -                    color="yellow"
    -                    name="yellow-rating" />
    -            
    -        
    + @php + $ratingExample5 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="3"
    -                    color="green"
    -                    name="green-rating" />
    -            
    -        
    + @php + $ratingExample6 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="4"
    -                    color="blue"
    -                    name="blue-rating" />
    -            
    -        
    + @php + $ratingExample7 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="5"
    -                    color="pink"
    -                    name="pink-rating" />
    -            
    -        
    + @php + $ratingExample8 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="1"
    -                    color="cyan"
    -                    name="cyan-rating" />
    -            
    -        
    + @php + $ratingExample9 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating name="orange-rating" />
    -            
    -        
    + @php + $ratingExample10 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="3"
    -                    color="gray"
    -                    name="gray-rating" />
    -            
    -        
    + @php + $ratingExample11 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="4"
    -                    color="purple"
    -                    name="purple-rating" />
    -            
    -        
    + @php + $ratingExample12 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="4"
    -                    color="violet"
    -                    name="violet-rating" />
    -            
    -        
    + @php + $ratingExample13 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="4"
    -                    color="indigo"
    -                    name="indigo-rating" />
    -            
    -        
    + @php + $ratingExample14 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    rating="4"
    -                    color="fuchsia"
    -                    name="fuchsia-rating" />
    -            
    -        
    + @php + $ratingExample15 = <<<'HTML' + + HTML; + @endphp +

    Different Sizes

    The BladewindUI rating component comes not just in colors but also sizes. There are three sizes available. The default size is small

    -
    -            
    -                <x-bladewind::rating rating="2" name="small-rating" />
    -            
    -        
    + @php + $ratingExample16 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    size="medium"
    -                    type="thumbsup"
    -                    rating="3"
    -                    name="medium-rating" />
    -            
    -        
    + @php + $ratingExample17 = <<<'HTML' + + HTML; + @endphp +

    -
    -            
    -                <x-bladewind::rating
    -                    size="big"
    -                    type="heart"
    -                    rating="2"
    -                    name="big-rating" />
    -            
    -        
    + @php + $ratingExample18 = <<<'HTML' + + HTML; + @endphp +

    Click Actions

    A hidden input field is created in the background with every rating component that is created. Again, the input field uses the name attribute set for the rating component to uniquely identify and update the hidden input. Assuming you named your rating component small-rating, the following hidden input will be created. The name is prefixed with rating-value- so the resulting name will be rating-value-small-rating

    -
    -            
    -                <input type="hidden" class="rating-value-small-rating" value="2" />
    -            
    -        
    + @php + $ratingExample19 = <<<'HTML' + + HTML; + @endphp +

    You can now access this element via Javascript using the custom function you pass to the onclick. Let us assume you have a Javascript function called saveRating that accepts a parameter of which rating component you wish to save. We can end up with the following.

    -
    -            
    -                <x-bladewind::rating
    -                    rating="2"
    -                    name="small-rating"
    -                    onclick="saveRating('small-rating')" />
    -            
    -        
    -
    -            
    -                <script>
    -                    saveRating = function(element) {
    +        @php
    +        $ratingExample20 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
    +        @php
    +        $ratingExample21 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
         

    Disabled Click Actions

    In designs we are not always asking users to rate. There are times the user has already rated, and we need to display the ratings as readonly. @@ -223,11 +244,12 @@

    -
    -        
    -            <x-bladewind::rating rating="4" clickable="false" />
    -        
    -    
    + @php + $ratingExample22 = <<<'HTML' + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Rating component.

    @@ -285,18 +307,19 @@

    Rating with all attributes defined

    -
    -        
    -            <x-bladewind::rating
    +    @php
    +        $ratingExample23 = <<<'HTML'
    +            
    -    
    + onclick="alert('you clicked on a star')" /> + HTML; + @endphp +

    Using Rating Inside Livewire

    diff --git a/resources/views/docs/releasing.blade.php b/resources/views/docs/releasing.blade.php index 5e51ea59..3b909425 100644 --- a/resources/views/docs/releasing.blade.php +++ b/resources/views/docs/releasing.blade.php @@ -39,16 +39,17 @@ The monorepo root is named bladewindui/ui and declares type: library so that downstream projects can depend on it directly via a Composer path repository during local development:

    -
    -
    -"repositories": {
    -    "bladewindui/ui": {
    -        "type": "path",
    -        "url": "/path/to/bladewindui"
    -    }
    -}
    -
    -    
    + @php + $releasingExample1 = <<<'HTML' + "repositories": { + "bladewindui/ui": { + "type": "path", + "url": "/path/to/bladewindui" + } + } + HTML; + @endphp +

    The replace block tells Composer that installing the root package also satisfies every sub-package requirement (e.g. bladewindui/button ^5.0), so no network calls are made @@ -123,18 +124,25 @@ next composer update — no code changes needed. When convenient, update your own composer.json:

    -
    --        "mkocansey/bladewind": "^4.3"
    -+        "bladewindui/bladewindui": "^4.4"
    -    
    + @php + $releasingExample2 = <<<'HTML' + - "mkocansey/bladewind": "^4.3" + + "bladewindui/bladewindui": "^4.4" + HTML; + @endphp +

    The one thing that can silently break: a hardcoded vendor path. If your app scans BladeWind's own templates for Tailwind utilities:

    -
    --@source '../../vendor/mkocansey/bladewind/packages';
    -+@source '../../vendor/bladewindui/bladewindui/packages';
    -    
    + @php + $releasingExample3 = <<<'HTML' + -BWATSIGNPLACEHOLDERsource '../../vendor/mkocansey/bladewind/packages'; + +BWATSIGNPLACEHOLDERsource '../../vendor/bladewindui/bladewindui/packages'; + HTML; + $releasingExample3 = str_replace('BWATSIGNPLACEHOLDER', '@', $releasingExample3); + @endphp +

    Missing this doesn't error — the build just stops generating those utility classes and styles quietly disappear. Same risk for deploy scripts, IDE helper config, and static analysis paths reaching into @@ -154,81 +162,82 @@ There are 55 split repos in total, one per packages/* directory, plus the full-install meta package which is not split (see above):

    -
    -
    -# Foundation
    -bladewindui/core
    -bladewindui/icon
    -bladewindui/script
    -bladewindui/spinner
    -bladewindui/button
    -bladewindui/alert
    -bladewindui/bell
    -bladewindui/notification
    -bladewindui/modal
    -bladewindui/drawer
    -bladewindui/table
    -bladewindui/data-grid
    -
    -# Forms leaf packages
    -bladewindui/input
    -bladewindui/textarea
    -bladewindui/select
    -bladewindui/checkbox
    -bladewindui/radio
    -bladewindui/toggle
    -bladewindui/datepicker
    -bladewindui/timepicker
    -bladewindui/colorpicker
    -bladewindui/filepicker
    -bladewindui/slider
    -bladewindui/checkcards
    -bladewindui/number
    -bladewindui/code
    -
    -# Forms aggregate (metapackage)
    -bladewindui/forms
    -
    -# Content leaf packages
    -bladewindui/card
    -bladewindui/contact-card
    -bladewindui/avatar
    -bladewindui/accordion
    -bladewindui/tag
    -bladewindui/timeline
    -bladewindui/statistic
    -bladewindui/rating
    -bladewindui/horizontal-line-graph
    -bladewindui/empty-state
    -bladewindui/centered-content
    -bladewindui/chart
    -bladewindui/progress
    -bladewindui/listview
    -bladewindui/tooltip
    -bladewindui/popover
    -bladewindui/sortable
    -bladewindui/calendar
    -
    -# Content aggregate (metapackage)
    -bladewindui/content
    -
    -# Navigation leaf packages
    -bladewindui/breadcrumbs
    -bladewindui/sidebar
    -bladewindui/command-palette
    -bladewindui/stepper
    -bladewindui/tab
    -bladewindui/dropmenu
    -bladewindui/pagination
    -bladewindui/theme-switcher
    -
    -# Navigation aggregate (metapackage)
    -bladewindui/navigation
    -
    -# Full-install meta package, NOT split, sourced directly from this monorepo
    -bladewindui/ui                ← maps to packages/meta/
    -
    -    
    + @php + $releasingExample4 = <<<'HTML' + # Foundation + bladewindui/core + bladewindui/icon + bladewindui/script + bladewindui/spinner + bladewindui/button + bladewindui/alert + bladewindui/bell + bladewindui/notification + bladewindui/modal + bladewindui/drawer + bladewindui/table + bladewindui/data-grid + + # Forms leaf packages + bladewindui/input + bladewindui/textarea + bladewindui/select + bladewindui/checkbox + bladewindui/radio + bladewindui/toggle + bladewindui/datepicker + bladewindui/timepicker + bladewindui/colorpicker + bladewindui/filepicker + bladewindui/slider + bladewindui/checkcards + bladewindui/number + bladewindui/code + + # Forms aggregate (metapackage) + bladewindui/forms + + # Content leaf packages + bladewindui/card + bladewindui/contact-card + bladewindui/avatar + bladewindui/accordion + bladewindui/tag + bladewindui/timeline + bladewindui/statistic + bladewindui/rating + bladewindui/horizontal-line-graph + bladewindui/empty-state + bladewindui/centered-content + bladewindui/chart + bladewindui/progress + bladewindui/listview + bladewindui/tooltip + bladewindui/popover + bladewindui/sortable + bladewindui/calendar + + # Content aggregate (metapackage) + bladewindui/content + + # Navigation leaf packages + bladewindui/breadcrumbs + bladewindui/sidebar + bladewindui/command-palette + bladewindui/stepper + bladewindui/tab + bladewindui/dropmenu + bladewindui/pagination + bladewindui/theme-switcher + + # Navigation aggregate (metapackage) + bladewindui/navigation + + # Full-install meta package, NOT split, sourced directly from this monorepo + bladewindui/ui ← maps to packages/meta/ + HTML; + @endphp +

    2. Add the GitHub Actions secret

    @@ -290,31 +299,32 @@

    Day-to-day Release Flow

    -
    -
    -# 1. Make sure you're on main and everything is committed
    -git checkout main && git pull
    -
    -# 2. Install monorepo-builder (first time only)
    -composer install
    -
    -# 3. Validate all package composer.json files are consistent
    -vendor/bin/monorepo-builder validate
    -
    -# 4. Release. This command does everything:
    -#    a) bumps all inter-package version constraints to the new version
    -#    b) commits the change
    -#    c) tags the monorepo commit as vX.Y.Z
    -#    d) pushes the tag to GitHub
    -#    → GitHub Actions split-packages.yml fires automatically
    -#    → each packages/* directory is pushed to its read-only repo
    -#    → the same tag is applied to each split repo
    -#    → Packagist picks up the new release via webhook
    -vendor/bin/monorepo-builder release v5.0.0
    -
    -# 5. Done. Monitor the Actions tab to confirm all 55 splits succeeded.
    -
    -    
    + @php + $releasingExample5 = <<<'HTML' + # 1. Make sure you're on main and everything is committed + git checkout main && git pull + + # 2. Install monorepo-builder (first time only) + composer install + + # 3. Validate all package composer.json files are consistent + vendor/bin/monorepo-builder validate + + # 4. Release. This command does everything: + # a) bumps all inter-package version constraints to the new version + # b) commits the change + # c) tags the monorepo commit as vX.Y.Z + # d) pushes the tag to GitHub + # → GitHub Actions split-packages.yml fires automatically + # → each packages/* directory is pushed to its read-only repo + # → the same tag is applied to each split repo + # → Packagist picks up the new release via webhook + vendor/bin/monorepo-builder release v5.0.0 + + # 5. Done. Monitor the Actions tab to confirm all 55 splits succeeded. + HTML; + @endphp + If development has moved ahead of main since the last release, merge development into main first. A leaf package @@ -338,26 +348,33 @@

    Every component is a standalone leaf package that users can install individually:

    -
    -
    -composer require bladewindui/accordion   # just accordion
    -composer require bladewindui/table       # just table (pulls exact deps)
    -
    -    
    + @php + $releasingExample6 = <<<'HTML' + composer require bladewindui/accordion # just accordion + composer require bladewindui/table # just table (pulls exact deps) + HTML; + @endphp +

    Three aggregate metapackages bundle related components for convenience:

    -
    -
    -composer require bladewindui/forms       # all form components
    -composer require bladewindui/content     # all content components
    -composer require bladewindui/navigation  # all navigation components
    -
    -    
    + @php + $releasingExample7 = <<<'HTML' + composer require bladewindui/forms # all form components + composer require bladewindui/content # all content components + composer require bladewindui/navigation # all navigation components + HTML; + @endphp +

    The full install meta-package pulls everything:

    -
    composer require bladewindui/ui                  # the whole library
    + @php + $releasingExample8 = <<<'HTML' + composer require bladewindui/ui # the whole library + HTML; + @endphp +

    Aggregate packages are type: metapackage. They contain no code, only a require list.

    @@ -383,11 +400,12 @@
  • Add a matrix entry to .github/workflows/split-packages.yml: -
    -
    -- { local_path: 'packages/<name>', split_repository: '<name>' }
    -
    -            
    + @php + $releasingExample9 = <<<'HTML' + - { local_path: 'packages/', split_repository: '' } + HTML; + @endphp +
  • If the component belongs to a group (forms, content, navigation), add it to the relevant packages/<group>/composer.json require.
  • Add it to packages/meta/composer.json require (or it will be pulled in transitively through the group).
  • @@ -402,43 +420,44 @@ Use this exact pattern. The is_dir() guards prevent errors when a package has no CSS or no public/ directory:

    -
    -
    -<?php
    -
    -namespace Mkocansey\Bladewind\<Name>;
    -
    -use Illuminate\Support\ServiceProvider;
    -
    -class Bladewind<Name>ServiceProvider extends ServiceProvider
    -{
    -    public function register(): void
    -    {
    -        $this->mergeConfigFrom(__DIR__.'/../config/bladewind.php', 'bladewind');
    -    }
    -
    -    public function boot(): void
    -    {
    -        $this->loadViewsFrom(__DIR__.'/../resources/views', 'bladewind');
    -
    -        $this->publishes([
    -            __DIR__.'/../resources/views/components/' => resource_path('views/components/bladewind'),
    -        ], 'bladewind-components');
    -
    -        $bladewindPublicPaths = [];
    -        if (is_dir(__DIR__.'/../resources/assets/css')) {
    -            $bladewindPublicPaths[__DIR__.'/../resources/assets/css/'] = public_path('vendor/bladewind/css');
    -        }
    -        if (is_dir(__DIR__.'/../public')) {
    -            $bladewindPublicPaths[__DIR__.'/../public/'] = public_path('vendor/bladewind');
    -        }
    -        if (!empty($bladewindPublicPaths)) {
    -            $this->publishes($bladewindPublicPaths, 'bladewind-public');
    -        }
    -    }
    -}
    -
    -    
    + @php + $releasingExample10 = <<<'HTML' + ; + + use Illuminate\Support\ServiceProvider; + + class BladewindServiceProvider extends ServiceProvider + { + public function register(): void + { + $this->mergeConfigFrom(__DIR__.'/../config/bladewind.php', 'bladewind'); + } + + public function boot(): void + { + $this->loadViewsFrom(__DIR__.'/../resources/views', 'bladewind'); + + $this->publishes([ + __DIR__.'/../resources/views/components/' => resource_path('views/components/bladewind'), + ], 'bladewind-components'); + + $bladewindPublicPaths = []; + if (is_dir(__DIR__.'/../resources/assets/css')) { + $bladewindPublicPaths[__DIR__.'/../resources/assets/css/'] = public_path('vendor/bladewind/css'); + } + if (is_dir(__DIR__.'/../public')) { + $bladewindPublicPaths[__DIR__.'/../public/'] = public_path('vendor/bladewind'); + } + if (!empty($bladewindPublicPaths)) { + $this->publishes($bladewindPublicPaths, 'bladewind-public'); + } + } + } + HTML; + @endphp +

     

     

    diff --git a/resources/views/docs/rtl.blade.php b/resources/views/docs/rtl.blade.php index 457a203a..40e8cbcb 100644 --- a/resources/views/docs/rtl.blade.php +++ b/resources/views/docs/rtl.blade.php @@ -7,20 +7,22 @@ and their equivalent display in rtl mode. This page has already set the rtl directive.

    Buttons With Icons

    -
    -        
    -            <x-bladewind::button>Save User</x-bladewind::button>
    -        
    -    
    + @php + $rtlExample1 = <<<'HTML' + <x-bladewind::button>Save User + HTML; + @endphp +

    Once you publish the BladewindUI components, the files get moved to the resources > views > components > bladewind directory. You can then use the dot, instead of the colon syntax to access a component.

    -
    -        
    -            <x-bladewind.button>Save User</x-bladewind.button>
    -        
    -    
    + @php + $rtlExample2 = <<<'HTML' + <x-bladewind.button>Save User + HTML; + @endphp +

    Getting rid of the bladewind prefix

    It is possible to use any of the BladewindUI components without the bladewind prefix. This <x-bladewind.button>Save User</x-bladewind.button> becomes <x-button>Save User</x-button>. @@ -38,48 +40,55 @@

    BladewindUI defines its dark mode colours, primary and secondary button colours, colours for the alert and notification components in its tailwind.config.js file.

    -
    -    
    -        // your-project/vendor/bladewindui/ui/tailwind.config.js
    -  theme: {
    -    extend: {
    -      colors: {
    -        primary: colors.blue,
    -        secondary: colors.slate,
    -        dark: colors.slate,
    -        success: colors.emerald,
    -        error: colors.red,
    -        warning: colors.amber,
    -        info: colors.blue
    -      }
    -},
    -    
    -    
    + @php + $rtlExample3 = <<<'HTML' + // your-project/vendor/bladewindui/ui/tailwind.config.js + theme: { + extend: { + colors: { + primary: colors.blue, + secondary: colors.slate, + dark: colors.slate, + success: colors.emerald, + error: colors.red, + warning: colors.amber, + info: colors.blue + } + }, + HTML; + @endphp +

    To change the colours used above, simply define overwriting values in your project's tailwind.config.js.

    -
    -    
    -        // your-project/tailwind.config.js
    -  theme: {
    -    extend: {
    -      colors: {
    -        primary: colors.indigo,
    -        secondary: colors.zinc,
    -        dark: colors.gray,
    -        success: colors.green,
    -        error: colors.rose,
    -        warning: colors.orange,
    -        info: colors.blue
    -      }
    -},
    -    
    -    
    + @php + $rtlExample4 = <<<'HTML' + // your-project/tailwind.config.js + theme: { + extend: { + colors: { + primary: colors.indigo, + secondary: colors.zinc, + dark: colors.gray, + success: colors.green, + error: colors.rose, + warning: colors.orange, + info: colors.blue + } + }, + HTML; + @endphp +

    Following the changes above, now all your primary buttons will use the indigo colour palette instead of blue. Dark mode will use the gray palette instead of slate.

    If you are feeling geeky

    The changes to the Tailwind config should be enough to get you your right colours. If however, for some reason you are in your geeky elements and prefer to access all the uncompiled BladewindUI CSS files, you can run the command below.

    -
    php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-assets --force
    + @php + $rtlExample5 = <<<'HTML' + php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-assets --force + HTML; + @endphp +

    You should now have in your public directory, a vendor > bladewind > assets folder containing all the uncompiled tailwind css files. You can modify these files to suit your theme specification. @@ -97,7 +106,12 @@

    Updates that touch the css and js files require the library's assets to be republished. Run the command below to republish the library's css and js files.

    -
    php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-public --force
    + @php + $rtlExample6 = <<<'HTML' + php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-public --force + HTML; + @endphp +

    To prevent any changes you made earlier from being overwritten by updates, we advise you to make all changes that overwrite Bladewind css classes in your project's css file instead of editing the Bladewind css file directly. Your project's css file should always be included after the Bladewind css file. @@ -110,7 +124,12 @@ vendor > bladewindui > ui > lang . Currently, the available languages are English, French, Italian, Arabic, German, Chinese and Indonesian. You can add more languages as you see fit or even modify the existing translations. If you want to do this for just your project you will first need to publish the language files by running the command below from the root of your project.

    -
    php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-lang --force

    + @php + $rtlExample7 = <<<'HTML' + php artisan vendor:publish --provider="Mkocansey\Bladewind\BladewindServiceProvider" --tag=bladewind-lang --force + HTML; + @endphp +

    The language files will now be available in your project's lang > vendor > bladewind directory. You can now add more languages or edit the language files that were published.

    diff --git a/resources/views/docs/scheduler.blade.php b/resources/views/docs/scheduler.blade.php index 8b6c2721..08c1bbc3 100644 --- a/resources/views/docs/scheduler.blade.php +++ b/resources/views/docs/scheduler.blade.php @@ -25,13 +25,11 @@ resource becomes its own column, and events are placed by their start and end time. Two events that overlap share their column side by side instead of stacking on top of each other.

    +

    Scheduler vs. Calendar

    - Scheduler is not a bigger Calendar, it solves a different problem. Calendar - browses whole months and weeks of dates, with each day showing the events that fall on it. Scheduler shows - just one day or week at a time, drawn as an hour-by-hour grid where every event sits at its exact start and - end time, and, in day view, splits that grid into a column per resource. Reach for Calendar when someone - needs to browse a schedule and pick a date; reach for Scheduler when you are building something closer to a - room booking board, a staff roster, or an appointment book, where the time of day is the whole point. + Scheduler is not a bigger Calendar, it solves a different problem. Calendar displays dates across full months or weeks, with each day showing its scheduled events. Scheduler focuses on a single day or week using an hour-by-hour timeline, positioning events according to their exact start and end times. In day view, it can also divide the timeline into separate columns for each resource. + + Use Calendar when users need to browse schedules and choose dates. Use Scheduler when time and availability are the primary focus, such as for room bookings, staff rosters, appointments, or other resource-based scheduling.

    Day View With Resources

    @@ -44,22 +42,23 @@ ]" :events="$roomEvents" > -
    -        
    -            <x-bladewind::scheduler
    +    @php
    +        $schedulerExample1 = <<<'HTML'
    +            
    -    
    + ]"> + + HTML; + @endphp +

    Week View

    @@ -67,12 +66,13 @@ as columns instead. Resources are not used in week view.

    -
    -        
    -            <x-bladewind::scheduler view="week" date="2027-03-10" :events="$events">
    -            </x-bladewind::scheduler>
    -        
    -    
    + @php + $schedulerExample2 = <<<'HTML' + + + HTML; + @endphp +

    Visible Hours And Grid Granularity

    @@ -87,18 +87,19 @@ :resources="[['id' => 'room-a', 'label' => 'Room A']]" :events="[['id' => 1, 'resource_id' => 'room-a', 'label' => 'Retro', 'start' => '2027-03-10 14:00', 'end' => '2027-03-10 15:00', 'color' => 'green']]" > -

    -        
    -            <x-bladewind::scheduler
    +    @php
    +        $schedulerExample3 = <<<'HTML'
    +            
    -    
    + :events="..."> + + HTML; + @endphp +

    Selection Hooks

    @@ -108,26 +109,27 @@ to a click on an existing event instead, called as (eventId). An event given an href renders as a real link and does not fire on_event_click.

    -
    -        
    -            <x-bladewind::scheduler
    +    @php
    +        $schedulerExample4 = <<<'HTML'
    +            
    +            
     
    -            <script>
    +            
    +            HTML;
    +    @endphp
    +    
     
         

    Timezone Label

    @@ -140,12 +142,13 @@ function showBookingDetails(eventId) { :resources="[['id' => 'room-a', 'label' => 'Room A']]" :events="[['id' => 1, 'resource_id' => 'room-a', 'label' => 'Client call', 'start' => '2027-03-10 10:00', 'end' => '2027-03-10 11:00', 'color' => 'orange']]" > -

    -        
    -            <x-bladewind::scheduler date="2027-03-10" timezone="America/New_York" ...>
    -            </x-bladewind::scheduler>
    -        
    -    
    + @php + $schedulerExample5 = <<<'HTML' + + + HTML; + @endphp +

    Full List Of Attributes

    @@ -217,9 +220,9 @@ function showBookingDetails(eventId) {

    Scheduler with all attributes defined

    -
    -        
    -            <x-bladewind::scheduler
    +    @php
    +        $schedulerExample6 = <<<'HTML'
    +            
    -    
    + class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > scheduler.blade.php diff --git a/resources/views/docs/select.blade.php b/resources/views/docs/select.blade.php index f34de61f..a5309f69 100644 --- a/resources/views/docs/select.blade.php +++ b/resources/views/docs/select.blade.php @@ -64,18 +64,19 @@ We will build on this array structure as we go further in this documentation.

    -
    -        
    -        <?php
    -            $countries = [
    -                [ 'label' => 'Benin',         'value' => 'bj' ],
    -                [ 'label' => 'Burkina Faso',  'value' => 'bf' ],
    -                [ 'label' => 'Ghana',         'value' => 'gh' ],
    -                [ 'label' => 'Nigeria',       'value' => 'ng' ],
    -                [ 'label' => 'Kenya',         'value' => 'ke' ]
    -            ];
    -        
    -    
    + @php + $selectExample1 = <<<'HTML' + 'Benin', 'value' => 'bj' ], + [ 'label' => 'Burkina Faso', 'value' => 'bf' ], + [ 'label' => 'Ghana', 'value' => 'gh' ], + [ 'label' => 'Nigeria', 'value' => 'ng' ], + [ 'label' => 'Kenya', 'value' => 'ke' ] + ]; + HTML; + @endphp +

    This structure is all you need to render a BladewindUI select. @@ -84,13 +85,14 @@

    -
    -
    -<x-bladewind::select
    -    name="country"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample2 = <<<'HTML' + + HTML; + @endphp +

    @@ -98,26 +100,28 @@

    -
    -
    -    <x-bladewind::select
    -        name="country"
    -        data="{{ json_encode($countries) }}" />
    -
    -
    +@php + $selectExample3 = <<<'HTML' + + HTML; + @endphp +

    Change Placeholder Text

    -
    -
    -    <x-bladewind::select
    -        name="country2"
    -        placeholder="What is your nationality"
    -        :data="$countries" />
    -
    -
    +@php + $selectExample4 = <<<'HTML' + + HTML; + @endphp +

    Use labels instead of placeholders

    Placeholders in the Select component behave just like placeholders in input fields. @@ -127,65 +131,70 @@ When both a placeholder and label are defined, the label takes precedence.

    -
    -
    -<x-bladewind::select name="labels" required="true" :data="$countries"
    -    label="Where are you from?"/>
    -
    -
    +@php + $selectExample5 = <<<'HTML' + + HTML; + @endphp +

    -
    -
    -<x-bladewind::select name="clear_labels" label="Where are you from?"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample6 = <<<'HTML' + + HTML; + @endphp +

    Setting the value and label keys

    It is not feasible to always rewrite your arrays to use the value and label keys expected by the component. There is a solution. Assuming we changed our array to the structure below.

    -
    -        
    -        <?php
    -            $countries = [
    -                [ 'country' => 'Benin',         'code' => 'bj' ],
    -                [ 'country' => 'Burkina Faso',  'code' => 'bf' ],
    -                [ 'country' => 'Ghana',         'code' => 'gh' ],
    -                [ 'country' => 'Nigeria',       'code' => 'ng' ],
    -                [ 'country' => 'Kenya',         'code' => 'ke' ]
    -            ];
    -        
    -    
    + @php + $selectExample7 = <<<'HTML' + 'Benin', 'code' => 'bj' ], + [ 'country' => 'Burkina Faso', 'code' => 'bf' ], + [ 'country' => 'Ghana', 'code' => 'gh' ], + [ 'country' => 'Nigeria', 'code' => 'ng' ], + [ 'country' => 'Kenya', 'code' => 'ke' ] + ]; + HTML; + @endphp +

    We changed our array keys from label and value to country and code. To render the select now, you just need to set the label_key and value_key attributes. Using our array above we will end up with label_key="country" and value_key="code".

    -
    -
    -    <x-bladewind::select
    -        name="country_mixed"
    -        label_key="country"
    -        value_key="code"
    -        :data="$countries" />
    -
    -
    +@php + $selectExample8 = <<<'HTML' + + HTML; + @endphp +

    Just for some perspective, what we are trying to mimic here is the html implementation of a select form element.

    -
    -
    -    <select name="country"...>
    -        <option value="gh">Ghana</option>
    -    </select>
    -
    -
    +@php + $selectExample9 = <<<'HTML' + + HTML; + @endphp +

    Selecting a Value By Default

    @@ -194,15 +203,16 @@

    -
    -
    -    <x-bladewind::select
    -        name="country-select"
    -        selected_value="gh"
    -        placeholder="What is your nationality"
    -        :data="$countries" />
    -
    -
    +@php + $selectExample10 = <<<'HTML' + + HTML; + @endphp +

    Required Field

    Setting a select as required appends a red asterisk to the placeholder text. @@ -211,15 +221,16 @@ Validate Field -

    -
    -    <x-bladewind::select
    -        name="country-select2"
    -        required="true"
    -        placeholder="What is your nationality"
    -        :data="$countries" />
    -
    -
    +@php + $selectExample11 = <<<'HTML' + + HTML; + @endphp +

    Disabled Select

    A disabled select has a 50% opacity and a cursor indicating the field cannot be accessed. @@ -227,15 +238,16 @@

    -
    -
    -<x-bladewind::select
    -    name="country-dis"
    -    disabled="true"
    -    placeholder="What is your nationality"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample12 = <<<'HTML' + + HTML; + @endphp +

    Readonly Select

    A readonly select is quite visible but cannot be opened to view the list of items. @@ -243,15 +255,16 @@

    -
    -
    -<x-bladewind::select
    -    name="country-ro"
    -    readonly="true"
    -    placeholder="What is your nationality"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample13 = <<<'HTML' + + HTML; + @endphp +

    With Descriptions

    @@ -266,17 +279,18 @@

    -
    -
    -<x-bladewind::select
    -    name="country"
    -    label_key="country"
    -    value_key="code"
    -    flag_key="code"
    -    description_key="description"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample14 = <<<'HTML' + + HTML; + @endphp +

    With Country Flags

    @@ -291,16 +305,17 @@

    -
    -
    -<x-bladewind::select
    -    name="country"
    -    label_key="country"
    -    value_key="code"
    -    flag_key="code"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample15 = <<<'HTML' + + HTML; + @endphp + For flags to work you will need to include the following stylesheet. It is deliberately not compiled into the core BladewindUI css because not everyone needs flags. @@ -315,39 +330,40 @@

    Let us create a new array of employees with the needed information.

    -
    -        
    -        <?php
    -            $staff =
    -            [
    -                [
    -                    'id' => '1001',
    -                    'name' => 'Adam Nsiah',
    -                    'picture' => '/path/to/the/image/file'
    -                ],
    -                [
    -                    'id' => '1005',
    -                    'name' => 'Alfred Rowe',
    -                    'picture' => '/path/to/the/image/file'
    -                ],
    -                [
    -                    'id' => '1002',
    -                    'name' => 'Abdul Razak Ibrahim',
    -                    'picture' => '/path/to/the/image/file'
    -                ],
    -                [
    -                    'id' => '1003',
    -                    'name' => 'Michael K. Ocansey',
    -                    'picture' => '/path/to/the/image/file'
    -                ],
    +    @php
    +        $selectExample16 = <<<'HTML'
    +             '1004',
    -                    'name' => 'Michael Sarpong',
    -                    'picture' => '/path/to/the/image/file'
    -                ],
    -            ]
    -        
    -    
    + [ + 'id' => '1001', + 'name' => 'Adam Nsiah', + 'picture' => '/path/to/the/image/file' + ], + [ + 'id' => '1005', + 'name' => 'Alfred Rowe', + 'picture' => '/path/to/the/image/file' + ], + [ + 'id' => '1002', + 'name' => 'Abdul Razak Ibrahim', + 'picture' => '/path/to/the/image/file' + ], + [ + 'id' => '1003', + 'name' => 'Michael K. Ocansey', + 'picture' => '/path/to/the/image/file' + ], + [ + 'id' => '1004', + 'name' => 'Michael Sarpong', + 'picture' => '/path/to/the/image/file' + ], + ] + HTML; + @endphp +

    -
    -
    -<x-bladewind::select
    -    name="staff"
    -    placeholder="Assign task to"
    -    label_key="name"
    -    value_key="id"
    -    image_key="picture"
    -    :data="$staff" />
    -
    -
    +@php + $selectExample17 = <<<'HTML' + + HTML; + @endphp +

    Searchable Select

    @@ -392,38 +409,40 @@ [ 'label' => 'Togo', 'value' => 'tg', 'url' => 'https://en.wikipedia.org/wiki/Togo' ], ]; @endphp -

    -        
    -        <?php
    -            $countries = [
    -                [ 'country' => 'Benin',         'code' => 'bj' ],
    -                [ 'country' => 'Burkina Faso',  'code' => 'bf' ],
    -                [ 'country' => 'Cameroon',      'code' => 'cm' ],
    -                [ 'country' => 'Congo',         'code' => 'cd' ],
    -                [ 'country' => 'Gambia',        'code' => 'gm' ],
    -                [ 'country' => 'Ghana',         'code' => 'gh' ],
    -                [ 'country' => 'Ivory Coast',   'code' => 'ci' ],
    -                [ 'country' => 'Nigeria',       'code' => 'ng' ],
    -                [ 'country' => 'Kenya',         'code' => 'ke' ]
    -                [ 'country' => 'Togo',          'code' => 'tg' ],
    -            ];
    -        
    -    
    + @php + $selectExample18 = <<<'HTML' + 'Benin', 'code' => 'bj' ], + [ 'country' => 'Burkina Faso', 'code' => 'bf' ], + [ 'country' => 'Cameroon', 'code' => 'cm' ], + [ 'country' => 'Congo', 'code' => 'cd' ], + [ 'country' => 'Gambia', 'code' => 'gm' ], + [ 'country' => 'Ghana', 'code' => 'gh' ], + [ 'country' => 'Ivory Coast', 'code' => 'ci' ], + [ 'country' => 'Nigeria', 'code' => 'ng' ], + [ 'country' => 'Kenya', 'code' => 'ke' ] + [ 'country' => 'Togo', 'code' => 'tg' ], + ]; + HTML; + @endphp +

    -
    -
    -<x-bladewind::select
    -     name="country4"
    -     searchable="true"
    -     label_key="country"
    -     value_key="code"
    -     flag_key="code"
    -     :data="$countries" />
    -
    -
    +@php + $selectExample19 = <<<'HTML' + + HTML; + @endphp +

    Empty Select

    @@ -434,19 +453,21 @@ @php $users = []; @endphp -

    -        
    -        <?php $users = []; ?>
    -        
    -    
    + @php + $selectExample20 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::select name="empty_users" searchable="true" :data="$users" />
    -        
    -    
    + @php + $selectExample21 = <<<'HTML' + + HTML; + @endphp +

    Display as Empty State

    As seen from the example above, the empty message is displayed as a single line in a select item. It is possible to @@ -492,39 +513,43 @@ -

    -
    -<x-bladewind::empty-state
    -    name="no_docs"
    -    for_select="true"
    -    message="Awesome! You have no documents to approve.">
    -</x-bladewind::empty-state>
    -
    -
    -
    -
    -<x-bladewind::select searchable="true" :data="$users"
    -    empty_state_from="no_docs" />
    -
    -
    +@php + $selectExample22 = <<<'HTML' + + + HTML; + @endphp + +@php + $selectExample23 = <<<'HTML' + + HTML; + @endphp +
    -
    -
    -<x-bladewind::empty-state
    -    name="no_users"
    -    for_select="true"
    -    message="There are currently no users in your workspace. We need to fix that"
    -    button_label="Add User"
    -    image="/assets/images/user.png"
    -    onclick="showModal('new-user')"></x-bladewind::empty-state>
    -
    -
    -
    -
    -<x-bladewind::select searchable="true" :data="$users"
    -    empty_state_from="no_users" />
    -
    -
    +@php + $selectExample24 = <<<'HTML' + + HTML; + @endphp + +@php + $selectExample25 = <<<'HTML' + + HTML; + @endphp +

    Select Multiple Items

    There are instances where you need to select more than one item from the select component. This is possible by setting the attribute @@ -539,20 +564,21 @@

    -
    -
    -<x-bladewind::select
    -    name="country-multi"
    -    searchable="true"
    -    label_key="country"
    -    value_key="code"
    -    flag_key="code"
    -    multiple="true"
    -    label="Select a country"
    -    max_selectable="3"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample26 = <<<'HTML' + + HTML; + @endphp +

    If you try to select more than 3 items from the select component above, you will not be able to. This is achieved by setting the @@ -567,19 +593,20 @@

    -
    -
    -<x-bladewind::select
    -    name="country-multi2"
    -    searchable="true"
    -    selected_value="gh, gm, ci, bf"
    -    label_key="country"
    -    value_key="code"
    -    flag_key="code"
    -    multiple="true"
    -    :data="$countries" />
    -
    -
    +@php + $selectExample27 = <<<'HTML' + + HTML; + @endphp +

    Manually Building a Select

    @@ -590,15 +617,16 @@

    Let us consider the example below. The important trade-off here is to set data="manual".

    -
    -        
    -           <x-bladewind::select name="gender" placeholder="Select Gender" data="manual">
    -                <x-bladewind::select.item label="Male" value="male" />
    -                <x-bladewind::select.item label="Female" value="female" />
    -                <x-bladewind::select.item label="Prefer not to say" value="other" />
    -           </x-bladewind::select>
    -        
    -    
    + @php + $selectExample28 = <<<'HTML' + + + + + + HTML; + @endphp +

    @@ -609,24 +637,25 @@

    The manual Select can inherit all the cool features of an array-based Select. Can be searchable or even multiple selection.

    -
    -        
    -           <x-bladewind::select
    -                name="tags"
    -                placeholder="Tags for this music"
    -                multiple="true"
    -                searchable="true" data="manual">
    +    @php
    +        $selectExample29 = <<<'HTML'
    +            
     
    -                <x-bladewind::select.item label="Pop" value="pop" image="/path/to/image" />
    -                <x-bladewind::select.item label="Hip" value="hip" flag="gh" />
    -                <x-bladewind::select.item label="Trendy" value="trendy" flag="ng" />
    -                <x-bladewind::select.item label="GenZ" value="genz" image="/path/to/image" />
    -                <x-bladewind::select.item label="Trance" value="trance" />
    -                <x-bladewind::select.item label="For Coder's" value="devs" />
    +                 
    +                 
    +                 
    +                 
    +                 
    +                 
     
    -           </x-bladewind::select>
    -        
    -    
    +
    + HTML; + @endphp +

    @@ -647,25 +676,27 @@ Every BladewindUI select component you display creates as part of the select html the following hidden form field <input type="hidden" name="the-select-name-you-provided" />. When you select an item from the select, the hidden input field is updated with the value of what you selected. The value will be whatever you specified as your value_key. When you submit a form that has any BladewindUI select, you can access the value of the select by specifying the name you used on the select. Consider the example below.

    -
    -        
    -            <form ...>
    +    @php
    +        $selectExample30 = <<<'HTML'
    +            
    ... - <x-bladewind::select name="country" ... /> - </form> -
    -
    + + + HTML; + @endphp +

    After submitting the form the value of the country select can be accessed using any of the following ways permitted in Laravel.

    -
    -        
    +    @php
    +        $selectExample31 = <<<'HTML'
                 $request->get('country');
                 $request->input('country');
                 $request->country;
    -        
    -    
    + HTML; + @endphp +
    The multiple select generates a comma separated list of values. @@ -705,36 +736,36 @@ -
    -        
    -            <div class="grid grid-cols-2 gap-4">
    +    @php
    +        $selectExample32 = <<<'HTML'
    +            
    - <x-bladewind::select + - <x-bladewind::select.item label="Burkina Faso" value="bf" /> - <x-bladewind::select.item label="Ghana" value="gh" /> - <x-bladewind::select.item label="Nigeria" value="ng" /> + + + - </x-bladewind::select> + - <x-bladewind::input + -
    -
    -        
    +                    placeholder="Mobile" />
    +            
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $selectExample33 = <<<'HTML'
                 // javascript
                 const dialing_codes = {
                     'gh' : '+233',
    @@ -745,8 +776,9 @@
                 prependDialingCode = (value) => {
                     domEl('.mobile-prefix').innerText = eval(`dialing_codes.${value}`);
                 }
    -        
    -    
    + HTML; + @endphp +

    The input field above has name="mobile" and also has a prefix="+xxx". Bladewind names all prefixes after their input element so, the prefix field in the mobile input will have class="mobile-prefix". Even though @@ -759,18 +791,20 @@ function only accepts 'value' because the 'label' is not needed. There are those moments when you need to interact with a Select component from JavaScript. The Bladewind Select component exposes 3 methods that help you to do just that. When you create a Select component and provide a name, BladewindUI initializes the component in JavaScript using the name you provided.

    -
    -        
    +    @php
    +        $selectExample34 = <<<'HTML'
                 // the following component declaration
    -            <x-bladewind::select name="country-multiple" placeholder="Select a country" />
    -        
    -    
    -
    -        
    +            
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $selectExample35 = <<<'HTML'
                 // will be initialized in JavaScript as
                 const bw_country_multiple = new BladewindSelect('country_multiple', 'Select a country');
    -        
    -    
    + HTML; + @endphp +

    Note how the name passed to the component has been prefixed with bw_ and all dashes '-' replaced with underscores '_'. This variable is now accessible to you in JavaScript and represents the Select component. @@ -863,44 +897,45 @@ function only accepts 'value' because the 'label' is not needed. Enable
    -

    -        
    -            <x-bladewind::select name="from-js" placeholder="Your country" data="manual">
    -                <x-bladewind::select.item label="Burkina Faso" value="bf" />
    -                <x-bladewind::select.item label="Ghana" value="gh" />
    -                <x-bladewind::select.item label="Nigeria" value="ng" />
    -            </x-bladewind::select>
    +    @php
    +        $selectExample36 = <<<'HTML'
    +            
    +                
    +                
    +                
    +            
     
    -            <div class="space-x-4 text-center">
    +            
    - <x-bladewind.button size="small" type="secondary" - onclick="bw_from_js.selectByValue('gh')"> + Select Ghana - </x-bladewind.button> + - <x-bladewind.button size="small" type="secondary" - onclick="bw_from_js.selectByValue('ng')"> + Select Nigeria - </x-bladewind.button> + - <x-bladewind.button size="small" type="secondary" - onclick="bw_from_js.disable()"> + Disable - </x-bladewind.button> + - <x-bladewind.button size="small" type="secondary" - onclick="bw_from_js.reset()"> + Reset - </x-bladewind.button> + - <x-bladewind.button size="small" type="secondary" - onclick="bw_from_js.enable()"> + Enable - </x-bladewind.button> + - </div> - -
    + + HTML; + @endphp +

    Filtering

    Dynamically filter a table based on selected values

    @@ -961,12 +996,12 @@ function only accepts 'value' because the 'label' is not needed. Let's break down the code for the example above. First we build the array of employees. This example uses an array. You may have your data coming directly from the database or other.

    -
    -        
    +    @php
    +        $selectExample37 = <<<'HTML'
                 $employees = [
                     [
                         'name' => 'Michael Ocansey',
    -                    'email' => 'mike@demo.com',
    +                    'email' => 'mikeBWATSIGNPLACEHOLDERdemo.com',
                         'position' => 'CTO',
                         'department' => 'tech',
                         'dp' => 'me.jpeg',
    @@ -974,58 +1009,63 @@ function only accepts 'value' because the 'label' is not needed.
                     ],
                     ...
                 ];
    -        
    -    
    + HTML; + $selectExample37 = str_replace('BWATSIGNPLACEHOLDER', '@', $selectExample37); + @endphp +

    Next, we build our multiple Select component with non-dynamic data. Note line 3 where we pass the name of the function responsible for filtering the data to the onselect attribute.

    -
    -        
    -            <x-bladewind::select
    +    @php
    +        $selectExample38 = <<<'HTML'
    +            
    -    
    + multiple="true"> + + + + + +
    + HTML; + @endphp +

    We then build the employee records from our array. This example uses the contact card component, but you could use the table component to achieve the same results. How the data is displayed is completely up to you.

    -
    -        
    -            <div class="grid grid-cols-2 gap-4">
    -                @foreach($employees as $employee)
    -                    @php
    +    @php
    +        $selectExample39 = <<<'HTML'
    +            
    + BWATSIGNPLACEHOLDERforeach($employees as $employee) + BWATSIGNPLACEHOLDERphp $dp = ($employee['dp']!=='') ? "/assets/images/".$employee['dp'] : ''; $position = ucfirst($employee['department']) . ' > ' . $employee['position']; - @endphp - <x-bladewind::contact-card + BWATSIGNPLACEHOLDERendphp + -
    + :image="$dp" /> + BWATSIGNPLACEHOLDERendforeach + + HTML; + $selectExample39 = str_replace('BWATSIGNPLACEHOLDER', '@', $selectExample39); + @endphp +

    Finally, the Javascript for filtering the cards. Every BladewindUI contact card component has the class bw-contact-card. Our Javascript targets this class to access all employee cards. When a department is selected, we search through each card and hide any cards that do not contain the selected department(s) in their innerText. Because multiple departments can be selected, we need to dynamically build our regular expression for finding the selected departments in the cards.

    -
    -        
    +    @php
    +        $selectExample40 = <<<'HTML'
                  filterEmployees = (value, label, all_values) => {
                     // get all employee cards available in the DOM
                     let employee_cards = domEls('.bw-contact-card');
    @@ -1040,8 +1080,9 @@ function only accepts 'value' because the 'label' is not needed.
                         (! el.innerText.match(regex) ) ? hide(el, true) : unhide(el, true);
                     });
                 }
    -        
    -    
    + HTML; + @endphp +

    Filter a Select component based on the value of another Select component

    @@ -1091,8 +1132,8 @@ function only accepts 'value' because the 'label' is not needed.

    Let us take a look at the code. We start by defining the array that will populate the continents select component.

    -
    -        
    +    @php
    +        $selectExample41 = <<<'HTML'
                 // this array populates the country dropdown.
                 // all countries in this array are displayed when no continent is selected
                 $countries = [
    @@ -1109,26 +1150,28 @@ function only accepts 'value' because the 'label' is not needed.
                     [ 'name' => 'Norway', 'value' => 'nw', 'continent_code' => 'eu' ],
                     [ 'name' => 'Poland', 'value' => 'pl', 'continent_code' => 'eu' ],
                 ];
    -        
    -    
    + HTML; + @endphp +

    Next is the continents select component. This time we used a manual select instead of generating this from an array because it is just a list of 4 continents. Take note however, of the filter="continent-country" attribute. continent-country is the name of the select component we want to filter.

    -
    -        
    -            <!--- the continents select component. --->
    -            <x-bladewind::select name="continent" placeholder="Select Continent"
    +    @php
    +        $selectExample42 = <<<'HTML'
    +            
    +            
    -    
    + data="manual"> + + + + +
    + HTML; + @endphp +

    Next we introduced filter_by="continent_code" when creating our continent-country select component. When this attribute is defined, all BladewindUI does is to add a data-filter-value attribute to the HTML generated for the Select component's items. @@ -1140,10 +1183,10 @@ function only accepts 'value' because the 'label' is not needed. For example the line for Africa has a value of af. Selecting this will filter the countries select component and keep all items whose continent_code match af.

    -
    -        
    -            <!--- the countries select component. --->
    -            <x-bladewind::select
    +    @php
    +        $selectExample43 = <<<'HTML'
    +            
    +            
    -    
    + value_key="name"> + HTML; + @endphp +

    Filter a Select component based on some value

    @@ -1184,29 +1228,30 @@ function only accepts 'value' because the 'label' is not needed. In this example, clicking on a tag filters the list of countries. This is achieved by calling the filter() method on the target select component. Each tag calls a filterCountries() Javascript function, passing the value of the continent as the parameter. Africa for example passes the parameter af as filterCountries('af').

    -
    -        
    -            <div class="bg-slate-100 sm:grid sm:grid-cols-2 gap-6 flex items-center">
    -                <div class="space-x-2">
    -                    <a href="javascript:filterCountries('af')">
    -                        <x-bladewind::tag label="africa" color="purple" class="cursor-pointer" />
    -                    </a>
    -                    <a href="javascript:filterCountries('as')">
    -                        <x-bladewind::tag label="asia" color="purple" class="cursor-pointer" />
    -                    </a>
    +    @php
    +        $selectExample44 = <<<'HTML'
    +            
    +
    + + + + + + ... - </div> - <x-bladewind::select +
    + -
    + filter_by="continent_code" /> + + HTML; + @endphp +

    Below is the script called by the tags. Note line 3 where we call the filter() function on the continent-country2 select component. We need to prefix the component name with bw_ and also change all dashes in the component name to underscores. continent-country2 becomes continent_country2. @@ -1215,16 +1260,17 @@ function only accepts 'value' because the 'label' is not needed.

    Also note how in this case we called the filter() on the same component that we are targeting. This is because we are not triggering the filtering from another select component.

    -
    -        
    -            <script>
    +    @php
    +        $selectExample45 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
     
         

    Native Select

    @@ -1239,16 +1285,17 @@ function only accepts 'value' because the 'label' is not needed.

    -
    -        
    -            <select name="age" class="bw-raw-select">
    -                <option value="">Are you above 18?</option>
    -                <option value="yes">Yep! I am</option>
    -                <option value="no">Nope but tell no one</option>
    -                <option value="idk">I'd rather not say</option>
    -            </select>
    -        
    -    
    + @php + $selectExample46 = <<<'HTML' + + HTML; + @endphp +

    Laravel Form State

    When validation fails, Laravel redirects back with the submitted values flashed to the @@ -1256,16 +1303,17 @@ function only accepts 'value' because the 'label' is not needed. can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

    -
    -        
    -<x-bladewind::select
    -    name="country"
    -    label="Country"
    -    :data="$countries"
    -    fill_from_old="true"
    -    show_validation_error="true" />
    -        
    -    
    + @php + $selectExample47 = <<<'HTML' + + HTML; + @endphp +

    fill_from_old repopulates the field from old(). show_validation_error gives @@ -1287,16 +1335,17 @@ function only accepts 'value' because the 'label' is not needed. Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

    -
    -        
    -// config/bladewind.php
    -'forms' => [
    -    'fill_from_old' => true,
    -    'show_validation_error' => true,
    -    'error_bag' => null,
    -],
    -        
    -    
    + @php + $selectExample48 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

    An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -1580,14 +1629,14 @@ function only accepts 'value' because the 'label' is not needed.

    Select with all attributes defined

    -
    -        
    -            <x-bladewind::select
    +    @php
    +        $selectExample49 = <<<'HTML'
    +            
    -    
    + /> + HTML; + @endphp +

    Using Select Inside Livewire

    diff --git a/resources/views/docs/shimmer.blade.php b/resources/views/docs/shimmer.blade.php index b4c6c48d..2d570cc3 100644 --- a/resources/views/docs/shimmer.blade.php +++ b/resources/views/docs/shimmer.blade.php @@ -6,28 +6,31 @@ Shimmers or loading placeholders are a great visual cue to tell users that content is loading.

    -
    -        
    -            <x-bladewind::shimmer />
    -        
    -    
    + @php + $shimmerExample1 = <<<'HTML' + + HTML; + @endphp +
    -
    -        
    -            <x-bladewind::shimmer animation="alternate" />
    -        
    -    
    + @php + $shimmerExample2 = <<<'HTML' + + HTML; + @endphp +

    Shimmers can be used in various ways. For example, you can use them to show a loading state for a list of items, card content, or even a form. You can use the circle attribute to create a circular shimmer.

    -
    -        
    -            <x-bladewind::shimmer circle="true" />
    -        
    -    
    + @php + $shimmerExample3 = <<<'HTML' + + HTML; + @endphp +

    Since it is impossible to know all the possible layouts users will want to shimmer, the Bladewind Shimmer has been designed to be very simple. You specify your own width and height and stack up as many shimmers as can create the loading layout you want to depict. In the example below, we have created a shimmer that is depicting two loading contact cards. One vertical, the other horizontal. @@ -59,38 +62,40 @@ -

    -
    -    <x-bladewind::card class="sm:w-1/3">
    -        <x-bladewind::shimmer :circle="true" align="center" />
    -        <x-bladewind::shimmer height="h-5" />
    -        <x-bladewind::shimmer />
    -        <x-bladewind::shimmer />
    -        <x-bladewind::shimmer />
    -    </x-bladewind::card>
    -
    -
    -
    -
    -    <x-bladewind::card class="sm:w-2/3">
    -        <div class="flex gap-4">
    -            <div><x-bladewind::shimmer :circle="true" class="size-40" /></div>
    -            <div class="grow">
    -                <x-bladewind::shimmer height="h-5" />
    -                <x-bladewind::shimmer class="w-[90%]" />
    -                <x-bladewind::shimmer class="w-[80%]" />
    -                <x-bladewind::shimmer />
    -                <x-bladewind::shimmer class="w-[80%]" />
    -                <x-bladewind::shimmer class="w-[85%]" />
    -                <x-bladewind::shimmer class="w-[90%]" />
    -                <x-bladewind::shimmer class="w-[80%]" />
    -                <x-bladewind::shimmer />
    -                <x-bladewind::shimmer />
    -            </div>
    -        </div>
    -    </x-bladewind::card>
    -
    -
    +@php + $shimmerExample4 = <<<'HTML' + + + + + + + + HTML; + @endphp + +@php + $shimmerExample5 = <<<'HTML' + +
    +
    +
    + + + + + + + + + + +
    +
    +
    + HTML; + @endphp +

    If the shimmer is at its full width (w-full), you can use the align attribute to position the shimmer to the center or right of its parent container. @@ -128,38 +133,40 @@ -

    -
    -    <x-bladewind::card class="sm:w-1/3">
    -        <x-bladewind::shimmer animation="alternate" :circle="true" align="center" />
    -        <x-bladewind::shimmer animation="alternate" height="h-5" />
    -        <x-bladewind::shimmer animation="alternate" />
    -        <x-bladewind::shimmer animation="alternate" />
    -        <x-bladewind::shimmer animation="alternate" />
    -    </x-bladewind::card>
    -
    -
    -
    -
    -    <x-bladewind::card class="sm:w-2/3">
    -        <div class="flex gap-4">
    -            <div><x-bladewind::shimmer animation="alternate" :circle="true" class="size-40" /></div>
    -            <div class="grow">
    -                <x-bladewind::shimmer animation="alternate" height="h-5" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[90%]" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[80%]" />
    -                <x-bladewind::shimmer animation="alternate" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[80%]" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[85%]" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[90%]" />
    -                <x-bladewind::shimmer animation="alternate" class="w-[80%]" />
    -                <x-bladewind::shimmer animation="alternate" />
    -                <x-bladewind::shimmer animation="alternate" />
    -            </div>
    -        </div>
    -    </x-bladewind::card>
    -
    -
    + @php + $shimmerExample6 = <<<'HTML' + + + + + + + + HTML; + @endphp + + @php + $shimmerExample7 = <<<'HTML' + +
    +
    +
    + + + + + + + + + + +
    +
    +
    + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Shimmer component.

    @@ -203,17 +210,18 @@

    Shimmer with all attributes defined

    -
    -        
    -            <x-bladewind::shimmer
    +    @php
    +        $shimmerExample8 = <<<'HTML'
    +            
    -    
    + align="right" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > shimmer.blade.php diff --git a/resources/views/docs/sidebar.blade.php b/resources/views/docs/sidebar.blade.php index b78c9a71..485c4866 100644 --- a/resources/views/docs/sidebar.blade.php +++ b/resources/views/docs/sidebar.blade.php @@ -38,15 +38,20 @@ -
    <x-bladewind::sidebar name="workspace-navigation" label="Workspace navigation" active="orders" collapsible="true" mobile="drawer">
    -    <x-slot:header>Acme Workspace</x-slot:header>
    -    <x-bladewind::sidebar.group name="workspace" label="Workspace" icon="squares-2x2" expanded="true">
    -        <x-bladewind::sidebar.item name="overview" label="Overview" href="/dashboard" icon="home" />
    -        <x-bladewind::sidebar.item name="orders" label="Orders" href="/orders" icon="shopping-bag" description="Review fulfilment" badge="12" />
    -        <x-bladewind::sidebar.item name="customers" label="Customers" href="/customers" icon="users" />
    -    </x-bladewind::sidebar.group>
    -    <x-slot:footer><x-bladewind::avatar image="/images/avatar.png" name="Ama Mensah" /></x-slot:footer>
    -</x-bladewind::sidebar>
    + @php + $sidebarExample1 = <<<'HTML' + + Acme Workspace + + + + + + + + HTML; + @endphp +

    Desktop Expanded and Collapsed States

    Set collapsible="true" to allow compact icon-only presentation. The optional collapse control is shown by default for a collapsible Sidebar. Labels remain available through accessible names and native tooltips. Nested destinations stay in the navigation tree and group state is preserved.

    @@ -81,14 +86,24 @@

    Multiple Independent Sidebars

    Every helper resolves one named instance. Groups with the same name can safely exist in separate Sidebars because state and persistence are scoped to the Sidebar root.

    -
    collapseSidebar('project-navigation');
    -expandSidebarGroup('account-navigation', 'settings');
    + @php + $sidebarExample2 = <<<'HTML' + collapseSidebar('project-navigation'); + expandSidebarGroup('account-navigation', 'settings'); + HTML; + @endphp +

    Persistent State

    Persistence is opt-in. Set persist="true" for desktop collapse state and persist-groups="true" for expanded groups. The default key is bladewind:sidebar:{name}. Supply storage-key when an application needs a different namespace. Invalid or unavailable browser storage is ignored safely.

    -
    <x-bladewind::sidebar name="admin-navigation" persist="true" persist-groups="true" storage-key="acme:admin-sidebar">
    -    ...
    -</x-bladewind::sidebar>
    + @php + $sidebarExample3 = <<<'HTML' + + ... + + HTML; + @endphp +

    Long Labels and Large Navigation Sets

    Long labels wrap inside the available width. Full-height and content-height Sidebars cap themselves at the viewport and keep scrolling inside the navigation region. The header and footer remain sticky while a large tree scrolls.

    @@ -124,44 +139,54 @@

    JavaScript API

    Helpers return true on success or when the requested state already applies. They return false for missing, disabled, unsupported, or canceled targets.

    -
    openSidebar('workspace-navigation');
    -closeSidebar('workspace-navigation');
    -toggleSidebar('workspace-navigation');
    -collapseSidebar('workspace-navigation');
    -expandSidebar('workspace-navigation');
    -toggleSidebarGroup('workspace-navigation', 'settings');
    -expandSidebarGroup('workspace-navigation', 'settings');
    -collapseSidebarGroup('workspace-navigation', 'settings');
    -resetSidebar('workspace-navigation');
    + @php + $sidebarExample4 = <<<'HTML' + openSidebar('workspace-navigation'); + closeSidebar('workspace-navigation'); + toggleSidebar('workspace-navigation'); + collapseSidebar('workspace-navigation'); + expandSidebar('workspace-navigation'); + toggleSidebarGroup('workspace-navigation', 'settings'); + expandSidebarGroup('workspace-navigation', 'settings'); + collapseSidebarGroup('workspace-navigation', 'settings'); + resetSidebar('workspace-navigation'); + HTML; + @endphp +

    Sidebar with all attributes defined

    -
    <x-bladewind::sidebar
    -    name="account-navigation"
    -    label="Account navigation"
    -    active="billing"
    -    placement="start"
    -    mobile="drawer"
    -    mobile-size="small"
    -    collapsible="true"
    -    collapsed="false"
    -    show-collapse-control="true"
    -    close-on-navigate="true"
    -    persist="true"
    -    persist-groups="true"
    -    storage-key="acme:account-navigation"
    -    height="full"
    -    multiple-active="false"
    -    collapse-label="Collapse account navigation"
    -    expand-label="Expand account navigation"
    -    close-label="Close account navigation"
    -    class="account-sidebar"
    -    data-region="account">
    -    <x-slot:header>Acme Account</x-slot:header>
    -    <x-bladewind::sidebar.group name="settings" label="Settings" icon="cog-6-tooth" icon-type="outline" icon-dir="" expanded="true" disabled="false">
    -        <x-bladewind::sidebar.item name="billing" label="Billing" href="/billing" icon="credit-card" icon-type="outline" icon-dir="" description="Plans and invoices" badge="2" badge-label="2 unpaid invoices" active="false" disabled="false" external="false" target="_self" class="billing-link" data-area="finance" />
    -    </x-bladewind::sidebar.group>
    -    <x-slot:footer>Account footer</x-slot:footer>
    -</x-bladewind::sidebar>
    + @php + $sidebarExample5 = <<<'HTML' + + HTML; + @endphp +

    Using Sidebar Inside Livewire

    diff --git a/resources/views/docs/slider.blade.php b/resources/views/docs/slider.blade.php index 210541bb..6b088979 100644 --- a/resources/views/docs/slider.blade.php +++ b/resources/views/docs/slider.blade.php @@ -15,11 +15,12 @@


    -
    -        
    -            <x-bladewind::slider />
    -        
    -    
    + @php + $sliderExample1 = <<<'HTML' + + HTML; + @endphp +

    Different Colours

    The Slider component like most BladewindUI components supports multiple colours. The default colour is your project's primary colour defined in your @@ -32,21 +33,24 @@ -

    -        
    -            <x-bladewind::slider selected="50" color="cyan" />
    -        
    -    
    -
    -        
    -            <x-bladewind::slider selected="30" color="pink" />
    -        
    -    
    -
    -        
    -            <x-bladewind::slider selected="70" color="indigo" />
    -        
    -    
    + @php + $sliderExample2 = <<<'HTML' + + HTML; + @endphp + + @php + $sliderExample3 = <<<'HTML' + + HTML; + @endphp + + @php + $sliderExample4 = <<<'HTML' + + HTML; + @endphp +

    The full list of colours is available in the attributes list below.

    @@ -56,11 +60,12 @@ setting the step attribute. This must be a positive number greater than 1.

    -
    -        
    -            <x-bladewind::slider selected="10" step="5" />
    -        
    -    
    + @php + $sliderExample5 = <<<'HTML' + + HTML; + @endphp +

    Min and Max Values

    By default the slider is set to a minimum of 0 and maximum of 100. This means you cannot slide beyond 0 or past 100. @@ -68,11 +73,12 @@ This is useful for example in a case where you are building a web app for youth and need to ensure they only select ages between 18 and 35.

    -
    -        
    -            <x-bladewind::slider min="18" max="35" />
    -        
    -    
    + @php + $sliderExample6 = <<<'HTML' + + HTML; + @endphp +

    Range Selection

    There are cases where you need to let users select a minimum and maximum value. For example, a video streaming app may want to restrict @@ -84,35 +90,38 @@
    -

    -
    -<x-bladewind::slider range="true" selected="20" max_selected="60" />
    -
    -
    +@php + $sliderExample7 = <<<'HTML' + + HTML; + @endphp +

    Form Submission

    The assumption is you will need to retrieve the value from the slider and do something with it. The name you specify for the slider is what will be passed when your form is submitted. Assuming we named our slider age, below is the HTML input field that will be generated.

    -
    -
    -<input type="hidden"
    -       name="age"
    -       id="age"
    -       class="slider-selection-age-input bw-slider-age"
    -       value="50" />
    -
    -
    -
    -
    -<!-- when using a range slider and two values are selected -->
    -<input type="hidden"
    -       name="age"
    -       id="age"
    -       class="slider-selection-age-input bw-slider-age"
    -       value="10,50" />
    -
    -
    +@php + $sliderExample8 = <<<'HTML' + + HTML; + @endphp + +@php + $sliderExample9 = <<<'HTML' + + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Slider component.

    @include('docs/announcement') @@ -186,20 +195,21 @@ class="slider-selection-age-input bw-slider-age"

    Slider with all attributes defined

    -
    -
    -<x-bladewind::slider
    -    min="5"
    -    max="50"
    -    color="red"
    -    show_values="false"
    -    step="5"
    -    range="true"
    -    selected="34"
    -    max_selected="45"
    -    class="m-0" />
    -
    -
    +@php + $sliderExample10 = <<<'HTML' + + HTML; + @endphp +

    Using Slider Inside Livewire

    diff --git a/resources/views/docs/sortable.blade.php b/resources/views/docs/sortable.blade.php index 71dc68d1..c66a1895 100644 --- a/resources/views/docs/sortable.blade.php +++ b/resources/views/docs/sortable.blade.php @@ -13,15 +13,16 @@ Onions Garlic -

    -        
    -            <x-bladewind::sortable>
    -                <x-bladewind::sortable.item>Tomatoes</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Onions</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Garlic</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + @php + $sortableExample1 = <<<'HTML' + + Tomatoes + Onions + Garlic + + HTML; + @endphp +

    Drag Handle

    @@ -35,15 +36,16 @@ Onions Garlic -

    -        
    -            <x-bladewind::sortable hasHandle="true">
    -                <x-bladewind::sortable.item>Tomatoes</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Onions</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Garlic</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + @php + $sortableExample2 = <<<'HTML' + + Tomatoes + Onions + Garlic + + HTML; + @endphp +

    Use handleIcon="ellipsis-vertical" (or any other Heroicon name) to change the handle icon.

    @@ -64,18 +66,19 @@ Banana -
    -        
    -            <x-bladewind::sortable type="shared" group="fruits">
    -                <x-bladewind::sortable.item>Apple</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Mango</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    +    @php
    +        $sortableExample3 = <<<'HTML'
    +            
    +                Apple
    +                Mango
    +            
     
    -            <x-bladewind::sortable type="shared" group="fruits">
    -                <x-bladewind::sortable.item>Banana</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + + Banana + + HTML; + @endphp +

    Set clone="true" on a shared list if you want dragging an item into another list to leave a copy behind instead of moving it. @@ -93,16 +96,17 @@ Garlic Peppers -

    -        
    -            <x-bladewind::sortable multidrag="true">
    -                <x-bladewind::sortable.item>Tomatoes</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Onions</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Garlic</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Peppers</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + @php + $sortableExample4 = <<<'HTML' + + Tomatoes + Onions + Garlic + Peppers + + HTML; + @endphp + multidrag and swap cannot be combined — if both are set, multidrag takes priority. @@ -118,15 +122,16 @@ Onions Garlic -
    -        
    -            <x-bladewind::sortable swap="true">
    -                <x-bladewind::sortable.item>Tomatoes</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Onions</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Garlic</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + @php + $sortableExample5 = <<<'HTML' + + Tomatoes + Onions + Garlic + + HTML; + @endphp +

    Locking Individual Items

    @@ -139,15 +144,16 @@ Onions Garlic -

    -        
    -            <x-bladewind::sortable filter="locked">
    -                <x-bladewind::sortable.item class="locked">Tomatoes (locked)</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Onions</x-bladewind::sortable.item>
    -                <x-bladewind::sortable.item>Garlic</x-bladewind::sortable.item>
    -            </x-bladewind::sortable>
    -        
    -    
    + @php + $sortableExample6 = <<<'HTML' + + Tomatoes (locked) + Onions + Garlic + + HTML; + @endphp +

    Disabling Sorting

    @@ -168,46 +174,51 @@ <input> with that name and keeps it in sync with the current order as a JSON array of each item's value. It submits with the rest of your form like any other field.

    -
    -        
    -            <form method="post" action="/tasks/reorder">
    -                @@csrf
    -                <x-bladewind::sortable inputName="task_order" hasHandle="true">
    -                    @@foreach($tasks as $task)
    -                        <x-bladewind::sortable.item value="@{{ $task->id }}">@{{ $task->title }}</x-bladewind::sortable.item>
    -                    @@endforeach
    -                </x-bladewind::sortable>
    -                <x-bladewind::button can_submit="true" label="Save order" />
    -            </form>
    -        
    -    
    + @php + $sortableExample7 = <<<'HTML' +
    + BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERcsrf + + BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERforeach($tasks as $task) + @{{ $task->title }} + BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERendforeach + + + + HTML; + $sortableExample7 = str_replace('BWATSIGNPLACEHOLDER', '@', $sortableExample7); + @endphp +

    On the server the field arrives as a JSON array of ids in their new order:

    -
    -        
    +    @php
    +        $sortableExample8 = <<<'HTML'
                 $order = json_decode($request->input('task_order')); // ["30", "10", "20"]
     
    -            foreach ($order as $position => $id) {
    -                Task::where('id', $id)->update(['position' => $position]);
    +            foreach ($order as $position => $id) {
    +                Task::where('id', $id)->update(['position' => $position]);
                 }
    -        
    -    
    + HTML; + @endphp +

    Saving with AJAX

    To save without submitting a form, point the onSorted attribute at a JavaScript function. It is called after every reorder with the current order array and the original event.

    -
    -        
    -            <x-bladewind::sortable onSorted="saveOrder">
    -                @@foreach($tasks as $task)
    -                    <x-bladewind::sortable.item value="@{{ $task->id }}">@{{ $task->title }}</x-bladewind::sortable.item>
    -                @@endforeach
    -            </x-bladewind::sortable>
    -        
    -    
    -
    -        
    +    @php
    +        $sortableExample9 = <<<'HTML'
    +            
    +                BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERforeach($tasks as $task)
    +                    @{{ $task->title }}
    +                BWATSIGNPLACEHOLDERBWATSIGNPLACEHOLDERendforeach
    +            
    +            HTML;
    +        $sortableExample9 = str_replace('BWATSIGNPLACEHOLDER', '@', $sortableExample9);
    +    @endphp
    +    
    +    @php
    +        $sortableExample10 = <<<'HTML'
                 function saveOrder(order, event) {
                     fetch('/tasks/reorder', {
                         method: 'POST',
    @@ -218,8 +229,9 @@ function saveOrder(order, event) {
                         body: JSON.stringify({ task_order: order })
                     });
                 }
    -        
    -    
    + HTML; + @endphp + Each list is also exposed as a JavaScript variable named after its name, so you can call SortableJS methods directly — for example ingredients.toArray() returns the current order at any time. @@ -342,9 +354,9 @@ function saveOrder(order, event) {

    Sortable with all attributes defined

    -
    -        
    -            <x-bladewind::sortable
    +    @php
    +        $sortableExample11 = <<<'HTML'
    +            
    -    
    + onSorted="saveOrder"> + Tomatoes + Onions + + HTML; + @endphp +

    Using Sortable Inside Livewire

    diff --git a/resources/views/docs/spinner.blade.php b/resources/views/docs/spinner.blade.php index 383ad13c..56febf74 100644 --- a/resources/views/docs/spinner.blade.php +++ b/resources/views/docs/spinner.blade.php @@ -20,49 +20,55 @@ -

    -        
    -            <x-bladewind::spinner  />
    -        
    -    
    -
    -        
    -            <x-bladewind::spinner color="purple"  />
    -        
    -    
    + @php + $spinnerExample1 = <<<'HTML' + + HTML; + @endphp + + @php + $spinnerExample2 = <<<'HTML' + + HTML; + @endphp + -
    -        
    -            <x-bladewind::spinner size="medium"  />
    -        
    -    
    + @php + $spinnerExample3 = <<<'HTML' + + HTML; + @endphp + -
    -        
    -            <x-bladewind::spinner size="big"  />
    -        
    -    
    + @php + $spinnerExample4 = <<<'HTML' + + HTML; + @endphp + -
    -        
    -            <x-bladewind::spinner size="xl"  />
    -        
    -    
    + @php + $spinnerExample5 = <<<'HTML' + + HTML; + @endphp + -
    -        
    -            <x-bladewind::spinner size="omg"  />
    -        
    -    
    + @php + $spinnerExample6 = <<<'HTML' + + HTML; + @endphp +

    Full List Of Attributes

    @@ -95,13 +101,14 @@

    Spinner with all attributes defined

    -
    -        
    -            <x-bladewind::spinner
    +    @php
    +        $spinnerExample7 = <<<'HTML'
    +            
    -    
    + class="m-0" /> + HTML; + @endphp + diff --git a/resources/views/docs/statistic.blade.php b/resources/views/docs/statistic.blade.php index b8b90656..6667d784 100644 --- a/resources/views/docs/statistic.blade.php +++ b/resources/views/docs/statistic.blade.php @@ -9,24 +9,26 @@
    -
    -            
    -                <x-bladewind::statistic number="34,500,100" label="Total payments" />
    -            
    -        
    + @php + $statisticExample1 = <<<'HTML' + + HTML; + @endphp +

    By default the label is placed above the number. If you prefer to display it below the number set label_position="bottom".

    -
    -            
    -                <x-bladewind::statistic
    -                    label_position="bottom"
    -                    number="34,500,100"
    -                    label="Total payments" />
    -            
    -        
    + @php + $statisticExample2 = <<<'HTML' + + HTML; + @endphp +

    With Icons

    @@ -49,37 +51,39 @@ -

    -            
    -                <x-bladewind::statistic
    -                    number="34,500,100"
    -                    label="Total payments">
    +        @php
    +        $statisticExample3 = <<<'HTML'
    +            
     
    -                    <x-slot name="icon">
    -                        <svg class="h-16 w-16 p-2 text-white rounded-full bg-blue-500"...>
    -                        ...
    -                        </svg>
    -                    </x-slot>
    +                
    +                    
    +                    ...
    +                    
    +                
     
    -                </x-bladewind::statistic>
    -            
    -        
    -
    -            
    -                <x-bladewind::statistic
    -                    icon_position="right"
    -                    number="34,500,100"
    -                    label="Total payments">
    +            
    +            HTML;
    +    @endphp
    +    
    +        @php
    +        $statisticExample4 = <<<'HTML'
    +            
     
    -                    <x-slot name="icon">
    -                        <svg class="h-16 w-16 p-2 text-white rounded-full bg-orange-500"...>
    -                        ...
    -                        </svg>
    -                    </x-slot>
    +                
    +                    
    +                    ...
    +                    
    +                
     
    -                </x-bladewind::statistic>
    -            
    -        
    +
    + HTML; + @endphp +

    With Currency

    @@ -95,14 +99,15 @@ -

    -            
    -                <x-bladewind::statistic
    -                    currency="GHS"
    -                    number="34,500,100"
    -                    label="Total payments" />
    -            
    -        
    + @php + $statisticExample5 = <<<'HTML' + + HTML; + @endphp +

    With Spinners

    In some cases you may not have access to your statistic numbers when the page loads. This usually is the case if you get your values from an API. @@ -113,60 +118,63 @@ -

    -            
    -                <x-bladewind::statistic
    -                    show_spinner="true"
    -                    label="Total payments" />
    -            
    -        
    + @php + $statisticExample6 = <<<'HTML' + + HTML; + @endphp +

    You will need to programmatically get rid of the spinner once you have received your number and updated your number field. To be able to access various elements that make up the statistic, it is important to give the statistic a name. This can be done using the class attribute. Assuming we named our statistic component total-payments, the code below will be the resulting HTML for the component.

    -
    -        
    -            <div class="bw-statistic total-payments ...">
    -                <div class="flex space-x-4">
    -                    <div class="grow-0 icon">
    +    @php
    +        $statisticExample7 = <<<'HTML'
    +            
    +
    +
    // icon is displayed here - </div> - <div class="grow number"> - <div class="uppercase ... label"> +
    +
    +
    // label is displayed here - </div> - <div class="text-3xl ..."> - <svg class="bw-spinner">. +
    +
    + . // spinner is displayed here - </svg> - <span class="text-gray-300 text-2xl"> + + // currency is displayed here - </span> - <span class="figure tracking-wider"> + + // number is displayed here - </span> - </div> - </div> - </div> - </div> - -
    + + + + + + HTML; + @endphp +

    From the above html code, to hide the spinner your javascript will be similar to

    -
    -        
    -            <script>
    +    @php
    +        $statisticExample8 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
     
         

    Trends, Tones And Progress

    @@ -175,16 +183,17 @@ component rather than in your markup, so the same figure reads the same way on every page.

    -
    -        
    -<x-bladewind::statistic
    -    label="Revenue"
    -    number="12,400"
    -    currency="GHS"
    -    direction="up"
    -    note="up 12% on last month" />
    -        
    -    
    + @php + $statisticExample9 = <<<'HTML' + + HTML; + @endphp +

    direction draws a trend arrow beside the figure and colours it: up is good, down is bad, @@ -198,16 +207,17 @@ time. Set invert_direction and a downward arrow turns green instead of red.

    -
    -        
    -<x-bladewind::statistic
    -    label="Arrears"
    -    number="1,204"
    -    direction="down"
    -    invert_direction="true"
    -    note="down 8% this week" />
    -        
    -    
    + @php + $statisticExample10 = <<<'HTML' + + HTML; + @endphp +

    Tones

    @@ -230,17 +240,18 @@ place of the note, tinted with the same tone. Out-of-range values are clamped and a non-numeric one is ignored.

    -
    -        
    -<x-bladewind::statistic
    -    label="Collections"
    -    number="72%"
    -    hint="Invoices settled within 30 days"
    -    tone="positive"
    -    progress="72"
    -    progress_label="of monthly target" />
    -        
    -    
    + @php + $statisticExample11 = <<<'HTML' + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Statistic component.

    @@ -355,9 +366,9 @@

    Statistic with all attributes defined

    -
    -        
    -            <x-bladewind::statistic
    +    @php
    +        $statisticExample12 = <<<'HTML'
    +            
     
    -                <x-slot name="icon">
    -                    <svg>...</svg>
    -                </x-slot>
    +                
    +                    ...
    +                
     
    -            </x-bladewind::statistic>
    -        
    -    
    +
    + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > statistic.blade.php diff --git a/resources/views/docs/stepper.blade.php b/resources/views/docs/stepper.blade.php index c383ff26..6d5f5e53 100644 --- a/resources/views/docs/stepper.blade.php +++ b/resources/views/docs/stepper.blade.php @@ -20,20 +20,25 @@ -
    <x-bladewind::stepper name="account-setup" current="profile" aria-label="Account setup progress">
    -    <x-bladewind::stepper.item name="account" label="Account" state="complete" />
    -    <x-bladewind::stepper.item name="profile" label="Profile" description="Personal details" />
    -    <x-bladewind::stepper.item name="security" label="Security" />
    -    <x-bladewind::stepper.content name="account" has-border="false">
    -        <x-bladewind::card has-shadow="false">Account details</x-bladewind::card>
    -    </x-bladewind::stepper.content>
    -    <x-bladewind::stepper.content name="profile" has-border="false">
    -        <x-bladewind::card has-shadow="false">Profile form</x-bladewind::card>
    -    </x-bladewind::stepper.content>
    -    <x-bladewind::stepper.content name="security" has-border="false">
    -        <x-bladewind::card has-shadow="false">Security options</x-bladewind::card>
    -    </x-bladewind::stepper.content>
    -</x-bladewind::stepper>
    + @php + $stepperExample1 = <<<'HTML' + + + + + + Account details + + + Profile form + + + Security options + + + HTML; + @endphp +

    Visual Styles

    Use the style attribute to change how the sequence is presented without changing its content, state, events, or keyboard behavior. The available values are circles, chevrons, bars, and line. Circles is the default and works with both orientations.

    @@ -205,11 +210,16 @@

    Indicator-only Usage

    Content panels are recommended for complete wizard interfaces and are used by every working example on this page. You may still omit them when Stepper only communicates the status of a process that is rendered elsewhere. The indicators, states, events, and keyboard behavior continue to work.

    -
    <x-bladewind::stepper name="delivery" current="dispatch">
    -    <x-bladewind::stepper.item name="paid" label="Paid" state="complete" />
    -    <x-bladewind::stepper.item name="dispatch" label="Dispatch" />
    -    <x-bladewind::stepper.item name="delivered" label="Delivered" />
    -</x-bladewind::stepper>
    + @php + $stepperExample2 = <<<'HTML' + + + + + + HTML; + @endphp +

    Content Panels

    A stepper.content name connects a panel to the item with the same name. Place one panel beside every item when building a wizard. Only the current panel is visible and keyboard reachable; the others are hidden and inert until selected.

    @@ -222,26 +232,41 @@

    Notification preferences

    Choose which product and account updates should reach you.

    • Security and sign-in notices
    • Product announcements
    • Monthly account summary

    Preference summary

    Review the selected contact channels and notification categories.

    Return to either completed stage to make a correction before saving.

    -
    <x-bladewind::stepper.content name="profile" has-border="false">
    -    <x-bladewind::card has-shadow="false">
    -        <x-bladewind::input label="Display name" />
    -        <x-bladewind::textarea label="Biography" />
    -    </x-bladewind::card>
    -</x-bladewind::stepper.content>
    + @php + $stepperExample3 = <<<'HTML' + + + + + + + HTML; + @endphp +

    Use the public helpers from buttons, form handlers, or other application code. All helpers return true on success and false when the stepper, step, or requested movement is unavailable. A successful move updates the indicator, panel, ARIA relationships, state, and focus together.

    -
    previousStepperStep('account-setup');
    -nextStepperStep('account-setup');
    -showStepperStep('account-setup', 'security');
    -resetStepper('account-setup');
    + @php + $stepperExample4 = <<<'HTML' + previousStepperStep('account-setup'); + nextStepperStep('account-setup'); + showStepperStep('account-setup', 'security'); + resetStepper('account-setup'); + HTML; + @endphp +

    Validation Event

    Listen for the cancelable bladewind:stepper:before-change event and call preventDefault() when the current panel is invalid. The Stepper owns navigation state but does not impose form rules, so validation remains application-owned.

    -
    document.querySelector('[data-name="account-setup"]')
    -    .addEventListener('bladewind:stepper:before-change', (event) => {
    -        if (!profileFormIsValid()) event.preventDefault();
    -    });
    + @php + $stepperExample5 = <<<'HTML' + document.querySelector('[data-name="account-setup"]') + .addEventListener('bladewind:stepper:before-change', (event) => { + if (!profileFormIsValid()) event.preventDefault(); + }); + HTML; + @endphp +

    Multiple Steppers

    Each helper resolves one named root. State, panels, focus, and events do not leak between instances. Use a unique root name for every Stepper, even when the step names inside them are identical.

    @@ -355,36 +380,41 @@

    Navigation event details contain stepperName, previousStep, nextStep, and direction.

    Stepper with all attributes defined

    -
    <x-bladewind::stepper
    -    name="account-setup"
    -    current="profile"
    -    orientation="horizontal"
    -    style="circles"
    -    linear="true"
    -    clickable="true"
    -    show-numbers="true"
    -    completed-icon="check"
    -    error-icon="exclamation-triangle"
    -    aria-label="Account setup progress"
    -    class="account-stepper">
    -    <x-bladewind::stepper.item
    -        name="profile"
    -        label="Profile"
    -        description="Personal details"
    -        state="current"
    -        disabled="false"
    -        clickable="true"
    -        number="2"
    -        icon="user"
    -        icon-type="solid"
    -        icon-dir=""
    -        class="profile-step" />
    -    <x-bladewind::stepper.content name="profile" has-border="false" class="profile-panel">
    -        <x-bladewind::card has-shadow="false">
    -            <x-bladewind::input label="Display name" />
    -        </x-bladewind::card>
    -    </x-bladewind::stepper.content>
    -</x-bladewind::stepper>
    + @php + $stepperExample6 = <<<'HTML' + + HTML; + @endphp +

    Using Stepper Inside Livewire

    diff --git a/resources/views/docs/tab.blade.php b/resources/views/docs/tab.blade.php index 0e4998f4..5f3825eb 100644 --- a/resources/views/docs/tab.blade.php +++ b/resources/views/docs/tab.blade.php @@ -37,51 +37,52 @@ -

    -        
    -            <x-bladewind::tab name="free-pics">
    +    @php
    +        $tabExample1 = <<<'HTML'
    +            
     
    -                <x-slot:headings>
    -                    <x-bladewind::tab.heading
    -                        name="unsplash-1" label="Lissete Laverde" />
    +                
    +                    
     
    -                    <x-bladewind::tab.heading
    -                        name="unsplash-2" label="Marko Pavlichenko" />
    +                    
     
    -                    <x-bladewind::tab.heading
    -                        name="unsplash-3" active="true" label="Yoonbae Cho" />
    +                    
     
    -                    <x-bladewind::tab.heading
    -                        name="unsplash-4" label="Sam Carter" />
    -                </x-slot:headings>
    +                    
    +                
     
    -                <x-bladewind::tab.body>
    +                
     
    -                    <x-bladewind::tab.content name="unsplash-1">
    -                        <img src="/path/to/the/image/file"
    -                            alt="Picture by Lissete Laverde" />
    -                    </x-bladewind::tab.content>
    +                    
    +                        Picture by Lissete Laverde
    +                    
     
    -                    <x-bladewind::tab.content name="unsplash-2">
    -                        <img src="/path/to/the/image/file"
    -                            alt="Picture by Marko Pavlichenko" />
    -                    </x-bladewind::tab.content>
    +                    
    +                        Picture by Marko Pavlichenko
    +                    
     
    -                    <x-bladewind::tab.content name="unsplash-3" active="true">
    -                        <img src="/path/to/the/image/file"
    -                            alt="Picture by Yoonbae Cho" />
    -                    </x-bladewind::tab.content>
    +                    
    +                        Picture by Yoonbae Cho
    +                    
     
    -                    <x-bladewind::tab.content name="unsplash-4">
    -                        <img src="/path/to/the/image/file"
    -                            alt="Picture by Sam Carter" />
    -                    </x-bladewind::tab.content>
    +                    
    +                        Picture by Sam Carter
    +                    
     
    -                </x-bladewind::tab.body>
    +                
     
    -            </x-bladewind::tab>
    -        
    -    
    + + HTML; + @endphp +

    Let us breakdown what is happening with the tab component. We first define a tab group that will hold all the tab headings @@ -247,36 +248,37 @@

    -
    -        
    -            <x-bladewind::tab name="red-tab" color="red">
    -                <x-slot name="headings">
    +    @php
    +        $tabExample2 = <<<'HTML'
    +            
    +                
     
    -                    <x-bladewind::tab.heading
    +                    
     
    -                    <x-bladewind::tab.heading
    +                    
     
    -                </x-slot>
    +                
     
    -                <x-bladewind::tab.body>
    +                
     
    -                    <x-bladewind::tab.content
    +                    
     
    -                    <x-bladewind::tab.content
    -                        name="inactive-red"></x-bladewind::tab.content>
    +                    
     
    -                </x-bladewind::tab.body>
    +                
     
    -            </x-bladewind::tab>
    -        
    -    
    + + HTML; + @endphp +

    Other Tab Styles

    @@ -301,29 +303,30 @@ -
    -        
    -                <x-bladewind::tab
    -                    name="sys-blue-tab"
    -                    style="system">
    -
    -                    <x-slot:headings>
    -                        <x-bladewind::tab.heading
    -                            name="sys-blue" active="true" label="Blue System Tab" />
    -                        <x-bladewind::tab.heading
    -                            name="inactive-sys-blue" label="The Other Tab" />
    -                    </x-slot:headings>
    -
    -                    <x-bladewind::tab.body>
    -                        <x-bladewind::tab.content
    -                            name="sys-blue" active="true">...</x-bladewind::tab.content>
    -                        <x-bladewind::tab.content
    -                            name="inactive-sys-blue">...</x-bladewind::tab.content>
    -                    </x-bladewind::tab.body>
    -
    -                </x-bladewind::tab>
    -        
    -    
    + @php + $tabExample3 = <<<'HTML' + + + + + + + + + ... + ... + + + + HTML; + @endphp +

    @@ -377,29 +380,30 @@

    -
    -        
    -                <x-bladewind::tab
    -                    name="pills-blue-tab"
    -                    style="pills">
    -
    -                    <x-slot:headings>
    -                        <x-bladewind::tab.heading
    -                            name="pills-blue" active="true" label="Blue System Tab" />
    -                        <x-bladewind::tab.heading
    -                            name="inactive-pills-blue" label="The Other Tab" />
    -                    </x-slot:headings>
    -
    -                    <x-bladewind::tab.body>
    -                        <x-bladewind::tab.content
    -                            name="pills-blue" active="true">...</x-bladewind::tab.content>
    -                        <x-bladewind::tab.content
    -                            name="inactive-pills-blue">...</x-bladewind::tab.content>
    -                    </x-bladewind::tab.body>
    -
    -                </x-bladewind::tab>
    -        
    -    
    + @php + $tabExample4 = <<<'HTML' + + + + + + + + + ... + ... + + + + HTML; + @endphp +

    @@ -448,40 +452,41 @@

    -
    -        
    -<x-bladewind::tab name="tab-icon">
    -    <x-slot name="headings">
    -        <x-bladewind::tab.heading name="icon-blue" active="true"
    -            icon="shopping-cart"
    -            label="Shopping List" />
    -        <x-bladewind::tab.heading name="icon-inactive"
    -            label="Previous Purchases"
    -            icon="shopping-bag" />
    -        <x-bladewind::tab.heading name="icon-solid"
    -            label="Solid Icon"
    -            icon="shopping-bag"
    -            icon_type="solid" />
    -        <x-bladewind::tab.heading name="icon-solid-css" label="Icon Css Applied"
    -            icon="fire"
    -            icon_type="solid"
    -            icon_css="!rounded-full !bg-orange-500 text-white size-6 p-1" />
    -    </x-slot>
    -    <x-bladewind::tab.body>
    -        <x-bladewind::tab.content name="icon-blue" active="true">
    -            <img src="/assets/images/lissete-laverde-z9Ropm8edsw-unsplash.jpg"
    -                 alt="Picture by Lissete Laverde" />
    -        </x-bladewind::tab.content>
    -        <x-bladewind::tab.content name="icon-inactive">
    -            <img src="/assets/images/sam-carter-JU1SVl4smHM-unsplash.jpg" alt="Picture by Sam Carter" />
    -        </x-bladewind::tab.content>
    -        <x-bladewind::tab.content name="icon-solid">
    -            <img src="/assets/images/lissete-laverde-z9Ropm8edsw-unsplash.jpg" alt="Picture by Lissete Laverde" />
    -        </x-bladewind::tab.content>
    -    </x-bladewind::tab.body>
    -</x-bladewind::tab>
    -        
    -    
    + @php + $tabExample5 = <<<'HTML' + + + + + + + + + + Picture by Lissete Laverde + + + Picture by Sam Carter + + + Picture by Lissete Laverde + + + + HTML; + @endphp +
    @@ -621,40 +626,41 @@

    Tab with all attributes defined

    -
    -        
    -            <x-bladewind::tab name="red-tab" color="red" style="system">
    -                <x-slot name="headings">
    +    @php
    +        $tabExample6 = <<<'HTML'
    +            
    +                
     
    -                    <x-bladewind::tab.heading
    +                    
     
    -                    <x-bladewind::tab.heading
    +                    
     
    -                </x-slot>
    +                
     
    -                <x-bladewind::tab.body class="p-2">
    +                
     
    -                    <x-bladewind::tab.content
    +                    ...
     
    -                    <x-bladewind::tab.content
    -                        name="inactive-red">...</x-bladewind::tab.content>
    +                    ...
     
    -                </x-bladewind::tab.body>
    +                
     
    -            </x-bladewind::tab>
    -        
    -    
    + + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > tab > index.blade.php, diff --git a/resources/views/docs/table.blade.php b/resources/views/docs/table.blade.php index 2a586180..f28f1fc2 100644 --- a/resources/views/docs/table.blade.php +++ b/resources/views/docs/table.blade.php @@ -47,27 +47,29 @@

    -
    -        
    -             <x-bladewind::table>
    -                <x-slot name="header">
    -                    <th>Name</th>
    -                    <th>Department</th>
    -                    <th>Email</th>
    -                </x-slot>
    -                <tr>
    -                    <td>Alfred Rowe</td>
    -                    <td>Outsourcing</td>
    -                    <td>alfred@therowe.com</td>
    -                </tr>
    -                <tr>
    -                    <td>Michael K. Ocansey</td>
    -                    <td>Tech</td>
    -                    <td>kabutey@gmail.com</td>
    -                </tr>
    -            </x-bladewind::table>
    -        
    -    
    + @php + $tableExample1 = <<<'HTML' + + +
    + + + + + + + + + + + + + + + HTML; + $tableExample1 = str_replace('BWATSIGNPLACEHOLDER', '@', $tableExample1); + @endphp +

    By default the table component does not display a border around the table. You can enable this by setting. has_border="true" @@ -110,14 +112,15 @@

    -
    -        
    -             <x-bladewind::table
    -                has_border="true">
    +    @php
    +        $tableExample2 = <<<'HTML'
    +             
                     ...
    -            </x-bladewind::table>
    -        
    -    
    + + HTML; + @endphp +

    No Gaps

    By default the BladewindUI table rows are displayed with wide gaps to place more emphasis on each row and it’s content. Each row also has a default hover effect that highlights the left and right borders of the row. These can both be turned off.

    @@ -159,18 +162,19 @@ -
    -        
    -             <x-bladewind::table
    -                divider="thin">
    -                <x-slot name="header">
    -                    <th>Name</th>
    +    @php
    +        $tableExample3 = <<<'HTML'
    +             
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    No Divider

    It is also possible to completely turn off the divider lines.

    @@ -212,18 +216,19 @@
    -
    -        
    -             <x-bladewind::table
    -                divided="false">
    -                <x-slot name="header">
    -                    <th>Name</th>
    +    @php
    +        $tableExample4 = <<<'HTML'
    +             
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    No Hover Effect

    To remove the beautiful green side border effect when users hover on each row, set the hover attribute to false, like this, has_hover="false".

    @@ -263,20 +268,21 @@
    -
    -        
    -                <x-bladewind::table
    +    @php
    +        $tableExample5 = <<<'HTML'
    +                
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Compact

    If the table feels too airy and spaced, there is a compact="true" attribute to tighten things up.

    @@ -315,20 +321,21 @@

    -
    -        
    -                <x-bladewind::table
    +    @php
    +        $tableExample6 = <<<'HTML'
    +                
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Striped Table

    Design experts argue that it is sometimes easier for users to visually scan tabular data if the table has striped rows. We are not challenging the experts. We’ve however made it possible for you to make your BladewindUI tables have striped rows. Set striped="true" on the table component to get a striped table.

    @@ -376,20 +383,21 @@
    -
    -        
    -            <x-bladewind::table
    +    @php
    +        $tableExample7 = <<<'HTML'
    +            
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Celled Table

    If you want your tables looking like an excel spreadsheet with each cell having all round borders, set celled="true".

    @@ -432,18 +440,19 @@
    -
    -        
    -            <x-bladewind::table celled="true">
    +    @php
    +        $tableExample8 = <<<'HTML'
    +            
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Cells for Totals

    Accountants have this interesting habit of double underlining their totals. If that’s something that interests you, apply the class double-underline to the td that holds the total value you want double underlined.

    @@ -472,24 +481,25 @@
    -
    -        
    -            <x-bladewind::table striped="true" divider="thin">
    +    @php
    +        $tableExample9 = <<<'HTML'
    +            
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - <tr> - <td colspan="2" class="text-right"></td> - <td class="double-underline text-right"> + + + + + + HTML; + @endphp +

    Table With Drop Shadow

    You can add a subtle shadow effect to your BladewindUI tables by setting has_shadow="true"

    @@ -518,21 +528,22 @@
    -
    -        
    -            <x-bladewind::table
    +    @php
    +        $tableExample10 = <<<'HTML'
    +            
     
    -                <x-slot name="header">
    -                    <th>Name</th>
    +                
    +                    
    ... - </x-slot> + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Selectable Rows

    There are cases you may want to show users which rows they have selected. You can achieve that by setting selectable="true" on the table. @@ -572,23 +583,24 @@


    -
    -        
    -            <x-bladewind::table selectable="true" divider="thin">
    -                <x-slot name="header">
    -                    <th>Item</th>
    -                    <th>Quantity</th>
    -                    <th>Unit Price (GHS)</th>
    -                </x-slot>
    -                <tr>
    -                    <td>Office furniture</td>
    -                    <td class="text-center">2</td>
    -                    <td class="text-right">4,300.00</td>
    -                </tr>
    +    @php
    +        $tableExample11 = <<<'HTML'
    +            
    +                
    +                    
    + + + + + + + + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Checkable

    We can take the selectable tables one step further by introducing checkboxes for every row. This is achieved by setting checkable="true" on the table. @@ -629,23 +641,24 @@
    -

    -        
    -            <x-bladewind::table selectable="true" checkable="true" divider="thin">
    -                <x-slot name="header">
    -                    <th>Item</th>
    -                    <th>Quantity</th>
    -                    <th>Unit Price (GHS)</th>
    -                </x-slot>
    -                <tr>
    -                    <td>Office furniture</td>
    -                    <td class="text-center">2</td>
    -                    <td class="text-right">4,300.00</td>
    -                </tr>
    +        @php
    +        $tableExample12 = <<<'HTML'
    +            
    +                
    +                    
    + + + + + + + + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    Having selectable table rows definitely means you will want to do something with the selected values. You will need to append unique IDs (data-id="your-uuid-value") @@ -656,29 +669,30 @@ comma separated list of table row IDs that are selected.


    -
    -        
    -            <x-bladewind::table selectable="true" checkable="true" divider="thin"
    -                name="office_supplies">
    -                <x-slot name="header">
    -                    <th>Item</th>
    -                    <th>Quantity</th>
    -                    <th>Unit Price (GHS)</th>
    -                </x-slot>
    -                <tr data-id="1">
    -                    <td>Office furniture</td>
    -                    <td class="text-center">2</td>
    -                    <td class="text-right">4,300.00</td>
    -                </tr>
    -                <tr data-id="2">
    -                    <td>HP Laser Jet Printer</td>
    -                    <td class="text-center">2</td>
    -                    <td class="text-right">4,300.00</td>
    -                </tr>
    +    @php
    +        $tableExample13 = <<<'HTML'
    +            
    +                
    +                    
    + + + + + + + + + + + + + ... - </x-bladewind::table> - - + + HTML; + @endphp +

    We now have a hidden input injected on the page right after the table. @@ -725,65 +739,67 @@ -

    -        
    -    <x-bladewind::card reduce_padding="true">
    -        <!-- the delete button -->
    -        <div class="office-supplies-actions p-3 bg-gray-100/50 rounded-lg hidden">
    -            <x-bladewind::button size="tiny"
    -                type="secondary" outline="true"
    -                icon="trash" color="red"
    -                onclick="deleteRows()">
    -                Delete
    -            </x-bladewind::button>
    -        </div>
    -
    -        <x-bladewind::table selectable="true" divider="thin"
    -            checkable="true"
    -            name="office_supplies">
    -            <x-slot:header>
    -                <th>Item</th>
    -                <th class="!text-center">Quantity</th>
    -                <th class="!text-right">Unit Price (GHS)</th>
    -            </x-slot:header>
    -            <tr data-id="12">
    -                <td>Office furniture</td>
    -                <td class="text-center">2</td>
    -                <td class="text-right">4,300.00</td>
    -            </tr>
    -            ...
    -        </x-bladewind::table>
    -    </x-bladewind::card>
    -        
    -    
    + @php + $tableExample14 = <<<'HTML' + + + + + + +
    + + + + + + + + + ... + + + HTML; + @endphp +

    The above code will draw the table and let Bladewind do its checkboxing magic. You will however, need to write the code for working with the values of the selected table rows. The deleteRows() Javascript function below is what handles deleting of the rows selected by the user from the example above. deleteRow() is not a BladewindUI helper function.

    -
    -        
    -    // domEl(), domEls() and hide() are BladewindUI helper functions
    -    deleteRows = () => {
    -        // Our table is named 'office_supplies' so input.office_supplies is
    -        // the hidden field Bladewind will write IDs of all selected rows to
    -        const selectedRows = domEl('input.office_supplies').value.split(',');
    -
    -        // next we loop over all the rows of our 'office_supplies' table and
    -        // hide any row that's having the value of its 'data-id' attribute
    -        // in the selected rows array
    -        const tableRows = domEls('table.office_supplies tr');
    -        tableRows.forEach(row => {
    -            if(selectedRows.indexOf(row.getAttribute('data-id')) !== -1) {
    -                hide(row, true);
    -                hide('.office-supplies-actions');
    -                domEl('input.office_supplies').value = '';
    +        @php
    +        $tableExample15 = <<<'HTML'
    +            // domEl(), domEls() and hide() are BladewindUI helper functions
    +            deleteRows = () => {
    +                // Our table is named 'office_supplies' so input.office_supplies is
    +                // the hidden field Bladewind will write IDs of all selected rows to
    +                const selectedRows = domEl('input.office_supplies').value.split(',');
    +
    +                // next we loop over all the rows of our 'office_supplies' table and
    +                // hide any row that's having the value of its 'data-id' attribute
    +                // in the selected rows array
    +                const tableRows = domEls('table.office_supplies tr');
    +                tableRows.forEach(row => {
    +                    if(selectedRows.indexOf(row.getAttribute('data-id')) !== -1) {
    +                        hide(row, true);
    +                        hide('.office-supplies-actions');
    +                        domEl('input.office_supplies').value = '';
    +                    }
    +                });
                 }
    -        });
    -    }
    -        
    -    
    + HTML; + @endphp +

    @@ -791,15 +807,16 @@ Set the selected_value attribute on the table. This accepts a comma separated list of IDs.

    -
    -
    -<x-bladewind::table selectable="true" divider="thin"
    -    checkable="true"
    -    selected_value="2,4,19,23"
    -    name="office_supplies">
    -    ...
    -
    -
    +@php + $tableExample16 = <<<'HTML' + + ... + HTML; + @endphp +

    Display a Table From Dynamic Data

    There is no point manually building a table tediously when you have an array that contains everything you want to display as a table. @@ -809,8 +826,8 @@

    Let us consider the array below and its resultant table.

    -
    -        
    +    @php
    +        $tableExample17 = <<<'HTML'
                 $staff = [
                     [   'id' => 1,
                         'first_name' => 'Michael',
    @@ -833,13 +850,15 @@
                         'marital_status' => 0
                     ],
                 ];
    -        
    -    
    -
    -        
    -            <x-bladewind::table :data="$staff" />
    -        
    -    
    + HTML; + @endphp + + @php + $tableExample18 = <<<'HTML' + + HTML; + @endphp +

    @@ -847,11 +866,12 @@

    -
    -        
    -            <x-bladewind::table data="{{ json_encode($staff) }}" />
    -        
    -    
    + @php + $tableExample19 = <<<'HTML' + + HTML; + @endphp + @php $staff = [ @@ -914,13 +934,14 @@

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="id, marital_status"
    -        :data="$staff" />
    -
    -
    +@php + $tableExample20 = <<<'HTML' + + HTML; + @endphp +

    Displaying Action Icons

    Using the table component with dynamic data allows you to specify some extra cool attributes. @@ -931,46 +952,48 @@ This approach of using pipes as separators will be deprecated in v4.0.0. use the array approach instead -

    -
    -    // this approach of using pipes (|) will be deprecated in v4.0.0
    -    // use the array approach instead
    -    $action_icons = [
    -        "icon:chat | tip:send message | color:green | click:sendMessage('{first_name}')",
    -        "icon:pencil | click:redirect('/user/{id}')",
    -        "icon:trash | color:red | click:deleteUser({id}, '{first_name}')",
    -    ];
    -
    -
    +@php + $tableExample21 = <<<'HTML' + // this approach of using pipes (|) will be deprecated in v4.0.0 + // use the array approach instead + $action_icons = [ + "icon:chat | tip:send message | color:green | click:sendMessage('{first_name}')", + "icon:pencil | click:redirect('/user/{id}')", + "icon:trash | color:red | click:deleteUser({id}, '{first_name}')", + ]; + HTML; + @endphp +
    Use the array approach instead -
    -
    -    // define the action icons array
    -
    -    $action_icons = [
    -    [
    -        'icon'  => 'chat-bubble-bottom-center-text',
    -        'tip'   => 'send message',
    -        'color' => 'green',
    -        'icon_type' => 'solid', // default is outline
    -        'button_outline' => false,
    -        'click' => "sendMessage('{first_name}')",
    -    ],
    -    [
    -        'icon'  => 'pencil-square',
    -        'click' => "redirect('/user/{id}')",
    -    ],
    -    [
    -        'icon'  => 'trash',
    -        'color' => 'red',
    -        'click' => "deleteUser({id}, '{first_name}')",
    -    ],
    -];
    -
    -
    +@php + $tableExample22 = <<<'HTML' + // define the action icons array + + $action_icons = [ + [ + 'icon' => 'chat-bubble-bottom-center-text', + 'tip' => 'send message', + 'color' => 'green', + 'icon_type' => 'solid', // default is outline + 'button_outline' => false, + 'click' => "sendMessage('{first_name}')", + ], + [ + 'icon' => 'pencil-square', + 'click' => "redirect('/user/{id}')", + ], + [ + 'icon' => 'trash', + 'color' => 'red', + 'click' => "deleteUser({id}, '{first_name}')", + ], + ]; + HTML; + @endphp +

    -
    -
    -    <x-bladewind::table :data="$staff"
    -        onclick="goToProfile('/user/profile', '{first_name'}, '{last_name}')" />
    -
    -    
    -
    -        
    +@php
    +        $tableExample26 = <<<'HTML'
    +            
    +            HTML;
    +    @endphp
    +    
    +        @php
    +        $tableExample27 = <<<'HTML'
                 goToProfile = (url, firstname, lastname) => {
                     alert(`You clicked on ${firstname} ${lastname}. Redirecting to ${url}`);
                 }
    -        
    -    
    + HTML; + @endphp +

    No Data Returned

    @@ -1145,13 +1173,14 @@

    -
    -
    -<x-bladewind::table
    -    no_data_message="The staff directory is empty"
    -    :data="$staff"  />
    -
    -
    +@php + $tableExample28 = <<<'HTML' + + HTML; + @endphp +

    The dynamic table builds its column headings from the array keys defined in data. @@ -1163,25 +1192,27 @@

    -
    -
    -    $column_aliases = [
    -        'id' => 'ref #',
    -        'first_name' => 'first name',
    -        'last_name' => 'last name',
    -        'marital_status' => 'married?'
    -    ];
    -
    -
    -
    -
    -<x-bladewind::table
    -    has_border="true"
    -    no_data_message="The staff directory is empty"
    -    :column_aliases="$column_aliases"
    -    :data="$staff"  />
    -
    -
    +@php + $tableExample29 = <<<'HTML' + $column_aliases = [ + 'id' => 'ref #', + 'first_name' => 'first name', + 'last_name' => 'last name', + 'marital_status' => 'married?' + ]; + HTML; + @endphp + +@php + $tableExample30 = <<<'HTML' + + HTML; + @endphp +

    Finally, it is possible to display the no data message using the Empty State component. @@ -1200,17 +1231,18 @@ message_as_empty_state="true" button_label="add staff member"/>

    -
    -
    -<x-bladewind::table
    -    :data="$no_staff"
    -    has_border="true"
    -    :column_aliases="$column_aliases"
    -    no_data_message="The staff directory is empty"
    -    message_as_empty_state="true"
    -    button_label="add staff member" />
    -
    -
    +@php + $tableExample31 = <<<'HTML' + + HTML; + @endphp +

    Check out the Empty State component for information on how to use its attributes. @@ -1228,17 +1260,18 @@ :data="$staff" divider="thin" :action_icons="$action_icons" exclude_columns="id, marital_status" include_columns="first_name, last_name, department" />
    -

    -
    -    <x-bladewind::table
    -        searchable="true"
    -        :data="$staff"
    -        divider="thin"
    -        search_placeholder="Find staff members by name..."
    -        :action_icons="$action_icons"
    -        exclude_columns="id, marital_status" />
    -
    -
    +@php + $tableExample32 = <<<'HTML' + + HTML; + @endphp +

    The search bar is designed to fill the entire width of the table. There are instances where you may want to place other UI elements next to the search, like, a date range component or filter component. @@ -1260,33 +1293,35 @@ exclude_columns="id, marital_status" include_columns="first_name, last_name, department" />


    -
    -
    -    <x-bladewind::table
    -        searchable="true"
    -        :data="$staff"
    -        divider="thin"
    -        search_container="put-search-here"
    -        search_placeholder="Find staff members by name..."
    -        :action_icons="$action_icons"
    -        exclude_columns="id, marital_status" />
    -
    -
    +@php + $tableExample33 = <<<'HTML' + + HTML; + @endphp +
    -
    -
    -<div class="flex space-x-4 items-center bg-gray-100 px-3 -py-4 rounded-lg">
    -    <div class="put-search-here p-0.5 border
    -    border-gray-300 bg-white rounded-md grow"></div>
    -    <div class="pt-3.5">
    -        <x-bladewind::datepicker range="true" add-clearing="false" />
    -    </div>
    -    <div>
    -        <x-bladewind::button secondary="true">Filter</x-bladewind::button>
    -    </div>
    -</div>
    -
    -
    +@php + $tableExample34 = <<<'HTML' +
    +
    +
    + +
    +
    + Filter +
    +
    + HTML; + @endphp +

    Aliasing Column Names

    @@ -1295,24 +1330,26 @@ This attributes accepts a json encoded array.

    -
    -
    -    $column_aliases = [
    -        'id' => 'ref #',
    -        'marital_status' => 'married?'
    -    ];
    -
    -
    -
    -
    -    <x-bladewind::table
    -        exclude_columns="id"
    -        divider="thin"
    -        :action_icons="$action_icons"
    -        :column_aliases="$column_aliases"
    -        :data="$staff" />
    -
    -
    +@php + $tableExample35 = <<<'HTML' + $column_aliases = [ + 'id' => 'ref #', + 'marital_status' => 'married?' + ]; + HTML; + @endphp + +@php + $tableExample36 = <<<'HTML' + + HTML; + @endphp + @@ -1342,29 +1379,32 @@ From the employee example above, we will set our grouping on the department key which happens to be to repeated for our employees. groupby="department".

    -
    -
    -    $staff = [
    -        [
    -            'id' => 1,
    -            'first_name' => 'Michael',
    -            'last_name' => 'Ocansey',
    -            'department' => 'Engineering',
    -            'email' => 'mike@email.com'
    -        ],
    -    ]
    -    ...
    -
    -
    -
    -
    -    <x-bladewind::table
    -        exclude_columns="last_name"
    -        divider="thin"
    -        groupby="department"
    -        :data="$staff" />
    -
    -
    +@php + $tableExample37 = <<<'HTML' + $staff = [ + [ + 'id' => 1, + 'first_name' => 'Michael', + 'last_name' => 'Ocansey', + 'department' => 'Engineering', + 'email' => 'mikeBWATSIGNPLACEHOLDERemail.com' + ], + ] + ... + HTML; + $tableExample37 = str_replace('BWATSIGNPLACEHOLDER', '@', $tableExample37); + @endphp + +@php + $tableExample38 = <<<'HTML' + + HTML; + @endphp + @@ -1379,31 +1419,33 @@ can be clicked on to sort the table. Each sortable column has a filter icon next to the column heading.

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        sortable="true"
    -        limit="5"
    -        :data="$users" />
    -
    -
    +@php + $tableExample39 = <<<'HTML' + + HTML; + @endphp +

    From the above table you can see every column in the table has a filter icon next to the column heading indicating that the column is sortable. There are cases you will want to sort your table using only very specific columns. This can be achieved by setting the sortable_columns attribute to a comma separated list of columns you want to make sortable.

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        sortable="true"
    -        limit="5"
    -        sortable_columns="first_name, last_name"
    -        :data="$users" />
    -
    -
    +@php + $tableExample40 = <<<'HTML' + + HTML; + @endphp +

    Pagination

    Pagination is useful for displaying a long list of data in sizable chunks that make it easy to look over the data. @@ -1416,16 +1458,17 @@ To turn on row numbers set show_row_numbers="true".

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        paginated="true"
    -        page_size="5"
    -        show_row_numbers="true"
    -        :data="$users" />
    -
    -
    +@php + $tableExample41 = <<<'HTML' + + HTML; + @endphp + When using show_row_numbers="true" and sortable="true", it is important to note that the row numbering is not reordered to match the sorted data. Row numbers 1, 2, 3, 4 might end up as 4, 1, 2, 3
    @@ -1437,17 +1480,18 @@ set to 1 if the value provided is greater than the total_pages.

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        paginated="true"
    -        page_size="5"
    -        show_row_numbers="true"
    -        default_page="15"
    -        :data="$users" />
    -
    -
    +@php + $tableExample42 = <<<'HTML' + + HTML; + @endphp +

    Custom Table Layouts

    Pagination is automagically applied to a BladewindUI table that accepts dynamic data. By default the table layout is flat. Every key in the array/data is created as a column. @@ -1486,65 +1530,68 @@ @endforeach

    -
    -
    -<x-bladewind::table
    -    layout="custom"
    -    :paginated="true"
    -    :page_size="$page_size = 5"
    -    :data="$users"
    -    :default_page="$default_page = 6">
    -
    -    <x-slot:header>
    -        <th>Member ID</th>
    -        <th>User Details</th>
    -        <th>Contact Details</th>
    -    </x-slot:header>
    -
    -    <tbody>
    -    @verbatim
    -        @foreach($users as $user)
    -            @php
    -                // set avatar url
    -                $image = ($loop->even) ? 'male.png' : 'female.png';
    -            @endphp
    -            <tr {{pagination_row($loop->iteration, $page_size, $default_page)}} >
    -                <td class="!w-1 !pr-0"><div class="pt-3">{{$user['member_id']}}</div> </td>
    -                <td>
    -                    <div class="flex space-x-3">
    -                        <div><x-bladewind::avatar image="/assets/images/{{$image}}" size="small" /></div>
    -                        <div>
    -                            <div class="text-base font-semibold">{{$user['first_name']}} {{$user['last_name']}}</div>
    -                            <div>{{$user['company_name']}}</div>
    -                        </div>
    -                    </div>
    -                </td>
    -                <td>
    -                    <div>{{$user['mobile']}}</div>
    -                    <div><a href="#">{{$user['email']}}</a></div>
    -                </td>
    -            </tr>
    -        @endforeach
    -    @endverbatim
    -    </tbody>
    -</x-bladewind::table>
    -
    -
    +@php + $tableExample43 = <<<'HTML' + + + +
    + + + + + + BWATSIGNPLACEHOLDERverbatim + BWATSIGNPLACEHOLDERforeach($users as $user) + BWATSIGNPLACEHOLDERphp + // set avatar url + $image = ($loop->even) ? 'male.png' : 'female.png'; + BWATSIGNPLACEHOLDERendphp + iteration, $page_size, $default_page)}} > + + + + + BWATSIGNPLACEHOLDERendforeach + BWATSIGNPLACEHOLDERendverbatim + + + HTML; + $tableExample43 = str_replace('BWATSIGNPLACEHOLDER', '@', $tableExample43); + @endphp +

    Let's breakdown the example above. Pay attention to lines 2, 4, 6 and 22. Let's talk about line 22 first. The pagination widget relies on a couple of attributes defined on the data rows to work properly. A typical data row in a pagination table looks like this:

    -
    -
    -    <tr data-id="12" data-page="1" class="hidden"> ... </tr>
    -    ...
    -    <tr data-id="34" data-page="6"> ... </tr>
    -    <tr data-id="35" data-page="6"> ... </tr>
    -    ...
    -    <tr data-id="272" data-page="9" class="hidden"> ... </tr>
    -
    -
    +@php + $tableExample44 = <<<'HTML' +
    ... + ... + ... + ... + ... + ... + HTML; + @endphp +

    As we loop to generate the table rows, any row that has its data-page attribute not corresponding to the default_page is set to class="hidden". So from our example above, we set default_page="6", any row that is not on page 6 will need to be hidden. Generating these attributes required for pagination can be a headache so a helper function is provided. @@ -1557,23 +1604,25 @@ Note how on line 4 we defined :page_size="$page_size = 5". This simply makes the variable $page_size available for us to use later when calling pagination_row($row_number, $page_size, $default_page). This is simply to avoid repetition and nothing more. We could have alternatively decided to do what's below.

    -
    -
    -<x-bladewind::table
    -    ...
    -    page_size="5"
    -    default_page="6">
    -    ...
    -    @verbatim
    -        @foreach($users as $user)
    -            <tr {{pagination_row($loop->iteration, 5, 6)}} >
    -            ...
    -        @endforeach
    -    @endverbatim
    -    </tbody>
    -</x-bladewind::table>
    -
    -

    + @php + $tableExample45 = <<<'HTML' + + ... + BWATSIGNPLACEHOLDERverbatim + BWATSIGNPLACEHOLDERforeach($users as $user) +
    iteration, 5, 6)}} > + ... + BWATSIGNPLACEHOLDERendforeach + BWATSIGNPLACEHOLDERendverbatim + + + HTML; + $tableExample45 = str_replace('BWATSIGNPLACEHOLDER', '@', $tableExample45); + @endphp +

    From the example above, if we later change page_size="20", we will need to also update pagination_row($loop->iteration, 20, 6).

    @@ -1585,17 +1634,19 @@ server-rendered Laravel app paginates. Hand the component a paginator and it switches to server mode, rendering real links.

    -
    -    
    -// in your controller
    -$orders = Order::latest()->paginate(request('per_page', 15));
    -    
    -
    -
    -    
    -<x-bladewind::pagination :paginator="$orders" :per_page_options="[15, 30, 50]" />
    -    
    -
    +@php + $tableExample46 = <<<'HTML' + // in your controller + $orders = Order::latest()->paginate(request('per_page', 15)); + HTML; + @endphp + +@php + $tableExample47 = <<<'HTML' + + HTML; + @endphp +

    You get three controls, because prev and next alone give the reader no sense of where they are: a “showing x to y of z” summary, an optional per-page selector, and @@ -1661,19 +1712,20 @@

    Arrows

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        paginated="true"
    -        page_size="5"
    -        total_label="Records :a - :b"
    -        show_row_numbers="true"
    -        pagination_style="arrows"
    -        :data="$users"
    -        show_total_pages="true"/>
    -
    -
    +@php + $tableExample48 = <<<'HTML' + + HTML; + @endphp +

    Dropdown

    @@ -1686,19 +1738,20 @@ Set pagination_style="numbers" on the table component.

    -
    -
    -    <x-bladewind::table
    -        exclude_columns="member_id, email"
    -        paginated="true"
    -        page_size="5"
    -        total_label="Records :a - :b"
    -        show_row_numbers="true"
    -        pagination_style="numbers"
    -        :data="$users"
    -        show_total_pages="true"/>
    -
    -
    +@php + $tableExample49 = <<<'HTML' + + HTML; + @endphp + @@ -1719,16 +1772,17 @@ :columns there is nothing to exclude, since a column appears only because you listed it. Drop a column by removing it from the array. -
    -        
    -<x-bladewind::table :columns="[
    -        ['key' => 'when',   'label' => 'When',   'width' => '160px'],
    -        ['key' => 'amount', 'label' => 'Amount', 'align' => 'right', 'sortable' => true],
    -    ]" :rows="$rows">
    -    <x-slot:empty>No transactions yet</x-slot:empty>
    -</x-bladewind::table>
    -        
    -    
    + @php + $tableExample50 = <<<'HTML' + + No transactions yet + + HTML; + @endphp +

    Column Keys

    @@ -1747,32 +1801,34 @@

    Shorthands

    Most columns need none of those options, so two shorter forms are accepted.

    -
    -        
    -{{-- keys only; labels are derived --}}
    -<x-bladewind::table :columns="['when', 'amount']" :rows="$rows" />
    +    @php
    +        $tableExample51 = <<<'HTML'
    +            {{-- keys only; labels are derived --}}
    +            
     
    -{{-- key => label --}}
    -<x-bladewind::table :columns="['when' => 'Date placed', 'amount' => 'Total']" :rows="$rows" />
    -        
    -    
    + {{-- key => label --}} + + HTML; + @endphp +

    Formatting A Column

    format receives the whole row as well as the value, so a column can render something the row does not literally contain.

    -
    -        
    -$columns = [
    -    ['key' => 'amount', 'align' => 'right',
    -     'format' => fn ($value) => 'GHS ' . number_format($value, 2)],
    -
    -    ['key' => 'first_name', 'label' => 'Name',
    -     'format' => fn ($value, $row) => $value . ' ' . $row['last_name']],
    -];
    -        
    -    
    + @php + $tableExample52 = <<<'HTML' + $columns = [ + ['key' => 'amount', 'align' => 'right', + 'format' => fn ($value) => 'GHS ' . number_format($value, 2)], + + ['key' => 'first_name', 'label' => 'Name', + 'format' => fn ($value, $row) => $value . ' ' . $row['last_name']], + ]; + HTML; + @endphp +

    A key missing from a row renders an empty cell rather than failing.

    The Empty Slot

    @@ -2045,9 +2101,9 @@

    Table with all attributes defined

    -
    -        
    -            <x-bladewind::table
    +    @php
    +        $tableExample53 = <<<'HTML'
    +            
     
    -                <x-slot name="header">
    +                
                         ...
    -                </x-slot>
    +                
     
    -                <tr>
    +                
    ... - </tr> + - </x-bladewind::table> - - + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > table.blade.php and public > vendor > bladewind > js > table.js diff --git a/resources/views/docs/tag.blade.php b/resources/views/docs/tag.blade.php index 34d557cf..e6335884 100644 --- a/resources/views/docs/tag.blade.php +++ b/resources/views/docs/tag.blade.php @@ -5,11 +5,12 @@

    Tags, sometimes referred to as labels allow you to logically group items or indicate statuses of items. You can also use tags to list selections. They are very simple to use.

    -
    -        
    -            <x-bladewind::tag label="pending"  />
    -        
    -    
    + @php + $tagExample1 = <<<'HTML' + + HTML; + @endphp +

    Faint Coloured

    The BladewindUI tag component allows you to specify different colours. The tags by default are faint in colour with blue being the default colour. @@ -29,16 +30,18 @@    

    -
    -        
    -            <x-bladewind::tag label="pending" color="color-name" />
    -        
    -    
    -
    -        
    -          <x-bladewind::tag label="pending" color="pink" />
    -        
    -    
    + @php + $tagExample2 = <<<'HTML' + + HTML; + @endphp + + @php + $tagExample3 = <<<'HTML' + + HTML; + @endphp +

    Dark Coloured

    Dark colours in this case have nothing to do with dark mode. These are just a deeper shade of the tag colours. You can get darker shaded tags by setting shade="dark"

    @@ -57,16 +60,18 @@    

    -
    -        
    -            <x-bladewind::tag label="pending" shade="dark" color="color-name" />
    -        
    -    
    -
    -        
    -            <x-bladewind::tag label="pending" shade="dark" color="purple" />
    -        
    -    
    + @php + $tagExample4 = <<<'HTML' + + HTML; + @endphp + + @php + $tagExample5 = <<<'HTML' + + HTML; + @endphp +

    With Close Icons

    @@ -74,16 +79,17 @@ To activate close icons, set can_close="true". The default action when the close icon is clicked is to remove the tag that was clicked.

     

    -
    -        
    -            <x-bladewind::tag label="pending"
    -                can_close="true" />
    +    @php
    +        $tagExample6 = <<<'HTML'
    +            
     
    -            <x-bladewind::tag label="pending"
    +            
    -    
    + color="pink" /> + HTML; + @endphp +

    The default action when the close icon is clicked is to remove the tag that was clicked. @@ -97,23 +103,24 @@

    -
    -        
    -            <x-bladewind::tag
    +    @php
    +        $tagExample7 = <<<'HTML'
    +            
     
    -            <x-bladewind::tag
    +            
    -    
    + onclick="alert('you clicked on '+ dom_el('.a1002').innerText)" /> + HTML; + @endphp +

    Tiny Tags

    Sometimes you need to display tags as hints. For example in a menu bar you may want users to know which features are new by displaying a colourful but tiny new tag next to each new menu item. @@ -123,17 +130,20 @@ class="a1002"

     

    -
    -        
    -            <x-bladewind::tag label="just added" tiny="true" color="pink" />
    -        
    -    
    -
    -        <x-bladewind::tag label="new" tiny="true" color="purple"
    -            shade="dark"
    -            uppercasing="false"/>
    -        
    -    
    + @php + $tagExample8 = <<<'HTML' + + HTML; + @endphp + + @php + $tagExample9 = <<<'HTML' + + HTML; + @endphp +

    Rounded Tags

    @@ -141,33 +151,35 @@ class="a1002" Yes you can!. To make tags rounded set rounded="true".

     

    -
    -        
    -            <x-bladewind::tag label="pending"
    -                rounded="true" />
    +    @php
    +        $tagExample10 = <<<'HTML'
    +            
     
    -            <x-bladewind::tag label="pending"
    +            
    -    
    + color="pink" /> + HTML; + @endphp +

    Outline Tags

    What if you prefer to have no background colours on your tags. Just a border outline with your chosen colour. Simply set outline="true". The outline border colour is also affected by the shade you set. So light shades have a lighter outline. Dark shades have a darker outline.

     

    -
    -        
    -            <x-bladewind::tag label="pending" outline="true" color="pink" />
    +    @php
    +        $tagExample11 = <<<'HTML'
    +            
     
    -            <x-bladewind::tag label="pending" can_close="true"
    +            
    -    
    + shade="dark" /> + HTML; + @endphp +

    Selectable Tags

    Selectable tags allow you to use tags in forms. You can think of them in this case as a different kind of checkboxes. @@ -199,25 +211,26 @@ class="a1002" -

    -        
    -            <x-bladewind::tags
    +    @php
    +        $tagExample12 = <<<'HTML'
    +            
     
    -                <x-bladewind::tag label="laravel" value="laravel" />
    -                <x-bladewind::tag label="javascript" value="js" />
    -                <x-bladewind::tag label="node js" value="node js" />
    -                <x-bladewind::tag label="tailwindcss" value="tailwind" />
    -                <x-bladewind::tag label="c-sharp" value="cs" />
    +                
    +                
    +                
    +                
    +                
     
    -            </x-bladewind::tags>
    -        
    -    
    + + HTML; + @endphp +

    Note the tags are wrapped in a parent <x-bladewind::tags>...</x-bladewind::tags> component. @@ -241,16 +254,17 @@ class="a1002" -

    -        
    -            <x-bladewind::tags color="green" name="host">
    -                <x-bladewind::tag label="digital ocean" value="do" />
    -                <x-bladewind::tag label="amazon web services" value="aws" />
    -                <x-bladewind::tag label="microsoft azure" value="azure" />
    -                <x-bladewind::tag label="google cloud" value="google" />
    -            </x-bladewind::tags>
    -        
    -    
    + @php + $tagExample13 = <<<'HTML' + + + + + + + HTML; + @endphp +
    What are your interests?
    @@ -260,16 +274,17 @@ class="a1002"
    -
    -        
    -            <x-bladewind::tags color="gray" name="interests">
    -                <x-bladewind::tag label="artificial intelligence" value="AI" />
    -                <x-bladewind::tag label="blockchain" value="blockchain" />
    -                <x-bladewind::tag label="cryptocurrency" value="crypto" />
    -                <x-bladewind::tag label="software engineering" value="software" />
    -            </x-bladewind::tags>
    -        
    -    
    + @php + $tagExample14 = <<<'HTML' + + + + + + + HTML; + @endphp +
    What is your gender?
    @@ -280,25 +295,26 @@ class="a1002"
    -
    -        
    -            <x-bladewind::tags
    +    @php
    +        $tagExample15 = <<<'HTML'
    +            
     
    -                <x-bladewind::tag label="Male" value="male" />
    -                <x-bladewind::tag label="female" value="female" />
    -                <x-bladewind::tag label="other" value="other" />
    -                <x-bladewind::tag label="don't ask" value="shoosh" />
    +                
    +                
    +                
    +                
     
    -            </x-bladewind::tags>
    -        
    -    
    + + HTML; + @endphp +
    What do you do on friday evenings?

    @@ -313,23 +329,24 @@ class="space-x-2" -

    -        
    -            <x-bladewind::tags
    +    @php
    +        $tagExample16 = <<<'HTML'
    +            
     
    -                <x-bladewind::tag label="hangout with friends" value="hangout" />
    -                <x-bladewind::tag label="go clubbing" value="club" />
    -                <x-bladewind::tag label="watch movies" value="movies" />
    -                <x-bladewind::tag label="just chill" value="chill" />
    -                <x-bladewind::tag label="sleeeeep" value="sleep" />
    +                
    +                
    +                
    +                
    +                
     
    -            </x-bladewind::tags>
    -        
    -    
    + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Tag component.

    @@ -492,9 +509,9 @@ class="space-x-2"

    Tags with all attributes defined

    -
    -        
    -            <x-bladewind::tags
    +    @php
    +        $tagExample17 = <<<'HTML'
    +            
    -    
    + error_heading="Check selection!"> + HTML; + @endphp +

    Tag with all attributes defined

    -
    -        
    -            <x-bladewind::tag
    +    @php
    +        $tagExample18 = <<<'HTML'
    +            
    -    
    + onclick="alert('you clicked on '+ dom_el('.a1002').innerText)" /> + HTML; + @endphp + The source files for this component are available in resources > views > components > bladewind > tags.blade.php, diff --git a/resources/views/docs/textarea.blade.php b/resources/views/docs/textarea.blade.php index c2319649..591d06aa 100644 --- a/resources/views/docs/textarea.blade.php +++ b/resources/views/docs/textarea.blade.php @@ -8,39 +8,43 @@ Example, rows="5".

    -
    -        
    -            <x-bladewind::textarea  />
    -        
    -    
    + @php + $textareaExample1 = <<<'HTML' + + HTML; + @endphp +

    Add Placeholder Text

    -
    -        
    -            <x-bladewind::textarea placeholder="Comment"  />
    -        
    -    
    + @php + $textareaExample2 = <<<'HTML' + + HTML; + @endphp +

    With Labels

    You can display the BladewindUI textarea with labels. Labels present themselves as placeholders but jump to the top border of the textarea when that field has focus. This is a nice way to build compact looking forms without having form labels in the way. If you prefer to create and style your own form labels, simply ignore the label attribute and use the placeholder attribute instead.

    -
    -        
    -            <x-bladewind::textarea label="Comment"  />
    -        
    -    
    + @php + $textareaExample3 = <<<'HTML' + + HTML; + @endphp +

    Required Fields

    This either adds a red asterisk sign to the placeholder text or a red star to the label of the textarea field.

    -
    -        
    -            <x-bladewind::textarea required="true" label="Comment"  />
    -        
    -    
    + @php + $textareaExample4 = <<<'HTML' + + HTML; + @endphp +

    See component/textarea documentation on Validating Required Fields.

    @@ -54,17 +58,18 @@ onfocus="changeCss('.events', '!border-2,!border-red-400')" onblur="changeCss('.events', '!border-2,!border-red-400', 'remove')">

    -
    -        
    -            <x-bladewind::textarea
    +    @php
    +        $textareaExample5 = <<<'HTML'
    +            
    -    
    + onblur="changeCss('.events', '!border-2,!border-red-400', 'remove')"> +
    + HTML; + @endphp +

    Simple Toolbar

    The textarea can display simple toolbar by setting toolbar="true". @@ -72,12 +77,13 @@

    -
    -
    -    <x-bladewind::textarea
    -        placeholder="Comment" toolbar="true"></x-bladewind::textarea>
    -
    -
    +@php + $textareaExample6 = <<<'HTML' + + HTML; + @endphp +

    The formatting options listed on the toolbar are bold, @@ -100,13 +106,14 @@

    -
    -
    -    <x-bladewind::textarea
    -        except="align, indent, color, background"
    -        placeholder="Comment" toolbar="true"></x-bladewind::textarea>
    -
    -
    + @php + $textareaExample7 = <<<'HTML' + + HTML; + @endphp +

    Laravel Form State

    @@ -115,15 +122,16 @@ can read both for you, so you no longer write @{{ old('...') }} and an error block on every single field.

    -
    -        
    -<x-bladewind::textarea
    -    name="bio"
    -    label="Short bio"
    -    fill_from_old="true"
    -    show_validation_error="true" />
    -        
    -    
    + @php + $textareaExample8 = <<<'HTML' + + HTML; + @endphp +

    fill_from_old repopulates the field from old(). show_validation_error gives @@ -140,16 +148,17 @@ Rather than setting the attributes field by field, set them once in your config/bladewind.php and every form component follows.

    -
    -        
    -// config/bladewind.php
    -'forms' => [
    -    'fill_from_old' => true,
    -    'show_validation_error' => true,
    -    'error_bag' => null,
    -],
    -        
    -    
    + @php + $textareaExample9 = <<<'HTML' + // config/bladewind.php + 'forms' => [ + 'fill_from_old' => true, + 'show_validation_error' => true, + 'error_bag' => null, + ], + HTML; + @endphp +

    An attribute on a single field always wins over the config, so you can opt one field out with show_validation_error="false". @@ -263,23 +272,24 @@

     

    Textarea with all attributes defined

    -
    -
    -<x-bladewind::textarea
    -    name="message"
    -    label="Enter message"
    -    placeholder=""
    -    add_clearing="false"
    -    required="true"
    -    toolbar="true"
    -    except="align, bold, italic"
    -    show_error_inline="false"
    -    error_heading="Error"
    -    error_message="A comment is required"
    -    rows="5"
    -    selected_value="" /></x-bladewind::textarea>
    -
    -
    +@php + $textareaExample10 = <<<'HTML' + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > textarea.blade.php diff --git a/resources/views/docs/theme-switcher.blade.php b/resources/views/docs/theme-switcher.blade.php index 87a637c4..88787707 100644 --- a/resources/views/docs/theme-switcher.blade.php +++ b/resources/views/docs/theme-switcher.blade.php @@ -10,11 +10,12 @@

    There can be only one theme switcher on a page. The Bladwind docs uses the theme switcher in the top right corner of the website.

    -
    -        
    -            <x-bladewind::theme-switcher  />
    -        
    -    
    + @php + $themeUswitcherExample1 = <<<'HTML' + + HTML; + @endphp +

    There are a few customizations available. See the full list of attributes below. Also refer to our dark mode customization page for more.

    @@ -88,9 +89,9 @@

     

    Theme Switcher with all attributes defined

    -
    -        
    -            <x-bladewind::theme-switcher
    +    @php
    +        $themeUswitcherExample2 = <<<'HTML'
    +            
    -    
    + system_icon="day-night" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > theme-switcher.blade.php diff --git a/resources/views/docs/timeline.blade.php b/resources/views/docs/timeline.blade.php index 93052845..9f5e8c4b 100644 --- a/resources/views/docs/timeline.blade.php +++ b/resources/views/docs/timeline.blade.php @@ -12,23 +12,24 @@

    -
    -        
    -            <x-bladewind::timeline
    +    @php
    +        $timelineExample1 = <<<'HTML'
    +            
    +            
    +            
    -    
    + content="Customer rep called"/> + + + HTML; + @endphp +

    Bigger Anchors

    By default each timeline anchors itself on small transparent circles. We can set the anchors to use bigger circles instead, by setting anchor="big". @@ -41,15 +42,16 @@ -

    -        
    -            <x-bladewind::timeline
    +    @php
    +        $timelineExample2 = <<<'HTML'
    +            
                 ...
    -        
    -    
    + HTML; + @endphp +

    Completed

    Setting the attribute completed="true" will mark a timeline event as completed. @@ -63,15 +65,16 @@ -

    -        
    -            <x-bladewind::timeline
    +    @php
    +        $timelineExample3 = <<<'HTML'
    +            
                 ...
    -        
    -    
    + HTML; + @endphp +

    Completed when anchor="big"

    @@ -80,16 +83,17 @@ -
    -        
    -            <x-bladewind::timeline
    +    @php
    +        $timelineExample4 = <<<'HTML'
    +            
                 ...
    -        
    -    
    + HTML; + @endphp +

    Stacked Timelines

    @@ -113,35 +117,37 @@ -

    -    
    -            <x-bladewind::timelines stacked="true">
    +@php
    +        $timelineExample5 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline date="30 minutes ago">
    -                    <x-slot:content>
    -                        <a>2 endpoints</a> are failing on bladewindui-data EC2
    +                
    +                    
    +                        2 endpoints are failing on bladewindui-data EC2
                             bucket. You may want to login and check the logs
    -                    </x-slot:content>
    -                </x-bladewind::timeline>
    +                    
    +                
     
    -                <x-bladewind::timeline date="1 hour ago">
    -                    <x-slot:content>
    +                
    +                    
                             There have been 200 failed log in attempts from
    -                        <a>mike@bladewindui.com</a>. Possibly a DDos attack
    +                        mikeBWATSIGNPLACEHOLDERbladewindui.com. Possibly a DDos attack
                             attempt. Secure the server.
    -                    </x-slot:content>
    -                </x-bladewind::timeline>
    +                    
    +                
     
    -                <x-bladewind::timeline date="Yesterday"
    -                    content="Data recovery completed with 2 errors" />
    +                
     
    -            </x-bladewind::timelines>
    -    
    -
    + + HTML; + $timelineExample5 = str_replace('BWATSIGNPLACEHOLDER', '@', $timelineExample5); + @endphp +

    Notice we introduced a x-bladewind::timelines component in the above example. This is completely optional but saves us from writing stacked="true" on each tag component. The alternative is to have @@ -164,21 +170,22 @@
    -

    -    
    -            <x-bladewind::timelines
    +@php
    +        $timelineExample6 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
                     ...
     
    -            </x-bladewind::timelines>
    -    
    -
    + + HTML; + @endphp +

    Stacked and completed with anchor="big"


    @@ -198,27 +205,28 @@
    -
    -    
    -            <x-bladewind::timelines
    +@php
    +        $timelineExample7 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
                     ...
     
    -            <x-bladewind::timeline
    +            
     
    -            </x-bladewind::timelines>
    -    
    -
    + + HTML; + @endphp +

    Anchor Icons and Avatars

    Anchor Icons

    @@ -244,38 +252,39 @@ -
    -        
    -            <x-bladewind::timelines anchor="big" completed="true">
    +    @php
    +        $timelineExample8 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline
    +                
     
    -            </x-bladewind::timelines>
    -        
    -    
    + + HTML; + @endphp +

    Anchor Avatars

    Thanks to the BladewindUI Avatar component, using avatars as Timeline anchors is easy. @@ -289,23 +298,24 @@ -

    -        
    -            <x-bladewind::timelines>
    +    @php
    +        $timelineExample9 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline
    +                
                 ...
    -            </x-bladewind::timelines>
    -        
    -    
    + + HTML; + @endphp +

    Positioning and Aligning Timelines

    @@ -334,20 +344,21 @@
    -

    -        
    -            <x-bladewind::timelines
    +    @php
    +        $timelineExample10 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
                 ...
    -            </x-bladewind::timelines>
    -        
    -    
    + + HTML; + @endphp +

    Left Positioning for Stacked Timelines

    Note how the timeline fills the entire width of the page. If you do not want this, you can place the timeline group in a parent element that has a fixed width.

    @@ -365,25 +376,26 @@
    -
    -        
    -            <x-bladewind::timelines
    +    @php
    +        $timelineExample11 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    -                    date="30 minutes ago">
    -                     <x-slot:content>
    -                        <a>2 endpoints</a> are failing on
    +                
    +                     
    +                        2 endpoints are failing on
                             bladewindui-data EC2 bucket.
                             You may want to login and check the logs
    -                    </x-slot:content>
    -                <x-bladewind::timeline/>
    +                    
    +                
                 ...
    -            </x-bladewind::timelines>
    -        
    -    
    + + HTML; + @endphp +

    Left Alignment

    Alignments only work for stacked timelines and only for the x-bladewind::timeline component. @@ -411,44 +423,46 @@
    -

    -        
    -            <x-bladewind::timelines
    +    @php
    +        $timelineExample12 = <<<'HTML'
    +            
     
    -                <x-bladewind::timeline
    +                
     
    -                <x-bladewind::timeline d
    -                    ate="30 minutes ago">
    -                    <x-slot:content>
    -                        <a>2 endpoints</a> are failing on
    +                
    +                    
    +                        2 endpoints are failing on
                             bladewindui-data EC2 bucket. You may want to login
                             and check the logs
    -                    </x-slot:content>
    -                </x-bladewind::timeline>
    +                    
    +                
     
    -                <x-bladewind::timeline
    +                
    +                    
                             There have been 200 failed log in attempts from
    -                        <a>mike@bladewindui.com</a>.
    +                        mikeBWATSIGNPLACEHOLDERbladewindui.com.
                             Possibly a DDos attack attempt.
                             Secure the server.
    -                    </x-slot:content>
    -                </x-bladewind::timeline>
    +                    
    +                
     
    -                <x-bladewind::timeline
    +                
     
    -            </x-bladewind::timelines>
    -        
    -    
    + + HTML; + $timelineExample12 = str_replace('BWATSIGNPLACEHOLDER', '@', $timelineExample12); + @endphp +

    No Trailing Line

    @@ -463,17 +477,18 @@ -

    -        
    -        <x-bladewind::timeline
    -                date="10 days ago"
    -                content="You signed up" />
    -        ...
    -        <x-bladewind::timeline
    -            content="Account activated"
    -            last="true"  />
    -        
    -    
    + @php + $timelineExample13 = <<<'HTML' + + ... + + HTML; + @endphp +

    Different Colours

    @@ -486,33 +501,34 @@ -

    -        
    -            <x-bladewind::timeline
    +    @php
    +        $timelineExample14 = <<<'HTML'
    +            
     
    -            <x-bladewind::timeline
    +            
     
    -            <x-bladewind::timeline
    +            
     
    -            <x-bladewind::timeline
    +            
     
    -            <x-bladewind::timeline
    +            
    -    
    + color="gray" /> + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Button component.

    @@ -656,9 +672,9 @@

    Timeline with all attributes defined

    -
    -        
    -            <x-bladewind::timelines
    +    @php
    +        $timelineExample15 = <<<'HTML'
    +            
    -    
    -
    -        
    -            <x-bladewind::timeline
    +                completed="true" />
    +            HTML;
    +    @endphp
    +    
    +    @php
    +        $timelineExample16 = <<<'HTML'
    +            
    -    
    + completed="true" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > timelines.blade.php, diff --git a/resources/views/docs/timepicker.blade.php b/resources/views/docs/timepicker.blade.php index ba55d39b..71f53085 100644 --- a/resources/views/docs/timepicker.blade.php +++ b/resources/views/docs/timepicker.blade.php @@ -7,18 +7,20 @@ -
    -                
    -                    <x-bladewind::timepicker  />
    -                
    -            
    + @php + $timepickerExample1 = <<<'HTML' + + HTML; + @endphp +
    -
    -                
    -                    <x-bladewind::timepicker style="inline"  />
    -                
    -            
    + @php + $timepickerExample2 = <<<'HTML' + + HTML; + @endphp +

    Time Formats

    @@ -28,40 +30,45 @@

    -
    -                
    -                    <x-bladewind::timepicker format="24"  />
    -                
    -            
    + @php + $timepickerExample3 = <<<'HTML' + + HTML; + @endphp +
    -
    -                
    -                    <x-bladewind::timepicker style="inline" format="24"  />
    -                
    -            
    + @php + $timepickerExample4 = <<<'HTML' + + HTML; + @endphp +

    Required Fields

    An asterisk is appended to the placeholder text when required="true".

        -
    -                
    -                    <x-bladewind::timepicker required="true"  />
    -                
    -            
    -
    -                
    -                    <x-bladewind::timepicker label="HH:MM" required="true"  />
    -                
    -            
    + @php + $timepickerExample5 = <<<'HTML' + + HTML; + @endphp + + @php + $timepickerExample6 = <<<'HTML' + + HTML; + @endphp +
    -
    -                
    -                    <x-bladewind::timepicker style="inline" required="true"  />
    -                
    -            
    + @php + $timepickerExample7 = <<<'HTML' + + HTML; + @endphp +

    Default Values

    @@ -71,39 +78,44 @@

    -
    -                
    -                    <x-bladewind::timepicker selected_value="3:25PM"  />
    -                
    -            
    -
    -                
    -                    <x-bladewind::timepicker selected_value="03:25" format="24" />
    -                
    -            
    + @php + $timepickerExample8 = <<<'HTML' + + HTML; + @endphp + + @php + $timepickerExample9 = <<<'HTML' + + HTML; + @endphp +
    -
    -                
    -                    <x-bladewind::timepicker style="inline" selected_value="3:25PM"  />
    -                
    -            
    -
    -                
    -                    <x-bladewind::timepicker style="inline" format="24" selected_value="03:25"  />
    -                
    -            
    -
    -
    -<x-bladewind::timepicker
    -    required="true"
    -    style="inline"
    -    format="24"
    -    selected_value="03:25"  />
    -
    -
    + @php + $timepickerExample10 = <<<'HTML' + + HTML; + @endphp + + @php + $timepickerExample11 = <<<'HTML' + + HTML; + @endphp + +@php + $timepickerExample12 = <<<'HTML' + + HTML; + @endphp +

    Form Values

    @@ -115,15 +127,16 @@

    When your form is submitted, you will be able to retrieve the time as shown below.

    -
    -        
    +    @php
    +        $timepickerExample13 = <<<'HTML'
                 // if format="12" (default)
                 $request->event_time; // outputs 1:25PM
     
                 // if format="24"
                 $request->event_time; // outputs 01:25
    -        
    -    
    + HTML; + @endphp +

     

    Full List Of Attributes

    @@ -193,21 +206,22 @@

     

    Timepicker with all attributes defined

    -
    -
    -<x-bladewind.timepicker
    -    name="start_time"
    -    format="24"
    -    required="false"
    -    hour_label="hh"
    -    minute_label="mm"
    -    format_label="AM/PM"
    -    placeholder="Start Time"
    -    label="Start Time"
    -    style="inline"
    -    selected_value="12:35AM" />
    -
    -
    +@php + $timepickerExample14 = <<<'HTML' + + HTML; + @endphp +

     

    diff --git a/resources/views/docs/toggle.blade.php b/resources/views/docs/toggle.blade.php index 82670001..48b779c7 100644 --- a/resources/views/docs/toggle.blade.php +++ b/resources/views/docs/toggle.blade.php @@ -6,43 +6,47 @@ Display a toggle input. Under the hood, the toggle component is a checkbox spiced up nicely.

    -
    -        
    -            <x-bladewind::toggle  />
    -        
    -    
    + @php + $toggleExample1 = <<<'HTML' + + HTML; + @endphp +

    You can display the toggle component with a label that can be positioned either on the left or right of the component. The default position is left but can easily be flipped to the right by setting the attribute label_position="right". Clicking on the label toggles the component.

    -
    -        
    -            <x-bladewind::toggle label="Send me quarterly newsletters"  />
    -        
    -    
    + @php + $toggleExample2 = <<<'HTML' + + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample3 = <<<'HTML'
    +            
    -    
    + label_position="right" /> + HTML; + @endphp +

    The toggle component by default is displayed as an inline-flex element to enable you sit multiple toggles side by side. If you prefer your toggles to fill up their parent containers and be justified with the label, set justified="true".

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample4 = <<<'HTML'
    +            
    -    
    + justified="true" /> + HTML; + @endphp +

    Thin and Thicker Bars

    @@ -50,50 +54,55 @@ Set bar="thin" or bar="thicker". The default bar is set at bar="thick".

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample5 = <<<'HTML'
    +            
    -    
    + bar="thin" /> + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample6 = <<<'HTML'
    +            
    -    
    + bar="thicker" /> + HTML; + @endphp +

    Checked and Disabled

    The toggle component can be checked and/or disabled by default. To check the component set checked="true". To mark the toggle as disabled, set disabled="true".

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample7 = <<<'HTML'
    +            
    -    
    + label="I am checked at birth" /> + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample8 = <<<'HTML'
    +            
    -    
    + label="I am checked at birth" /> + HTML; + @endphp +

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample9 = <<<'HTML'
    +            
    -    
    + label="I am checked at birth" /> + HTML; + @endphp +

    Different Colours

    @@ -106,15 +115,60 @@         

    -

    <x-bladewind::toggle color="red" />

    -

    <x-bladewind::toggle color="yellow" />

    -

    <x-bladewind::toggle color="green" />

    -

    <x-bladewind::toggle color="pink" />

    -

    <x-bladewind::toggle color="cyan" />

    -

    <x-bladewind::toggle color="gray" />

    -

    <x-bladewind::toggle color="purple" />

    -

    <x-bladewind::toggle color="orange" />

    -

    <x-bladewind::toggle color="blue" />

    +

    @php + $toggleExample10 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample11 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample12 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample13 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample14 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample15 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample16 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample17 = <<<'HTML' + + HTML; + @endphp +

    +

    @php + $toggleExample18 = <<<'HTML' + + HTML; + @endphp +

    Full List Of Attributes

    The table below shows a comprehensive list of all the attributes available for the Toggle component.

    @@ -175,9 +229,9 @@

    Toggle with all attributes defined

    -
    -        
    -            <x-bladewind::toggle
    +    @php
    +        $toggleExample19 = <<<'HTML'
    +            
    -    
    + onclick="alert('hey there')" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > toggle.blade.php diff --git a/resources/views/docs/tooltip.blade.php b/resources/views/docs/tooltip.blade.php index c24cbd01..a2374787 100644 --- a/resources/views/docs/tooltip.blade.php +++ b/resources/views/docs/tooltip.blade.php @@ -11,13 +11,14 @@ Hover over me -
    -        
    -            <x-bladewind::tooltip text="This is a tooltip">
    -                <x-bladewind::button>Hover over me</x-bladewind::button>
    -            </x-bladewind::tooltip>
    -        
    -    
    + @php + $tooltipExample1 = <<<'HTML' + + Hover over me + + HTML; + @endphp +

    Any element can be wrapped — a button, an icon, a link, a table cell, or plain text. @@ -27,13 +28,14 @@ -

    -        
    -            <x-bladewind::tooltip text="View user profile">
    -                <x-bladewind::icon name="user-circle" class="size-6 text-slate-500 cursor-pointer" />
    -            </x-bladewind::tooltip>
    -        
    -    
    + @php + $tooltipExample2 = <<<'HTML' + + + + HTML; + @endphp +

    Position

    @@ -56,14 +58,15 @@ left -

    -        
    -            <x-bladewind::tooltip text="Appears on top" position="top">...</x-bladewind::tooltip>
    -            <x-bladewind::tooltip text="Appears on the right" position="right">...</x-bladewind::tooltip>
    -            <x-bladewind::tooltip text="Appears at the bottom" position="bottom">...</x-bladewind::tooltip>
    -            <x-bladewind::tooltip text="Appears on the left" position="left">...</x-bladewind::tooltip>
    -        
    -    
    + @php + $tooltipExample3 = <<<'HTML' + ... + ... + ... + ... + HTML; + @endphp +

    Colour

    @@ -80,12 +83,13 @@ light -

    -        
    -            <x-bladewind::tooltip text="I am dark (default)" color="dark">...</x-bladewind::tooltip>
    -            <x-bladewind::tooltip text="I am light" color="light">...</x-bladewind::tooltip>
    -        
    -    
    + @php + $tooltipExample4 = <<<'HTML' + ... + ... + HTML; + @endphp +

    Tooltips In Scrolling Containers

    @@ -149,18 +153,19 @@

    Tooltip with all attributes defined

    -
    -        
    -            <x-bladewind::tooltip
    +    @php
    +        $tooltipExample5 = <<<'HTML'
    +            
    -    
    + class="ml-2"> + + + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > tooltip.blade.php diff --git a/resources/views/docs/transfer-list.blade.php b/resources/views/docs/transfer-list.blade.php index 790cac1f..87f48915 100644 --- a/resources/views/docs/transfer-list.blade.php +++ b/resources/views/docs/transfer-list.blade.php @@ -21,9 +21,9 @@ :selected="[2]" /> -
    -        
    -            <x-bladewind::transfer-list
    +    @php
    +        $transferUlistExample1 = <<<'HTML'
    +            
    -    
    + /> + HTML; + @endphp +

    items accepts an array or a JSON string; each item needs at least a value and a label key (override the key names with @@ -45,16 +46,17 @@

    Custom value/label keys

    -
    -        
    -            <x-bladewind::transfer-list
    +    @php
    +        $transferUlistExample2 = <<<'HTML'
    +            
    -    
    + /> + HTML; + @endphp +

    Panel labels and size

    @@ -62,17 +64,18 @@ and each panel's height (in pixels) with height.

    -
    -        
    -            <x-bladewind::transfer-list
    +    @php
    +        $transferUlistExample3 = <<<'HTML'
    +            
    -    
    + /> + HTML; + @endphp +

    @@ -141,11 +144,11 @@

    Transfer List with all attributes defined

    -
    -        
    -            <x-bladewind::transfer-list
    +    @php
    +        $transferUlistExample4 = <<<'HTML'
    +            
    -    
    + class="ml-2" /> + HTML; + @endphp + The source file for this component is available in resources > views > components > bladewind > transfer-list.blade.php
    ` content, and the default slot for hand-written `
    ReferenceCustomerTotal
    ORD-1041Kofi Addo$84.00
    Total$84.00
    ` content, used instead of columns. | +| default | Custom `
    NameDepartmentEmail
    Alfred Rowe Outsourcing alfred@therowe.com Delete
    disableNative truefalse lets the browser's own context menu show and disables this component entirely — useful for turning the feature off conditionally.false lets the browser's own context menu show and disables this component entirely, useful for turning the feature off conditionally.
    padded
    name auto-generatedUsed as the JS variable the component is exposed on (window.{name}) and to scope its script tags. Not a form field — this component does not submit.Used as the JS variable the component is exposed on (window.{name}) and to scope its script tags. Not a form field: this component does not submit.
    cardholder_name
    slot_minutes6030 Grid line granularity. 60 30 15
    OptionDefaultAvailable Values
    toneinfoinfo success warning error primary
    titleblankAn optional bold heading shown above the message.
    show_icontrueDetermines if the tone's icon is displayed. true false
    iconblankUse any icon name from Heroicons instead of the tone's default icon.
    dismissibletrueDetermines if a close icon is shown so visitors can hide the banner. true false
    persist_keyblankRemembers a dismissal in the visitor's browser under this key, so the banner stays hidden on later visits. Leave blank and the banner shows again on every page load.
    roundedfalseDetermines if the banner has rounded corners. true false
    actionsnoneA named slot for one or more buttons or links, shown beside the message.
    classblankAny additional CSS classes you wish to add.
    OptionDefaultAvailable Values
    nameauto-generatedUnique identifier used by showModal() / hideModal().
    titleAre you sure?Dialog heading.
    tonedangerdanger | warning | info | primary
    confirmLabelConfirmLabel on the confirm button.
    cancelLabelCancelLabel on the cancel button.
    onConfirm(blank)Raw JS expression run on confirm, wrapped in a function that may return a Promise. Blank makes Confirm a plain close.
    closeAfterConfirmtrueClose the dialog once onConfirm's promise resolves.
    backdropCanClosefalseUnlike Modal, defaults to false.
    sizesmallAny Modal size: tiny | small | medium | big | large | xl | omg
    icon(blank)Overrides the icon tone would otherwise pick, using any Heroicons name.
    MethodDescription
    name.value + The current value as { number, numberDigits, cardholderName, expiryMonth, expiryYear, cvc, brand }. + number is the formatted, on-screen string; numberDigits is digits only. +
    name.validate() + Runs the same completeness check as required, toggles the inline error + message, and returns true or false. Always + returns true when required is not set. +
    name.toggleFlip()Flips the card to whichever face it isn't currently showing.
    name.isFlipped()Returns true while the back (CVC) face is showing.
    Option
    Option
    ItemQuantityPrice (USD)
    Airpods Max (Black)1500.00
    Returns true while the back (CVC) face is showing.
    ReferenceCustomerTotal
    ORD-1041Kofi Addo$84.00
    Total$84.00
    Reference
    searchOn every keystroke in the search field, with the current query.
    AttributeDefaultDescription
    setDataGridLoading(name, loading)Toggles the dimmed, busy loading state. See Loading state.
    resetDataGrid(name)Clears search, sort, selection, and returns to page one, all at once.
    name.hide()Close the menu.
    name.toggle()Open or close the menu based on its current state.
    ComponentComponentComponent
    Alfred RoweOutsourcingalfredBWATSIGNPLACEHOLDERtherowe.com + Delete
    name.hide()Close the popover.
    name.toggle()Open or close the popover based on its current state.
    NameDepartmentEmail
    Alfred RoweOutsourcingalfredBWATSIGNPLACEHOLDERtherowe.com
    Michael K. OcanseyTechkabuteyBWATSIGNPLACEHOLDERgmail.com
    Name
    Name
    Name
    Name
    Name
    Name
    Name
    7,300.00 - </td> - </tr> - </x-bladewind::table> - - +
    Name
    ItemQuantityUnit Price (GHS)
    Office furniture24,300.00
    ItemQuantityUnit Price (GHS)
    Office furniture24,300.00
    ItemQuantityUnit Price (GHS)
    Office furniture24,300.00
    HP Laser Jet Printer24,300.00
    ItemQuantityUnit Price (GHS)
    Office furniture24,300.00
    Member IDUser DetailsContact Details
    {{$user['member_id']}}
    +
    +
    +
    +
    {{$user['first_name']}} {{$user['last_name']}}
    +
    {{$user['company_name']}}
    +
    +
    +
    +
    {{$user['mobile']}}
    + +