@usex/mikrotik-mcp 4.22.0 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/dist/cli.js +13 -2
  2. package/dist/index.js +13 -2
  3. package/dist/shared/{cli-73c3hn9f.js → cli-p673815b.js} +1 -1
  4. package/dist/shared/{cli-8ecncq7y.js → cli-tssmr7sb.js} +2 -2
  5. package/dist/shared/{library-v21pwa2g.js → library-2144zr9f.js} +2 -2
  6. package/dist/shared/{library-w7gzvedz.js → library-8f4pbp0x.js} +1 -1
  7. package/dist/ui/observability.html +1 -1
  8. package/package.json +5 -5
  9. package/prompts/setup-eoip-tunnel-between-sites.md +4 -0
  10. package/prompts/setup-gre-tunnel-between-sites.md +4 -0
  11. package/prompts/setup-ipip-tunnel-between-sites.md +4 -0
  12. package/prompts/setup-ipsec-site-to-site.md +4 -0
  13. package/prompts/setup-l2tp-ipsec-roadwarrior.md +4 -0
  14. package/prompts/setup-openvpn-tunnel-between-sites.md +4 -0
  15. package/prompts/setup-sstp-tunnel-between-sites.md +4 -0
  16. package/prompts/setup-tunnel-between-sites.md +4 -0
  17. package/prompts/setup-v2ray-container-proxy.md +4 -0
  18. package/prompts/setup-vxlan-tunnel-between-sites.md +4 -0
  19. package/prompts/setup-wireguard-tunnel-between-sites.md +4 -0
  20. package/prompts/setup-wireguard-vpn.md +4 -0
  21. package/schemas/README.md +5 -5
  22. package/schemas/config.schema.json +7 -36
  23. package/schemas/tool-catalog.json +747 -2974
  24. package/schemas/tools/aaa_mutate.json +2 -10
  25. package/schemas/tools/add_address_list_entry.json +1 -5
  26. package/schemas/tools/add_bfd_configuration.json +1 -4
  27. package/schemas/tools/add_bgp_connection.json +1 -5
  28. package/schemas/tools/add_bgp_template.json +1 -4
  29. package/schemas/tools/add_blackhole_route.json +1 -4
  30. package/schemas/tools/add_bridge_port.json +6 -31
  31. package/schemas/tools/add_bridge_vlan.json +1 -4
  32. package/schemas/tools/add_container_env.json +1 -5
  33. package/schemas/tools/add_container_mount.json +1 -5
  34. package/schemas/tools/add_default_route.json +1 -5
  35. package/schemas/tools/add_dhcp_client.json +1 -7
  36. package/schemas/tools/add_disk.json +1 -3
  37. package/schemas/tools/add_dns_regexp.json +1 -6
  38. package/schemas/tools/add_dns_static.json +1 -4
  39. package/schemas/tools/add_dot1x_client.json +1 -5
  40. package/schemas/tools/add_dot1x_server.json +3 -13
  41. package/schemas/tools/add_firewall_default_deny.json +1 -4
  42. package/schemas/tools/add_graphing_interface.json +1 -3
  43. package/schemas/tools/add_graphing_queue.json +1 -3
  44. package/schemas/tools/add_igmp_proxy_interface.json +1 -5
  45. package/schemas/tools/add_ip_address.json +1 -6
  46. package/schemas/tools/add_ipv6_address.json +1 -6
  47. package/schemas/tools/add_ipv6_address_list_entry.json +1 -5
  48. package/schemas/tools/add_ipv6_default_route.json +1 -4
  49. package/schemas/tools/add_ipv6_dhcp_binding.json +1 -4
  50. package/schemas/tools/add_ipv6_dhcp_client.json +3 -15
  51. package/schemas/tools/add_ipv6_dhcp_option.json +1 -5
  52. package/schemas/tools/add_ipv6_dhcp_relay.json +1 -6
  53. package/schemas/tools/add_ipv6_nd.json +2 -9
  54. package/schemas/tools/add_ipv6_nd_prefix.json +1 -4
  55. package/schemas/tools/add_ipv6_route.json +2 -10
  56. package/schemas/tools/add_logging_action.json +2 -12
  57. package/schemas/tools/add_logging_rule.json +1 -4
  58. package/schemas/tools/add_netwatch.json +2 -10
  59. package/schemas/tools/add_ospf_area.json +2 -11
  60. package/schemas/tools/add_ospf_area_range.json +1 -5
  61. package/schemas/tools/add_ospf_instance.json +1 -5
  62. package/schemas/tools/add_ospf_interface_template.json +3 -20
  63. package/schemas/tools/add_ovpn_server.json +4 -17
  64. package/schemas/tools/add_pimsm_instance.json +2 -9
  65. package/schemas/tools/add_pimsm_interface_template.json +1 -5
  66. package/schemas/tools/add_pimsm_rp.json +1 -5
  67. package/schemas/tools/add_radius_server.json +1 -4
  68. package/schemas/tools/add_rip_instance.json +1 -4
  69. package/schemas/tools/add_rip_interface_template.json +1 -5
  70. package/schemas/tools/add_rip_static_neighbor.json +1 -4
  71. package/schemas/tools/add_romon_port.json +1 -4
  72. package/schemas/tools/add_route.json +1 -5
  73. package/schemas/tools/add_routing_filter_num_list.json +1 -4
  74. package/schemas/tools/add_routing_filter_rule.json +1 -5
  75. package/schemas/tools/add_routing_id.json +1 -4
  76. package/schemas/tools/add_routing_rule.json +2 -10
  77. package/schemas/tools/add_routing_table.json +1 -5
  78. package/schemas/tools/add_rpki_session.json +1 -6
  79. package/schemas/tools/add_script.json +1 -5
  80. package/schemas/tools/add_switch_port_isolation.json +1 -4
  81. package/schemas/tools/add_switch_rule.json +2 -10
  82. package/schemas/tools/add_traffic_generator_port.json +1 -5
  83. package/schemas/tools/add_traffic_generator_stream.json +1 -5
  84. package/schemas/tools/add_traffic_monitor.json +3 -17
  85. package/schemas/tools/add_user.json +1 -6
  86. package/schemas/tools/add_user_group.json +1 -4
  87. package/schemas/tools/add_user_manager_limitation.json +1 -3
  88. package/schemas/tools/add_user_manager_profile.json +2 -7
  89. package/schemas/tools/add_user_manager_router.json +1 -6
  90. package/schemas/tools/add_user_manager_user.json +1 -5
  91. package/schemas/tools/add_wireguard_peer.json +1 -6
  92. package/schemas/tools/allow_device.json +1 -3
  93. package/schemas/tools/apply_capsman_fixes.json +1 -3
  94. package/schemas/tools/apply_plan.json +1 -3
  95. package/schemas/tools/apply_security_hardening_fixes.json +1 -4
  96. package/schemas/tools/apply_traffic_shaping.json +2 -10
  97. package/schemas/tools/assign_user_manager_profile.json +1 -4
  98. package/schemas/tools/audit_certificate_expiry.json +1 -3
  99. package/schemas/tools/audit_fleet.json +2 -9
  100. package/schemas/tools/audit_remediate.json +2 -9
  101. package/schemas/tools/backup_info.json +1 -3
  102. package/schemas/tools/bandwidth_test.json +3 -15
  103. package/schemas/tools/block_device.json +1 -3
  104. package/schemas/tools/bootstrap_ipv6_firewall_baseline.json +1 -4
  105. package/schemas/tools/build_guest_hotspot.json +1 -7
  106. package/schemas/tools/build_wireguard_mesh.json +1 -4
  107. package/schemas/tools/capture_config_snapshot.json +1 -5
  108. package/schemas/tools/change_password.json +1 -4
  109. package/schemas/tools/check_route_path.json +1 -3
  110. package/schemas/tools/config_check_drift.json +1 -5
  111. package/schemas/tools/config_reconcile.json +1 -3
  112. package/schemas/tools/config_set_baseline.json +1 -4
  113. package/schemas/tools/correlate_events.json +1 -4
  114. package/schemas/tools/create_backup.json +1 -4
  115. package/schemas/tools/create_bridge.json +5 -28
  116. package/schemas/tools/create_certificate.json +1 -6
  117. package/schemas/tools/create_dhcp_network.json +1 -4
  118. package/schemas/tools/create_dhcp_pool.json +1 -4
  119. package/schemas/tools/create_dhcp_server.json +4 -22
  120. package/schemas/tools/create_eoip_tunnel.json +3 -17
  121. package/schemas/tools/create_export.json +3 -17
  122. package/schemas/tools/create_filter_rule.json +1 -6
  123. package/schemas/tools/create_gre_tunnel.json +2 -9
  124. package/schemas/tools/create_ip_pool.json +1 -4
  125. package/schemas/tools/create_ipip_tunnel.json +2 -9
  126. package/schemas/tools/create_ipsec_identity.json +4 -21
  127. package/schemas/tools/create_ipsec_peer.json +2 -10
  128. package/schemas/tools/create_ipsec_policy.json +3 -15
  129. package/schemas/tools/create_ipsec_profile.json +1 -5
  130. package/schemas/tools/create_ipsec_proposal.json +1 -7
  131. package/schemas/tools/create_ipv6_dhcp_server.json +1 -7
  132. package/schemas/tools/create_ipv6_filter_rule.json +2 -11
  133. package/schemas/tools/create_ipv6_mangle_rule.json +2 -13
  134. package/schemas/tools/create_ipv6_nat_rule.json +2 -10
  135. package/schemas/tools/create_ipv6_pool.json +1 -5
  136. package/schemas/tools/create_ipv6_raw_rule.json +3 -19
  137. package/schemas/tools/create_l2tp_client.json +2 -12
  138. package/schemas/tools/create_local_backup.json +1 -6
  139. package/schemas/tools/create_mangle_rule.json +2 -13
  140. package/schemas/tools/create_nat_rule.json +2 -10
  141. package/schemas/tools/create_ovpn_client.json +4 -18
  142. package/schemas/tools/create_ppp_profile.json +6 -30
  143. package/schemas/tools/create_ppp_secret.json +2 -14
  144. package/schemas/tools/create_pptp_client.json +1 -7
  145. package/schemas/tools/create_queue_tree.json +1 -5
  146. package/schemas/tools/create_queue_type.json +5 -28
  147. package/schemas/tools/create_scheduler.json +1 -5
  148. package/schemas/tools/create_simple_queue.json +1 -5
  149. package/schemas/tools/create_sstp_client.json +2 -11
  150. package/schemas/tools/create_vlan_interface.json +3 -19
  151. package/schemas/tools/create_vxlan_tunnel.json +3 -17
  152. package/schemas/tools/create_wireguard_interface.json +1 -4
  153. package/schemas/tools/create_wireless_interface.json +6 -37
  154. package/schemas/tools/create_wireless_security_profile.json +1 -3
  155. package/schemas/tools/delete_local_backup.json +1 -3
  156. package/schemas/tools/delete_s3_backup.json +1 -3
  157. package/schemas/tools/describe_tool.json +1 -3
  158. package/schemas/tools/design_network_segment.json +1 -10
  159. package/schemas/tools/diagnose.json +1 -3
  160. package/schemas/tools/diff_config_snapshots.json +1 -6
  161. package/schemas/tools/disable_address_list_entry.json +1 -3
  162. package/schemas/tools/disable_dns_static.json +1 -3
  163. package/schemas/tools/disable_filter_rule.json +1 -3
  164. package/schemas/tools/disable_interface.json +1 -3
  165. package/schemas/tools/disable_ip_service.json +1 -3
  166. package/schemas/tools/disable_ipv6_address_list_entry.json +1 -3
  167. package/schemas/tools/disable_ipv6_dhcp_relay.json +1 -3
  168. package/schemas/tools/disable_ipv6_filter_rule.json +1 -3
  169. package/schemas/tools/disable_ipv6_mangle_rule.json +1 -3
  170. package/schemas/tools/disable_ipv6_nat_rule.json +1 -3
  171. package/schemas/tools/disable_ipv6_raw_rule.json +1 -3
  172. package/schemas/tools/disable_ipv6_route.json +1 -3
  173. package/schemas/tools/disable_l2tp_client.json +1 -3
  174. package/schemas/tools/disable_mangle_rule.json +1 -3
  175. package/schemas/tools/disable_nat_rule.json +1 -3
  176. package/schemas/tools/disable_ovpn_client.json +1 -3
  177. package/schemas/tools/disable_ovpn_server.json +1 -3
  178. package/schemas/tools/disable_queue_tree.json +1 -3
  179. package/schemas/tools/disable_radius_server.json +1 -3
  180. package/schemas/tools/disable_route.json +1 -3
  181. package/schemas/tools/disable_scheduler.json +1 -3
  182. package/schemas/tools/disable_simple_queue.json +1 -3
  183. package/schemas/tools/disable_sstp_client.json +1 -3
  184. package/schemas/tools/disable_switch_rule.json +1 -3
  185. package/schemas/tools/disable_traffic_monitor.json +1 -3
  186. package/schemas/tools/disable_user.json +1 -3
  187. package/schemas/tools/disable_wireguard_interface.json +1 -3
  188. package/schemas/tools/disable_wireguard_peer.json +1 -3
  189. package/schemas/tools/disable_wireless_interface.json +1 -3
  190. package/schemas/tools/disconnect_ppp_active.json +1 -3
  191. package/schemas/tools/disconnect_user.json +1 -3
  192. package/schemas/tools/download_backup_from_s3.json +1 -3
  193. package/schemas/tools/download_file.json +1 -3
  194. package/schemas/tools/eject_disk.json +1 -3
  195. package/schemas/tools/enable_address_list_entry.json +1 -3
  196. package/schemas/tools/enable_dns_static.json +1 -3
  197. package/schemas/tools/enable_filter_rule.json +1 -3
  198. package/schemas/tools/enable_interface.json +1 -3
  199. package/schemas/tools/enable_ip_service.json +1 -3
  200. package/schemas/tools/enable_ipv6_address_list_entry.json +1 -3
  201. package/schemas/tools/enable_ipv6_dhcp_relay.json +1 -3
  202. package/schemas/tools/enable_ipv6_filter_rule.json +1 -3
  203. package/schemas/tools/enable_ipv6_mangle_rule.json +1 -3
  204. package/schemas/tools/enable_ipv6_nat_rule.json +1 -3
  205. package/schemas/tools/enable_ipv6_raw_rule.json +1 -3
  206. package/schemas/tools/enable_ipv6_route.json +1 -3
  207. package/schemas/tools/enable_l2tp_client.json +1 -3
  208. package/schemas/tools/enable_mangle_rule.json +1 -3
  209. package/schemas/tools/enable_nat_rule.json +1 -3
  210. package/schemas/tools/enable_ovpn_client.json +1 -3
  211. package/schemas/tools/enable_ovpn_server.json +1 -3
  212. package/schemas/tools/enable_queue_tree.json +1 -3
  213. package/schemas/tools/enable_radius_server.json +1 -3
  214. package/schemas/tools/enable_route.json +1 -3
  215. package/schemas/tools/enable_scheduler.json +1 -3
  216. package/schemas/tools/enable_simple_queue.json +1 -3
  217. package/schemas/tools/enable_sstp_client.json +1 -3
  218. package/schemas/tools/enable_switch_rule.json +1 -3
  219. package/schemas/tools/enable_traffic_monitor.json +1 -3
  220. package/schemas/tools/enable_user.json +1 -3
  221. package/schemas/tools/enable_wireguard_interface.json +1 -3
  222. package/schemas/tools/enable_wireguard_peer.json +1 -3
  223. package/schemas/tools/enable_wireless_interface.json +1 -3
  224. package/schemas/tools/enforce_address_list_blocking.json +1 -4
  225. package/schemas/tools/expand_ip_pool.json +1 -4
  226. package/schemas/tools/export_logs.json +2 -7
  227. package/schemas/tools/export_section.json +1 -5
  228. package/schemas/tools/export_ssh_host_key.json +1 -3
  229. package/schemas/tools/find_tools.json +1 -3
  230. package/schemas/tools/firewall_audit.json +1 -4
  231. package/schemas/tools/firmware_check.json +2 -8
  232. package/schemas/tools/firmware_stage.json +1 -5
  233. package/schemas/tools/firmware_status.json +1 -3
  234. package/schemas/tools/firmware_upgrade.json +1 -5
  235. package/schemas/tools/fix_certificate_crl_policy.json +1 -4
  236. package/schemas/tools/fix_password_policy.json +1 -4
  237. package/schemas/tools/flood_ping.json +1 -4
  238. package/schemas/tools/forecast_link_saturation.json +1 -5
  239. package/schemas/tools/format_disk.json +2 -10
  240. package/schemas/tools/forward_port.json +2 -10
  241. package/schemas/tools/generate_hotspot_vouchers.json +1 -5
  242. package/schemas/tools/get_aaa_section.json +1 -3
  243. package/schemas/tools/get_address_list_entry.json +1 -3
  244. package/schemas/tools/get_bgp_connection.json +1 -3
  245. package/schemas/tools/get_bridge.json +1 -3
  246. package/schemas/tools/get_certificate.json +1 -3
  247. package/schemas/tools/get_config_snapshot.json +1 -4
  248. package/schemas/tools/get_device_traffic.json +1 -3
  249. package/schemas/tools/get_dhcp_client.json +1 -3
  250. package/schemas/tools/get_dhcp_server.json +1 -3
  251. package/schemas/tools/get_disk.json +1 -3
  252. package/schemas/tools/get_dns_static.json +1 -3
  253. package/schemas/tools/get_dot1x_client.json +1 -3
  254. package/schemas/tools/get_dot1x_server.json +1 -3
  255. package/schemas/tools/get_eoip_tunnel.json +1 -3
  256. package/schemas/tools/get_filter_rule.json +1 -3
  257. package/schemas/tools/get_gre_tunnel.json +1 -3
  258. package/schemas/tools/get_interface.json +1 -3
  259. package/schemas/tools/get_ip_address.json +1 -3
  260. package/schemas/tools/get_ip_pool.json +1 -3
  261. package/schemas/tools/get_ip_service.json +1 -3
  262. package/schemas/tools/get_ipip_tunnel.json +1 -3
  263. package/schemas/tools/get_ipsec_peer.json +1 -3
  264. package/schemas/tools/get_ipsec_profile.json +1 -3
  265. package/schemas/tools/get_ipsec_proposal.json +1 -3
  266. package/schemas/tools/get_ipv6_address.json +1 -3
  267. package/schemas/tools/get_ipv6_address_list_entry.json +1 -3
  268. package/schemas/tools/get_ipv6_dhcp_client.json +1 -3
  269. package/schemas/tools/get_ipv6_dhcp_relay.json +1 -3
  270. package/schemas/tools/get_ipv6_dhcp_server.json +1 -3
  271. package/schemas/tools/get_ipv6_filter_rule.json +1 -3
  272. package/schemas/tools/get_ipv6_mangle_rule.json +1 -3
  273. package/schemas/tools/get_ipv6_nat_rule.json +1 -3
  274. package/schemas/tools/get_ipv6_nd.json +1 -3
  275. package/schemas/tools/get_ipv6_neighbor.json +1 -3
  276. package/schemas/tools/get_ipv6_pool.json +1 -3
  277. package/schemas/tools/get_ipv6_raw_rule.json +1 -3
  278. package/schemas/tools/get_ipv6_route.json +1 -3
  279. package/schemas/tools/get_l2tp_client.json +1 -3
  280. package/schemas/tools/get_local_backup.json +1 -3
  281. package/schemas/tools/get_logs.json +2 -9
  282. package/schemas/tools/get_logs_by_severity.json +2 -10
  283. package/schemas/tools/get_logs_by_topic.json +1 -3
  284. package/schemas/tools/get_mangle_rule.json +1 -3
  285. package/schemas/tools/get_nat_rule.json +1 -3
  286. package/schemas/tools/get_netwatch.json +1 -3
  287. package/schemas/tools/get_ovpn_client.json +1 -3
  288. package/schemas/tools/get_poe_monitor.json +1 -3
  289. package/schemas/tools/get_poe_settings.json +1 -3
  290. package/schemas/tools/get_port.json +1 -3
  291. package/schemas/tools/get_ppp_profile.json +1 -3
  292. package/schemas/tools/get_ppp_secret.json +1 -3
  293. package/schemas/tools/get_pptp_client.json +1 -3
  294. package/schemas/tools/get_queue_interface.json +1 -3
  295. package/schemas/tools/get_queue_tree.json +1 -3
  296. package/schemas/tools/get_queue_type.json +1 -3
  297. package/schemas/tools/get_radius_server.json +1 -3
  298. package/schemas/tools/get_route.json +1 -3
  299. package/schemas/tools/get_routing_id.json +1 -3
  300. package/schemas/tools/get_routing_rule.json +1 -3
  301. package/schemas/tools/get_routing_table.json +1 -4
  302. package/schemas/tools/get_routing_table_def.json +1 -3
  303. package/schemas/tools/get_scheduler.json +1 -3
  304. package/schemas/tools/get_simple_queue.json +1 -3
  305. package/schemas/tools/get_sstp_client.json +1 -3
  306. package/schemas/tools/get_switch.json +1 -3
  307. package/schemas/tools/get_switch_port.json +1 -3
  308. package/schemas/tools/get_switch_port_isolation.json +1 -3
  309. package/schemas/tools/get_switch_rule.json +1 -3
  310. package/schemas/tools/get_traffic_monitor.json +1 -3
  311. package/schemas/tools/get_user.json +1 -3
  312. package/schemas/tools/get_user_group.json +1 -3
  313. package/schemas/tools/get_user_manager_user.json +1 -3
  314. package/schemas/tools/get_vlan_interface.json +1 -3
  315. package/schemas/tools/get_vxlan_tunnel.json +1 -3
  316. package/schemas/tools/get_wireguard_interface.json +1 -3
  317. package/schemas/tools/get_wireguard_peer.json +1 -3
  318. package/schemas/tools/get_wireless_interface.json +1 -3
  319. package/schemas/tools/get_wireless_security_profile.json +1 -3
  320. package/schemas/tools/harden_connection_tracking_helpers.json +1 -4
  321. package/schemas/tools/harden_dns_resolver_exposure.json +1 -4
  322. package/schemas/tools/harden_firewall.json +1 -6
  323. package/schemas/tools/harden_ip_service_exposure.json +1 -4
  324. package/schemas/tools/harden_kernel_ip_settings.json +1 -4
  325. package/schemas/tools/harden_management_plane_exposure.json +1 -4
  326. package/schemas/tools/harden_ssh_service.json +1 -4
  327. package/schemas/tools/import_certificate.json +1 -3
  328. package/schemas/tools/import_configuration.json +1 -5
  329. package/schemas/tools/import_ssh_host_key.json +1 -3
  330. package/schemas/tools/invoke_tool.json +1 -3
  331. package/schemas/tools/ip_scan.json +1 -3
  332. package/schemas/tools/list_address_lists.json +1 -3
  333. package/schemas/tools/list_backups.json +1 -3
  334. package/schemas/tools/list_bfd_sessions.json +1 -3
  335. package/schemas/tools/list_bgp_sessions.json +1 -3
  336. package/schemas/tools/list_config_snapshots.json +1 -3
  337. package/schemas/tools/list_connected_devices.json +1 -4
  338. package/schemas/tools/list_containers.json +1 -3
  339. package/schemas/tools/list_dhcp_servers.json +1 -4
  340. package/schemas/tools/list_disks.json +1 -3
  341. package/schemas/tools/list_dns_static.json +1 -4
  342. package/schemas/tools/list_dot1x_clients.json +1 -3
  343. package/schemas/tools/list_dot1x_servers.json +1 -3
  344. package/schemas/tools/list_filter_rules.json +1 -5
  345. package/schemas/tools/list_graphing.json +2 -8
  346. package/schemas/tools/list_interfaces.json +1 -4
  347. package/schemas/tools/list_ip_addresses.json +1 -4
  348. package/schemas/tools/list_ip_pools.json +1 -3
  349. package/schemas/tools/list_ipv6_address_lists.json +1 -3
  350. package/schemas/tools/list_ipv6_addresses.json +1 -5
  351. package/schemas/tools/list_ipv6_dhcp_bindings.json +1 -3
  352. package/schemas/tools/list_ipv6_dhcp_clients.json +1 -4
  353. package/schemas/tools/list_ipv6_dhcp_relays.json +1 -3
  354. package/schemas/tools/list_ipv6_dhcp_servers.json +1 -4
  355. package/schemas/tools/list_ipv6_filter_rules.json +1 -5
  356. package/schemas/tools/list_ipv6_mangle_rules.json +1 -5
  357. package/schemas/tools/list_ipv6_nat_rules.json +1 -5
  358. package/schemas/tools/list_ipv6_nd.json +1 -3
  359. package/schemas/tools/list_ipv6_nd_prefixes.json +1 -3
  360. package/schemas/tools/list_ipv6_neighbors.json +1 -3
  361. package/schemas/tools/list_ipv6_raw_rules.json +1 -5
  362. package/schemas/tools/list_ipv6_routes.json +1 -5
  363. package/schemas/tools/list_mangle_rules.json +1 -5
  364. package/schemas/tools/list_nat_rules.json +1 -4
  365. package/schemas/tools/list_ppp_secrets.json +1 -8
  366. package/schemas/tools/list_queue_trees.json +1 -4
  367. package/schemas/tools/list_routes.json +1 -6
  368. package/schemas/tools/list_routing_nexthops.json +1 -3
  369. package/schemas/tools/list_routing_rules.json +1 -3
  370. package/schemas/tools/list_s3_backups.json +1 -3
  371. package/schemas/tools/list_simple_queues.json +1 -4
  372. package/schemas/tools/list_switch_rules.json +1 -3
  373. package/schemas/tools/list_traffic_monitors.json +1 -3
  374. package/schemas/tools/list_user_manager_sessions.json +1 -3
  375. package/schemas/tools/list_user_ssh_keys.json +1 -3
  376. package/schemas/tools/list_users.json +1 -4
  377. package/schemas/tools/list_vlan_interfaces.json +1 -3
  378. package/schemas/tools/list_wireguard_interfaces.json +1 -4
  379. package/schemas/tools/list_wireguard_peers.json +1 -3
  380. package/schemas/tools/list_wireless_interfaces.json +1 -4
  381. package/schemas/tools/make_device_static.json +1 -3
  382. package/schemas/tools/memory_add_observations.json +2 -7
  383. package/schemas/tools/memory_create_entities.json +2 -7
  384. package/schemas/tools/memory_create_relations.json +2 -8
  385. package/schemas/tools/memory_delete_entities.json +1 -3
  386. package/schemas/tools/memory_delete_observations.json +2 -7
  387. package/schemas/tools/memory_delete_relations.json +2 -8
  388. package/schemas/tools/memory_open_nodes.json +1 -3
  389. package/schemas/tools/memory_search_nodes.json +1 -3
  390. package/schemas/tools/mirror_traffic_to_capture.json +2 -12
  391. package/schemas/tools/monitor_logs.json +1 -3
  392. package/schemas/tools/move_filter_rule.json +1 -4
  393. package/schemas/tools/move_ipv6_filter_rule.json +1 -4
  394. package/schemas/tools/move_ipv6_mangle_rule.json +1 -4
  395. package/schemas/tools/move_ipv6_nat_rule.json +1 -4
  396. package/schemas/tools/move_ipv6_raw_rule.json +1 -4
  397. package/schemas/tools/move_mangle_rule.json +1 -4
  398. package/schemas/tools/move_nat_rule.json +1 -4
  399. package/schemas/tools/onboard_wireguard_user.json +1 -8
  400. package/schemas/tools/packet_capture_status.json +1 -3
  401. package/schemas/tools/ping.json +1 -4
  402. package/schemas/tools/profile_cpu.json +1 -3
  403. package/schemas/tools/reboot_system.json +1 -3
  404. package/schemas/tools/release_ipv6_dhcp_client.json +1 -3
  405. package/schemas/tools/remove_address_list_entry.json +1 -3
  406. package/schemas/tools/remove_bfd_configuration.json +1 -3
  407. package/schemas/tools/remove_bgp_connection.json +1 -3
  408. package/schemas/tools/remove_bgp_template.json +1 -3
  409. package/schemas/tools/remove_bridge.json +1 -3
  410. package/schemas/tools/remove_bridge_port.json +1 -3
  411. package/schemas/tools/remove_certificate.json +1 -3
  412. package/schemas/tools/remove_config_snapshot.json +1 -3
  413. package/schemas/tools/remove_container_env.json +1 -4
  414. package/schemas/tools/remove_container_mount.json +1 -3
  415. package/schemas/tools/remove_device_lease.json +1 -3
  416. package/schemas/tools/remove_dhcp_client.json +1 -3
  417. package/schemas/tools/remove_dhcp_server.json +1 -3
  418. package/schemas/tools/remove_disk.json +1 -3
  419. package/schemas/tools/remove_dns_static.json +1 -3
  420. package/schemas/tools/remove_dot1x_client.json +1 -3
  421. package/schemas/tools/remove_dot1x_server.json +1 -3
  422. package/schemas/tools/remove_eoip_tunnel.json +1 -3
  423. package/schemas/tools/remove_file.json +1 -3
  424. package/schemas/tools/remove_filter_rule.json +1 -3
  425. package/schemas/tools/remove_graphing.json +2 -9
  426. package/schemas/tools/remove_gre_tunnel.json +1 -3
  427. package/schemas/tools/remove_igmp_proxy_interface.json +1 -3
  428. package/schemas/tools/remove_ip_address.json +1 -3
  429. package/schemas/tools/remove_ip_pool.json +1 -3
  430. package/schemas/tools/remove_ipip_tunnel.json +1 -3
  431. package/schemas/tools/remove_ipsec_identity.json +1 -3
  432. package/schemas/tools/remove_ipsec_peer.json +1 -3
  433. package/schemas/tools/remove_ipsec_policy.json +1 -3
  434. package/schemas/tools/remove_ipsec_profile.json +1 -3
  435. package/schemas/tools/remove_ipsec_proposal.json +1 -3
  436. package/schemas/tools/remove_ipv6_address.json +1 -3
  437. package/schemas/tools/remove_ipv6_address_list_entry.json +1 -3
  438. package/schemas/tools/remove_ipv6_dhcp_binding.json +1 -3
  439. package/schemas/tools/remove_ipv6_dhcp_client.json +1 -3
  440. package/schemas/tools/remove_ipv6_dhcp_option.json +1 -3
  441. package/schemas/tools/remove_ipv6_dhcp_relay.json +1 -3
  442. package/schemas/tools/remove_ipv6_dhcp_server.json +1 -3
  443. package/schemas/tools/remove_ipv6_filter_rule.json +1 -3
  444. package/schemas/tools/remove_ipv6_mangle_rule.json +1 -3
  445. package/schemas/tools/remove_ipv6_nat_rule.json +1 -3
  446. package/schemas/tools/remove_ipv6_nd.json +1 -3
  447. package/schemas/tools/remove_ipv6_nd_prefix.json +1 -3
  448. package/schemas/tools/remove_ipv6_neighbor.json +1 -3
  449. package/schemas/tools/remove_ipv6_pool.json +1 -3
  450. package/schemas/tools/remove_ipv6_raw_rule.json +1 -3
  451. package/schemas/tools/remove_ipv6_route.json +1 -3
  452. package/schemas/tools/remove_l2tp_client.json +1 -3
  453. package/schemas/tools/remove_logging_action.json +1 -3
  454. package/schemas/tools/remove_logging_rule.json +1 -3
  455. package/schemas/tools/remove_mangle_rule.json +1 -3
  456. package/schemas/tools/remove_nat_rule.json +1 -3
  457. package/schemas/tools/remove_netwatch.json +1 -3
  458. package/schemas/tools/remove_ospf_area.json +1 -3
  459. package/schemas/tools/remove_ospf_area_range.json +1 -3
  460. package/schemas/tools/remove_ospf_instance.json +1 -3
  461. package/schemas/tools/remove_ospf_interface_template.json +1 -3
  462. package/schemas/tools/remove_ovpn_client.json +1 -3
  463. package/schemas/tools/remove_ovpn_server.json +1 -3
  464. package/schemas/tools/remove_pimsm_instance.json +1 -3
  465. package/schemas/tools/remove_pimsm_interface_template.json +1 -3
  466. package/schemas/tools/remove_pimsm_rp.json +1 -3
  467. package/schemas/tools/remove_ppp_profile.json +1 -3
  468. package/schemas/tools/remove_ppp_secret.json +1 -3
  469. package/schemas/tools/remove_pptp_client.json +1 -3
  470. package/schemas/tools/remove_queue_tree.json +1 -3
  471. package/schemas/tools/remove_queue_type.json +1 -3
  472. package/schemas/tools/remove_radius_server.json +1 -3
  473. package/schemas/tools/remove_rip_instance.json +1 -3
  474. package/schemas/tools/remove_rip_interface_template.json +1 -3
  475. package/schemas/tools/remove_rip_static_neighbor.json +1 -3
  476. package/schemas/tools/remove_romon_port.json +1 -3
  477. package/schemas/tools/remove_route.json +1 -3
  478. package/schemas/tools/remove_routing_filter_num_list.json +1 -3
  479. package/schemas/tools/remove_routing_filter_rule.json +1 -3
  480. package/schemas/tools/remove_routing_id.json +1 -3
  481. package/schemas/tools/remove_routing_rule.json +1 -3
  482. package/schemas/tools/remove_routing_table.json +1 -3
  483. package/schemas/tools/remove_rpki_session.json +1 -3
  484. package/schemas/tools/remove_scheduler.json +1 -3
  485. package/schemas/tools/remove_script.json +1 -3
  486. package/schemas/tools/remove_simple_queue.json +1 -3
  487. package/schemas/tools/remove_sstp_client.json +1 -3
  488. package/schemas/tools/remove_switch_port_isolation.json +1 -3
  489. package/schemas/tools/remove_switch_rule.json +1 -3
  490. package/schemas/tools/remove_threat_feed.json +1 -3
  491. package/schemas/tools/remove_time_policy.json +1 -3
  492. package/schemas/tools/remove_traffic_generator_port.json +1 -3
  493. package/schemas/tools/remove_traffic_generator_stream.json +1 -3
  494. package/schemas/tools/remove_traffic_monitor.json +1 -3
  495. package/schemas/tools/remove_user.json +1 -3
  496. package/schemas/tools/remove_user_group.json +1 -3
  497. package/schemas/tools/remove_user_manager_limitation.json +1 -3
  498. package/schemas/tools/remove_user_manager_profile.json +1 -3
  499. package/schemas/tools/remove_user_manager_router.json +1 -3
  500. package/schemas/tools/remove_user_manager_user.json +1 -3
  501. package/schemas/tools/remove_user_ssh_key.json +1 -3
  502. package/schemas/tools/remove_vlan_interface.json +1 -3
  503. package/schemas/tools/remove_vxlan_tunnel.json +1 -3
  504. package/schemas/tools/remove_wireguard_interface.json +1 -3
  505. package/schemas/tools/remove_wireguard_peer.json +1 -3
  506. package/schemas/tools/remove_wireless_access_list_entry.json +1 -3
  507. package/schemas/tools/remove_wireless_interface.json +1 -3
  508. package/schemas/tools/remove_wireless_security_profile.json +1 -3
  509. package/schemas/tools/rename_local_backup.json +1 -4
  510. package/schemas/tools/renew_dhcp_client.json +1 -4
  511. package/schemas/tools/renew_ipv6_dhcp_client.json +1 -3
  512. package/schemas/tools/request_letsencrypt_certificate.json +1 -3
  513. package/schemas/tools/reset_configuration.json +1 -3
  514. package/schemas/tools/resolve_dns.json +1 -3
  515. package/schemas/tools/restore_backup.json +1 -3
  516. package/schemas/tools/restore_local_backup.json +1 -4
  517. package/schemas/tools/revoke_wireguard_user.json +1 -3
  518. package/schemas/tools/run_capsman_audit.json +1 -7
  519. package/schemas/tools/run_compliance_audit.json +2 -9
  520. package/schemas/tools/run_failover_drill.json +2 -11
  521. package/schemas/tools/run_routeros_command.json +1 -3
  522. package/schemas/tools/run_script.json +1 -3
  523. package/schemas/tools/s3_backup_info.json +1 -3
  524. package/schemas/tools/save_sniffer.json +1 -3
  525. package/schemas/tools/scan_wireless_networks.json +1 -4
  526. package/schemas/tools/search_logs.json +1 -4
  527. package/schemas/tools/send_sms.json +1 -5
  528. package/schemas/tools/set_aaa_settings.json +2 -8
  529. package/schemas/tools/set_bfd_configuration_enabled.json +1 -4
  530. package/schemas/tools/set_bgp_connection_enabled.json +1 -4
  531. package/schemas/tools/set_device_ip.json +1 -4
  532. package/schemas/tools/set_device_label.json +1 -4
  533. package/schemas/tools/set_device_limits.json +1 -3
  534. package/schemas/tools/set_dhcp_client.json +1 -3
  535. package/schemas/tools/set_disk.json +1 -3
  536. package/schemas/tools/set_dns_servers.json +1 -6
  537. package/schemas/tools/set_igmp_proxy_interface_enabled.json +1 -4
  538. package/schemas/tools/set_ip_cloud_advanced.json +1 -3
  539. package/schemas/tools/set_ip_service.json +1 -3
  540. package/schemas/tools/set_l2tp_server.json +2 -9
  541. package/schemas/tools/set_leds_settings.json +1 -6
  542. package/schemas/tools/set_neighbor_discovery_settings.json +1 -5
  543. package/schemas/tools/set_ntp_client.json +1 -6
  544. package/schemas/tools/set_ovpn_server.json +3 -12
  545. package/schemas/tools/set_port.json +3 -13
  546. package/schemas/tools/set_routing_filter_rule_enabled.json +1 -4
  547. package/schemas/tools/set_routing_id_enabled.json +1 -4
  548. package/schemas/tools/set_routing_rule_enabled.json +1 -4
  549. package/schemas/tools/set_routing_table_enabled.json +1 -4
  550. package/schemas/tools/set_rpki_session_enabled.json +1 -4
  551. package/schemas/tools/set_ssh_settings.json +2 -10
  552. package/schemas/tools/set_sstp_server.json +1 -4
  553. package/schemas/tools/set_system_identity.json +1 -3
  554. package/schemas/tools/set_time_policy.json +1 -7
  555. package/schemas/tools/set_user_ssh_keys.json +1 -4
  556. package/schemas/tools/set_wireless_security_profile.json +1 -4
  557. package/schemas/tools/setup_port_knock.json +1 -7
  558. package/schemas/tools/setup_wan_failover.json +2 -11
  559. package/schemas/tools/setup_wan_loadbalance.json +2 -10
  560. package/schemas/tools/share_disk.json +1 -3
  561. package/schemas/tools/shutdown_system.json +1 -3
  562. package/schemas/tools/sign_certificate.json +1 -3
  563. package/schemas/tools/speed_test.json +1 -4
  564. package/schemas/tools/start_packet_capture.json +1 -4
  565. package/schemas/tools/steer_client.json +2 -8
  566. package/schemas/tools/subscribe_threat_feed.json +1 -8
  567. package/schemas/tools/suggest_fix.json +1 -3
  568. package/schemas/tools/test_dns_query.json +1 -4
  569. package/schemas/tools/test_ssh_from_device.json +1 -6
  570. package/schemas/tools/test_ssh_to_host.json +1 -6
  571. package/schemas/tools/trace_path.json +1 -5
  572. package/schemas/tools/traceroute.json +1 -4
  573. package/schemas/tools/tune_wifi_channel.json +1 -5
  574. package/schemas/tools/update_bfd_configuration.json +1 -3
  575. package/schemas/tools/update_bgp_connection.json +1 -3
  576. package/schemas/tools/update_bridge.json +5 -26
  577. package/schemas/tools/update_dns_static.json +1 -3
  578. package/schemas/tools/update_dot1x_client.json +1 -3
  579. package/schemas/tools/update_dot1x_server.json +3 -12
  580. package/schemas/tools/update_filter_rule.json +1 -3
  581. package/schemas/tools/update_igmp_proxy_interface.json +1 -3
  582. package/schemas/tools/update_ip_pool.json +1 -3
  583. package/schemas/tools/update_ipsec_peer.json +2 -8
  584. package/schemas/tools/update_ipsec_profile.json +1 -3
  585. package/schemas/tools/update_ipsec_proposal.json +1 -3
  586. package/schemas/tools/update_ipv6_filter_rule.json +1 -3
  587. package/schemas/tools/update_ipv6_mangle_rule.json +1 -3
  588. package/schemas/tools/update_ipv6_nat_rule.json +1 -3
  589. package/schemas/tools/update_ipv6_nd.json +2 -8
  590. package/schemas/tools/update_ipv6_pool.json +1 -3
  591. package/schemas/tools/update_ipv6_raw_rule.json +1 -3
  592. package/schemas/tools/update_ipv6_settings.json +3 -15
  593. package/schemas/tools/update_mac_ping.json +1 -3
  594. package/schemas/tools/update_mac_server.json +1 -3
  595. package/schemas/tools/update_mac_winbox.json +1 -3
  596. package/schemas/tools/update_mangle_rule.json +1 -3
  597. package/schemas/tools/update_nat_rule.json +1 -3
  598. package/schemas/tools/update_ospf_instance.json +1 -3
  599. package/schemas/tools/update_ovpn_server.json +4 -15
  600. package/schemas/tools/update_ppp_profile.json +6 -30
  601. package/schemas/tools/update_ppp_secret.json +2 -11
  602. package/schemas/tools/update_queue_interface.json +1 -4
  603. package/schemas/tools/update_queue_tree.json +1 -3
  604. package/schemas/tools/update_queue_type.json +1 -3
  605. package/schemas/tools/update_radius_server.json +2 -7
  606. package/schemas/tools/update_rip_instance.json +1 -3
  607. package/schemas/tools/update_route.json +1 -3
  608. package/schemas/tools/update_routing_filter_rule.json +1 -3
  609. package/schemas/tools/update_routing_id.json +1 -3
  610. package/schemas/tools/update_routing_rule.json +2 -9
  611. package/schemas/tools/update_routing_settings.json +2 -10
  612. package/schemas/tools/update_routing_table.json +1 -3
  613. package/schemas/tools/update_rpki_session.json +1 -3
  614. package/schemas/tools/update_simple_queue.json +1 -3
  615. package/schemas/tools/update_sniffer_settings.json +2 -9
  616. package/schemas/tools/update_switch.json +1 -3
  617. package/schemas/tools/update_switch_port.json +3 -14
  618. package/schemas/tools/update_switch_port_isolation.json +1 -3
  619. package/schemas/tools/update_switch_rule.json +2 -8
  620. package/schemas/tools/update_traffic_monitor.json +3 -12
  621. package/schemas/tools/update_user.json +1 -3
  622. package/schemas/tools/update_user_group.json +1 -3
  623. package/schemas/tools/update_user_manager_user.json +1 -3
  624. package/schemas/tools/update_vlan_interface.json +3 -14
  625. package/schemas/tools/update_wireguard_interface.json +1 -3
  626. package/schemas/tools/update_wireguard_peer.json +1 -3
  627. package/schemas/tools/update_wireless_interface.json +6 -36
  628. package/schemas/tools/upload_backup_to_s3.json +1 -3
  629. package/schemas/tools/upload_file.json +1 -4
  630. package/schemas/tools/wake_on_lan.json +1 -3
@@ -155,7 +155,7 @@ ${n.map(([e,n])=>{let r=n.theme?.[t]??n.color;return r?` --color-${e}: ${r};`:n
155
155
  `);G9(`mcp-events.csv`,`${n.join(`,`)}\n${i}\n`,`text/csv`)},Ae=e?e.errorRate>=.2?`text-destructive`:e.errorRate>=.05?`text-warning`:``:``,je=d?.mcp??{},Me=d?.dashboard??{},Ne=d?.ssh??{},Pe=(e,t,n)=>(0,W.jsx)(Xx,{size:`sm`,"aria-label":t,value:P[e],onValueChange:t=>F(n=>({...n,[e]:t})),options:[{value:``,label:t},...n.map(e=>({value:e,label:e}))]}),Fe=K9.find(e=>e.id===R)??K9[0];return(0,W.jsxs)(`div`,{className:`bg-background text-foreground grid min-h-screen grid-cols-[240px_1fr]`,ref:L,"data-view":R,style:{"--page-accent":Z9[R][0],"--page-accent-2":Z9[R][1]},children:[(0,W.jsxs)(`aside`,{className:`bg-card sticky top-0 flex h-screen flex-col gap-4 border-r p-4`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsx)(`div`,{className:`bg-foreground text-background grid size-9 shrink-0 place-items-center rounded-md`,children:(0,W.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`,className:`size-5`,children:(0,W.jsxs)(`g`,{stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`path`,{d:`M12 12 L4 5 M12 12 L20 5 M12 12 L12 20`}),(0,W.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`,fill:`currentColor`,stroke:`none`}),(0,W.jsx)(`circle`,{cx:`4`,cy:`5`,r:`1.9`,fill:`currentColor`,stroke:`none`}),(0,W.jsx)(`circle`,{cx:`20`,cy:`5`,r:`1.9`,fill:`currentColor`,stroke:`none`}),(0,W.jsx)(`circle`,{cx:`12`,cy:`20`,r:`1.9`,fill:`currentColor`,stroke:`none`})]})})}),(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[(0,W.jsx)(`b`,{className:`truncate text-sm`,children:`MikroTik MCP`}),(0,W.jsxs)(`small`,{className:q(`text-muted-foreground inline-flex items-center gap-1 text-[11px]`,c.release&&`hover:text-foreground cursor-pointer`),title:c.release?`View release notes`:void 0,onClick:c.release?()=>c.openModal():void 0,children:[n?.version?`v${n.version}`:`Observability`,c.showIndicator&&(0,W.jsx)(`span`,{className:`bg-brand inline-block size-1.5 rounded-full`,title:`v${c.release?.version} available`})]})]}),(0,W.jsx)(`span`,{className:`flex-1`}),(0,W.jsx)(Xb,{})]}),(0,W.jsx)(`nav`,{className:`flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto`,children:K9.map(e=>(0,W.jsxs)(`button`,{type:`button`,className:q(`flex items-center gap-2.5 rounded-md px-2.5 py-2 text-left text-[13px] transition-colors`,`[&_svg]:size-4 [&_svg]:shrink-0`,R===e.id?`bg-accent text-accent-foreground font-medium`:`text-muted-foreground hover:bg-accent/50 hover:text-foreground`),onClick:()=>te(e.id),children:[(0,W.jsx)(Wne,{name:e.id}),(0,W.jsx)(`span`,{className:`truncate`,children:e.label}),e.id===`feed`&&_.length>0&&(0,W.jsx)(`span`,{className:`bg-brand text-brand-foreground animate-in zoom-in-50 ml-auto rounded-full px-1.5 py-0.5 text-[10px] tabular-nums`,children:_.length>999?`999+`:_.length},_.length)]},e.id))}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-1.5 border-t pt-3`,children:[(0,W.jsx)(Une,{}),(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-[11px]`,title:`Live transport: WebSocket (preferred) or SSE fallback`,children:[(0,W.jsx)(Wx,{type:E===`off`?`secondary`:`success`,pulse:E!==`off`}),E===`off`?`offline`:`live · ${E}`]}),(0,W.jsx)(`small`,{className:`text-muted-foreground text-[11px]`,children:n?`${hx(n.total)} events · ${n.transport}`:`connecting…`})]})]}),(0,W.jsxs)(`main`,{className:`flex min-w-0 flex-col gap-5 p-6`,"data-view":R,children:[(0,W.jsxs)(`header`,{className:`reveal flex flex-wrap items-center gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,W.jsx)(`h1`,{className:`truncate text-xl font-semibold`,children:Fe.label}),(0,W.jsx)(`small`,{className:`text-muted-foreground text-xs`,children:Fe.sub})]}),(0,W.jsx)(`span`,{className:`flex-1`}),R===`overview`&&(0,W.jsx)(Xx,{size:`sm`,"aria-label":`Stats time window`,value:String(b),onValueChange:e=>x(Number(e)),options:bx.map(([e,t])=>({value:String(t),label:`window: ${e}`}))}),(0,W.jsx)(X,{size:`sm`,ghost:!0,type:z.has(R)?`accent`:`default`,onClick:()=>V(R),"aria-expanded":z.has(R),title:`About this page`,icon:(0,W.jsx)(Rc,{}),children:`Help`})]}),z.has(R)&&(0,W.jsx)(Vne,{view:R}),R===`overview`&&(0,W.jsxs)(`section`,{className:`grid content-start gap-[18px]`,children:[(0,W.jsx)(`div`,{className:`reveal grid grid-cols-[repeat(auto-fit,minmax(9rem,1fr))] gap-3`,children:e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(cx,{k:`Calls (window)`,v:hx(e.total)}),(0,W.jsx)(cx,{k:`Calls / min`,v:e.callsPerMin.toFixed(1)}),(0,W.jsx)(cx,{k:`Error rate`,v:`${(e.errorRate*100).toFixed(1)}%`,sub:`${e.errors} err`,cls:Ae}),(0,W.jsx)(cx,{k:`Avg latency`,v:fx(e.latency.avg)}),(0,W.jsx)(cx,{k:`p95 latency`,v:fx(e.latency.p95)}),(0,W.jsx)(cx,{k:`p99 latency`,v:fx(e.latency.p99)}),(0,W.jsx)(cx,{k:`Distinct tools`,v:hx(e.distinctTools)}),(0,W.jsx)(cx,{k:`Output volume`,v:px(e.outputBytes)})]}):(0,W.jsx)(cx,{k:`Loading…`,v:`—`})}),(0,W.jsxs)(`div`,{className:`reveal grid grid-cols-1 gap-4 xl:grid-cols-3`,children:[(0,W.jsx)(sx,{title:`Calls over time`,className:`xl:col-span-2`,children:e?(0,W.jsx)(o7,{series:e.series}):(0,W.jsx)(`div`,{className:`text-muted-foreground text-[11px]`,children:`no data`})}),e&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(sx,{title:`By risk`,children:(0,W.jsx)(s7,{segments:Object.keys(e.byRisk).map(t=>({label:t,value:e.byRisk[t],color:vx[t]}))})}),(0,W.jsx)(sx,{title:`Top tools`,className:`xl:col-span-2`,children:(0,W.jsx)(lx,{rows:e.byTool.map(e=>({label:e.tool,value:e.count,sub:`${e.count}× · ${fx(e.p95Ms)} p95${e.errors?` · ${e.errors} err`:``}`,color:e.errors?`var(--destructive)`:void 0}))})}),(0,W.jsx)(sx,{title:`Status`,children:(0,W.jsx)(s7,{centerLabel:`calls`,segments:[{label:`ok`,value:ge.ok,color:`var(--muted-foreground)`},{label:`error`,value:ge.error,color:`var(--destructive)`}]})}),(0,W.jsx)(sx,{title:`By device`,children:e.byDevice.length?(0,W.jsx)(lx,{rows:e.byDevice.map(e=>({label:e.device,value:e.count}))}):(0,W.jsx)(`div`,{className:`text-muted-foreground text-[11px]`,children:`single device`})}),(0,W.jsx)(sx,{title:`Recent errors`,children:he.length?(0,W.jsx)(`div`,{className:`flex flex-col gap-2`,children:he.slice(0,8).map(e=>(0,W.jsxs)(`div`,{className:`hover:bg-accent/50 grid cursor-pointer grid-cols-[auto_1fr] items-center gap-3 rounded-md px-1 py-0.5`,onClick:()=>void _e(e),children:[(0,W.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:mx(e.ts)}),(0,W.jsxs)(`span`,{className:`text-destructive min-w-0 truncate text-xs`,title:e.error??e.output,children:[e.tool,`: `,e.error??e.output??`error`]})]},e.id))}):(0,W.jsx)(`div`,{className:`text-muted-foreground text-[11px]`,children:`no errors 🎉`})})]})]})]}),R===`devices`&&(i&&i.devices.length>0?(0,W.jsxs)(`section`,{className:`grid content-start gap-[18px]`,children:[(0,W.jsxs)(`div`,{className:`reveal flex flex-wrap items-center gap-2`,children:[(0,W.jsx)(Kx,{className:`min-w-[180px] flex-1`,type:`search`,placeholder:`Search devices by name or address…`,value:ne,onChange:e=>re(e.target.value)}),(0,W.jsx)(`div`,{className:`bg-muted flex gap-0.5 rounded-md p-0.5`,children:[`all`,`online`,`offline`].map(e=>(0,W.jsx)(`button`,{type:`button`,className:q(`rounded-sm px-2.5 py-1 text-xs transition-colors`,ie===e?`bg-background text-foreground shadow-xs`:`text-muted-foreground hover:text-foreground`),onClick:()=>ae(e),children:e===`all`?`All ${oe.total}`:e===`online`?`Online ${oe.online}`:`Offline ${oe.offline}`},e))}),(0,W.jsxs)(`span`,{className:`text-muted-foreground text-[11px]`,children:[se.length,`/`,oe.total,` shown`]})]}),(0,W.jsxs)(`details`,{className:`bg-card reveal rounded-lg border p-4`,open:oe.total<=8,children:[(0,W.jsxs)(`summary`,{className:`cursor-pointer text-sm font-medium`,children:[`Connectivity radar`,(0,W.jsxs)(`span`,{className:`text-muted-foreground text-[11px]`,children:[` `,`· `,oe.online,` online · `,oe.offline,` offline ·`,` `,oe.total,` total`]})]}),(0,W.jsx)(Nte,{payload:i,pulses:M})]}),(0,W.jsx)(Rne,{devices:se,poolPayload:o}),se.length===0?(0,W.jsx)(Q9,{className:`reveal`,icon:(0,W.jsx)(ol,{className:`size-6`}),title:`No devices match`,sub:`Try a different search or status filter.`}):(0,W.jsx)(`div`,{className:`reveal grid grid-cols-[repeat(auto-fill,minmax(20rem,1fr))] gap-4`,children:se.map(e=>(0,W.jsx)(Pte,{d:e,allNames:i.devices.map(e=>e.name),onToggle:le,onTest:de,onReconnect:fe},e.name))}),se.length>0&&(0,W.jsx)(sx,{title:`Device system health`,className:`reveal`,extra:(0,W.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:`CPU · memory · disk · latency · live probe`}),children:(0,W.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(22rem,1fr))] gap-3`,children:se.map(e=>(0,W.jsx)(Lte,{d:e},e.name))})})]}):(0,W.jsx)(Q9,{icon:(0,W.jsx)(Yc,{className:`size-6`}),title:`No devices configured`,body:(0,W.jsx)(zx,{type:`secondary`,label:`Tip`,children:`Add a device to your config to see connectivity and system health here.`})})),R===`clients`&&(0,W.jsx)(C7,{}),R===`aaa`&&(0,W.jsx)(zS,{}),R===`topology`&&(l&&l.nodes.length>0?(0,W.jsx)(`section`,{className:`reveal grid content-start gap-[18px]`,children:(0,W.jsx)(Nne,{topo:l,onOnboard:(e,t)=>{g({name:e,body:t}),m(!0),te(`config`)}})}):(0,W.jsx)(Q9,{icon:(0,W.jsx)(el,{className:`size-6`}),title:`No neighbours discovered yet`,sub:`Layer-2 neighbours (MNDP / CDP / LLDP) appear here as the device reports them.`})),R===`packets`&&(0,W.jsx)(`section`,{className:`grid content-start gap-[18px]`,children:(0,W.jsx)(sx,{title:`Packet capture`,className:`reveal`,extra:(0,W.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:`live TZSP decode · /tool sniffer streaming`}),children:(0,W.jsx)(Dne,{})})}),R===`snapshots`&&(0,W.jsx)(kne,{}),R===`drift`&&(0,W.jsx)(qte,{}),R===`plan`&&(0,W.jsx)(US,{}),R===`s3`&&(0,W.jsx)(One,{}),R===`backups`&&(0,W.jsx)(Qx,{}),R===`modules`&&(0,W.jsx)(rne,{}),R===`config`&&(d?(0,W.jsxs)(`section`,{className:`grid content-start gap-[18px]`,children:[(0,W.jsx)(sx,{title:`Configuration`,className:`reveal`,extra:(0,W.jsx)(X,{size:`sm`,ghost:!0,onClick:()=>m(e=>!e),title:`Edit the config JSON with autocomplete, validation and safe-apply`,icon:p?void 0:(0,W.jsx)(Zc,{}),children:p?`View`:`Edit config`}),children:p?(0,W.jsx)(kte,{initial:h?{...d,devices:{...d.devices,[h.name]:h.body}}:d,onClose:()=>{m(!1),g(null)},onReload:()=>{g(null),gc(`/api/config`).then(f).catch(()=>{})}},h?`seed-${h.name}`:`config`):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`text-muted-foreground mb-2.5 flex flex-wrap gap-x-4 gap-y-1 text-[11px]`,children:[(0,W.jsxs)(`span`,{children:[`transport: `,gx(je.transport)]}),(0,W.jsxs)(`span`,{children:[`read-only: `,d.readOnly?`yes`:`no`]}),(0,W.jsxs)(`span`,{children:[`dashboard: `,gx(Me.host),`:`,gx(Me.port)]}),(0,W.jsxs)(`span`,{children:[`capture: `,Me.captureBody?`on`:`off`]}),(0,W.jsxs)(`span`,{children:[`s3: `,d.s3?`configured`:`off`]}),(0,W.jsxs)(`span`,{children:[`ssh pool: `,Ne.keepAlive===!1?`off`:`on`]})]}),(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:`cursor-pointer text-sm`,children:`Full effective configuration (secrets redacted)`}),(0,W.jsx)(M7,{value:d,maxHeight:340})]})]})}),(0,W.jsx)(sx,{title:`Dashboard preferences`,className:`reveal`,extra:(0,W.jsxs)(`span`,{className:`text-muted-foreground text-[11px]`,children:[`saved to `,(0,W.jsx)(`code`,{children:`dashboard.feedLimit`}),` in the config`]}),children:(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,W.jsx)(kb,{className:`text-[12.5px]`,children:`Live Feed rows`}),(0,W.jsxs)(`span`,{className:`text-muted-foreground text-[11px]`,children:[`How many matching calls the feed table renders. Up to `,hx(1e4),` are kept in memory regardless; this only bounds what is drawn.`]})]}),(0,W.jsx)(`span`,{className:`flex-1`}),(0,W.jsx)(Xx,{size:`sm`,"aria-label":`Live Feed rows`,value:String(S),onValueChange:e=>void C(Number(e)),options:dx.map(e=>({value:String(e),label:`${hx(e)} rows${e===200?` (default)`:``}`}))})]})}),(0,W.jsx)(sx,{title:`Version history`,className:`reveal`,extra:(0,W.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:`point-in-time snapshots · diff & restore`}),children:(0,W.jsx)(B7,{onRestored:()=>void gc(`/api/config`).then(f).catch(()=>{})})}),(0,W.jsx)(sx,{title:`Field guide`,className:`reveal`,extra:(0,W.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:`every config option, documented from the schema`}),children:(0,W.jsx)(H7,{})})]}):(0,W.jsx)(Q9,{icon:(0,W.jsx)(Gx,{}),title:`Loading configuration…`})),R===`memory`&&(0,W.jsx)(tne,{}),R===`releases`&&(0,W.jsx)(bne,{}),R===`capsman`&&(0,W.jsx)(Tne,{}),R===`feed`&&(0,W.jsxs)(sx,{className:`reveal`,title:`Live tool calls`,extra:(0,W.jsxs)(`span`,{className:`text-muted-foreground text-[11px]`,children:[hx(ve.length),` shown`,pe.length>ve.length&&` of ${hx(pe.length)} matching`,` ·`,` `,hx(_.length),` buffered`]}),children:[(0,W.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2`,children:[(0,W.jsx)(Kx,{className:`min-w-[180px] flex-1`,type:`search`,placeholder:`Search tool / input / output / error…`,value:P.q,onChange:e=>F(t=>({...t,q:e.target.value}))}),Pe(`tool`,`all tools`,n?.tools??[]),Pe(`risk`,`all risk`,[`READ`,`WRITE`,`WRITE_IDEMPOTENT`,`DESTRUCTIVE`,`DANGEROUS`]),Pe(`device`,`all devices`,n?.devices??[]),Pe(`status`,`all status`,[`ok`,`error`]),(0,W.jsx)(X,{size:`sm`,ghost:!0,type:w?`accent`:`default`,onClick:()=>T(e=>!e),icon:w?(0,W.jsx)(Qc,{}):(0,W.jsx)(Xc,{}),children:w?`Resume`:`Pause`}),(0,W.jsxs)(X,{size:`sm`,ghost:!0,onClick:()=>ke(`csv`),title:A.size?`Export ${A.size} selected row${A.size===1?``:`s`} as CSV`:`Export all visible rows as CSV`,children:[`CSV`,A.size?` (${A.size})`:``]}),(0,W.jsxs)(X,{size:`sm`,ghost:!0,onClick:()=>ke(`json`),title:A.size?`Export ${A.size} selected row${A.size===1?``:`s`} as JSON`:`Export all visible rows as JSON`,children:[`JSON`,A.size?` (${A.size})`:``]}),(0,W.jsx)(X,{size:`sm`,ghost:!0,onClick:()=>F({tool:``,risk:``,device:``,status:``,q:``}),children:`Clear`}),Ee&&A.size>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(X,{size:`sm`,type:`error`,onClick:()=>void Oe(),icon:(0,W.jsx)(Pc,{}),children:[`Confirm delete (`,A.size,`)`]}),(0,W.jsx)(X,{size:`sm`,ghost:!0,onClick:()=>De(!1),children:`Cancel`})]}):(0,W.jsxs)(X,{size:`sm`,ghost:!0,disabled:A.size===0,onClick:()=>De(!0),title:`Delete the selected rows`,icon:(0,W.jsx)(pl,{}),children:[`Delete`,A.size>0?` (${A.size})`:``]})]}),pe.length===0?me?(0,W.jsx)(Q9,{icon:(0,W.jsx)(ol,{className:`size-6`}),title:`No calls match your filters`,sub:`${_.length} call${_.length===1?``:`s`} buffered — try widening the search or the risk / device / status filters.`,body:(0,W.jsx)(X,{size:`sm`,ghost:!0,className:`mt-2`,onClick:()=>F({tool:``,risk:``,device:``,status:``,q:``}),children:`Clear filters`})}):(0,W.jsx)(Q9,{icon:(0,W.jsx)(Wx,{type:E===`off`?`secondary`:`success`,pulse:E!==`off`,className:`size-3`}),title:E===`off`?`Not connected`:`Listening for tool calls…`,sub:E===`off`?`The live stream is offline — it will reconnect automatically.`:`Tool calls the LLM makes against this server stream in here in real time.`}):(0,W.jsx)(`div`,{className:`max-h-[60vh] overflow-auto`,children:(0,W.jsxs)(Qb,{children:[(0,W.jsx)($b,{children:(0,W.jsxs)(tx,{children:[(0,W.jsx)(Y,{className:`w-7`,children:(0,W.jsx)(Ob,{"aria-label":`Select all shown rows`,checked:be?!0:xe?`indeterminate`:!1,onCheckedChange:Te})}),(0,W.jsx)(Y,{children:`time`}),(0,W.jsx)(Y,{children:`tool`}),(0,W.jsx)(Y,{children:`risk`}),(0,W.jsx)(Y,{children:`device`}),(0,W.jsx)(Y,{className:`text-right`,children:`dur`}),(0,W.jsx)(Y,{children:`status`}),(0,W.jsx)(Y,{children:`output`})]})}),(0,W.jsx)(ex,{children:ve.map(e=>(0,W.jsxs)(tx,{"data-state":A.has(e.id)?`selected`:void 0,className:q(`cursor-pointer`,e.isError&&`bg-destructive/8`),onClick:()=>void _e(e),children:[(0,W.jsx)(nx,{onClick:e=>e.stopPropagation(),children:(0,W.jsx)(Ob,{"aria-label":`Select row (Shift-click to select a range)`,checked:A.has(e.id),onPointerDown:e=>{Ce.current=e.shiftKey},onCheckedChange:()=>we(e.id)})}),(0,W.jsx)(nx,{className:`tabular-nums`,children:mx(e.ts)}),(0,W.jsx)(nx,{children:e.tool}),(0,W.jsx)(nx,{children:(0,W.jsx)(`span`,{className:q(`rounded-full border px-1.5 py-0.5 text-[10px]`,yx[e.risk]),children:e.risk.replace(`WRITE_IDEMPOTENT`,`WRITE·I`)})}),(0,W.jsx)(nx,{children:e.device??`—`}),(0,W.jsx)(nx,{className:`text-right tabular-nums`,children:fx(e.durationMs)}),(0,W.jsx)(nx,{children:(0,W.jsx)(`span`,{className:e.isError?`text-destructive`:`text-muted-foreground`,children:e.isError?`error`:`ok`})}),(0,W.jsx)(nx,{className:`text-muted-foreground max-w-[24rem] truncate`,children:e.isError?e.error??`error`:e.reason?(0,W.jsx)(`span`,{className:`italic`,children:e.reason}):e.output||`—`})]},e.id))})]})})]})]}),c.showModal&&c.release&&(0,W.jsx)(_ne,{release:c.release,onDismiss:c.dismissRelease}),O&&(0,W.jsx)(Ite,{event:O,onClose:()=>k(null)}),(0,W.jsx)(Zb,{})]})}var $9=document.getElementById(`root`);$9&&(0,y.createRoot)($9).render((0,W.jsx)(Gne,{}));
156
156
  </script>
157
157
  <style>
158
- @import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";@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-border-style:solid;--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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-mt);--font-mono:var(--font-mt);--color-orange-500:oklch(70.5% .213 47.604);--color-yellow-500:oklch(79.5% .184 86.047);--color-emerald-500:oklch(69.6% .17 162.48);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-2xl:40px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-mt);--default-mono-font-family:var(--font-mt);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--font-mt:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);font-family:var(--font-mt);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components{@media (prefers-reduced-motion:no-preference){.js-motion .reveal{opacity:0}}}@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-16{top:calc(var(--spacing) * -16)}.-top-px{top:-1px}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.-right-16{right:calc(var(--spacing) * -16)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[21px\]{left:-21px}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-\[9px\]{left:9px}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[5\]{z-index:5}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2\.5{margin-block:calc(var(--spacing) * 2.5)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[3px\]{margin-top:3px}.mt-\[7px\]{margin-top:7px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.\[field-sizing\:fixed\]{field-sizing:fixed}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.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-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-56{width:calc(var(--spacing) * 56);height:calc(var(--spacing) * 56)}.size-\[7px\]{width:7px;height:7px}.size-\[9px\]{width:9px;height:9px}.size-\[11px\]{width:11px;height:11px}.size-\[12px\]{width:12px;height:12px}.size-\[13px\]{width:13px;height:13px}.size-\[14px\]{width:14px;height:14px}.size-\[18px\]{width:18px;height:18px}.size-\[19px\]{width:19px;height:19px}.size-\[72px\]{width:72px;height:72px}.size-full{width:100%;height:100%}.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\.5{height:calc(var(--spacing) * 3.5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-40{height:calc(var(--spacing) * 40)}.h-\[18px\]{height:18px}.h-\[46px\]{height:46px}.h-\[150px\]{height:150px}.h-\[200px\]{height:200px}.h-\[360px\]{height:360px}.h-\[400px\]{height:400px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[184px\]{max-height:184px}.max-h-\[250px\]{max-height:250px}.max-h-\[280px\]{max-height:280px}.max-h-\[320px\]{max-height:320px}.max-h-\[360px\]{max-height:360px}.max-h-\[420px\]{max-height:420px}.max-h-\[440px\]{max-height:440px}.max-h-\[500px\]{max-height:500px}.max-h-\[calc\(100vh-80px\)\]{max-height:calc(100vh - 80px)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-\[120px\]{min-height:120px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-7{width:calc(var(--spacing) * 7)}.w-11{width:calc(var(--spacing) * 11)}.w-20{width:calc(var(--spacing) * 20)}.w-40{width:calc(var(--spacing) * 40)}.w-\[90px\]{width:90px}.w-\[120px\]{width:120px}.w-\[130px\]{width:130px}.w-\[150px\]{width:150px}.w-\[170px\]{width:170px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[380px\]{width:380px}.w-\[min\(48vw\,380px\)\]{width:min(48vw,380px)}.w-\[min\(360px\,60vw\)\]{width:min(360px,60vw)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[24rem\]{max-width:24rem}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[460px\]{max-width:460px}.max-w-\[520px\]{max-width:520px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[min\(60vw\,520px\)\]{max-width:min(60vw,520px)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[38px\]{min-width:38px}.min-w-\[48px\]{min-width:48px}.min-w-\[60px\]{min-width:60px}.min-w-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[980px\]{min-width:980px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-100\%-9px\)\]{--tw-translate-y:calc(-100% - 9px);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:var(--spacing)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[24px_minmax\(0\,1fr\)_auto\]{grid-template-columns:24px minmax(0,1fr) auto}.grid-cols-\[52px_1fr_34px\]{grid-template-columns:52px 1fr 34px}.grid-cols-\[90px_64px_48px_1fr\]{grid-template-columns:90px 64px 48px 1fr}.grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.grid-cols-\[240px_1fr\]{grid-template-columns:240px 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[minmax\(0\,7rem\)_1fr_auto\]{grid-template-columns:minmax(0,7rem) 1fr auto}.grid-cols-\[minmax\(120px\,0\.4fr\)_1fr\]{grid-template-columns:minmax(120px,.4fr) 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(20rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(22rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(22rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(200px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(220px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(240px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(100\%\,360px\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(9rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.justify-items-start{justify-items:start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[9px\]{gap:9px}.gap-\[18px\]{gap:18px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.-space-x-px>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-1px * var(--tw-space-x-reverse));margin-inline-end:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-\[3px\]{row-gap:3px}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-\[10px\]{border-radius:10px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:calc(var(--radius) + 2px)}.rounded-md{border-radius:var(--radius)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-\[2\.5px\]{border-style:var(--tw-border-style);border-width:2.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--color-border\){border-color:var(--color-border)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-brand,.border-brand\/30{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/30{border-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.border-brand\/40{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/40{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.border-brand\/50{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/50{border-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.border-brand\/55{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/55{border-color:color-mix(in oklab, var(--brand) 55%, transparent)}}.border-chart-1\/40{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/40{border-color:color-mix(in oklab, var(--chart-1) 40%, transparent)}}.border-chart-1\/45{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/45{border-color:color-mix(in oklab, var(--chart-1) 45%, transparent)}}.border-chart-1\/50{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/50{border-color:color-mix(in oklab, var(--chart-1) 50%, transparent)}}.border-chart-2\/40{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.border-chart-2\/40{border-color:color-mix(in oklab, var(--chart-2) 40%, transparent)}}.border-chart-2\/45{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.border-chart-2\/45{border-color:color-mix(in oklab, var(--chart-2) 45%, transparent)}}.border-chart-3\/35{border-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.border-chart-3\/35{border-color:color-mix(in oklab, var(--chart-3) 35%, transparent)}}.border-chart-3\/40{border-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.border-chart-3\/40{border-color:color-mix(in oklab, var(--chart-3) 40%, transparent)}}.border-chart-4\/40{border-color:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.border-chart-4\/40{border-color:color-mix(in oklab, var(--chart-4) 40%, transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.border-destructive\/45{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/45{border-color:color-mix(in oklab, var(--destructive) 45%, transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-input{border-color:var(--input)}.border-success\/35{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/35{border-color:color-mix(in oklab, var(--success) 35%, transparent)}}.border-success\/40{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/40{border-color:color-mix(in oklab, var(--success) 40%, transparent)}}.border-success\/45{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/45{border-color:color-mix(in oklab, var(--success) 45%, transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--warning) 30%, transparent)}}.border-warning\/40{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/40{border-color:color-mix(in oklab, var(--warning) 40%, transparent)}}.border-warning\/45{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/45{border-color:color-mix(in oklab, var(--warning) 45%, transparent)}}.border-warning\/60{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/60{border-color:color-mix(in oklab, var(--warning) 60%, transparent)}}.border-yellow-500\/40{border-color:#edb20066}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/40{border-color:color-mix(in oklab, var(--color-yellow-500) 40%, transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-border{border-left-color:var(--border)}.border-l-destructive{border-left-color:var(--destructive)}.border-l-success{border-left-color:var(--success)}.border-l-transparent{border-left-color:#0000}.border-l-warning{border-left-color:var(--warning)}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-brand,.bg-brand\/10{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/10{background-color:color-mix(in oklab, var(--brand) 10%, transparent)}}.bg-brand\/15{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/15{background-color:color-mix(in oklab, var(--brand) 15%, transparent)}}.bg-brand\/20{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/20{background-color:color-mix(in oklab, var(--brand) 20%, transparent)}}.bg-brand\/40{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/40{background-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.bg-brand\/60{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/60{background-color:color-mix(in oklab, var(--brand) 60%, transparent)}}.bg-brand\/\[0\.13\]{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/\[0\.13\]{background-color:color-mix(in oklab, var(--brand) 13%, transparent)}}.bg-card{background-color:var(--card)}.bg-chart-1\/10{background-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.bg-chart-1\/10{background-color:color-mix(in oklab, var(--chart-1) 10%, transparent)}}.bg-chart-2,.bg-chart-2\/10{background-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.bg-chart-2\/10{background-color:color-mix(in oklab, var(--chart-2) 10%, transparent)}}.bg-destructive,.bg-destructive\/8{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/8{background-color:color-mix(in oklab, var(--destructive) 8%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/15{background-color:color-mix(in oklab, var(--destructive) 15%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.bg-muted-foreground\/60{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/60{background-color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\/45{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/45{background-color:color-mix(in oklab, var(--muted) 45%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-success,.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/8{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/8{background-color:color-mix(in oklab, var(--warning) 8%, transparent)}}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-yellow-500\/15{background-color:#edb20026}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/15{background-color:color-mix(in oklab, var(--color-yellow-500) 15%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-brand\/10{--tw-gradient-from:var(--brand)}@supports (color:color-mix(in lab, red, red)){.from-brand\/10{--tw-gradient-from:color-mix(in oklab, var(--brand) 10%, transparent)}}.from-brand\/10{--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-transparent{--tw-gradient-to:transparent;--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))}.fill-background{fill:var(--background)}.fill-brand\/15{fill:var(--brand)}@supports (color:color-mix(in lab, red, red)){.fill-brand\/15{fill:color-mix(in oklab, var(--brand) 15%, transparent)}}.fill-brand\/25{fill:var(--brand)}@supports (color:color-mix(in lab, red, red)){.fill-brand\/25{fill:color-mix(in oklab, var(--brand) 25%, transparent)}}.fill-card{fill:var(--card)}.fill-chart-3\/20{fill:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.fill-chart-3\/20{fill:color-mix(in oklab, var(--chart-3) 20%, transparent)}}.fill-chart-4\/15{fill:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.fill-chart-4\/15{fill:color-mix(in oklab, var(--chart-4) 15%, transparent)}}.fill-current{fill:currentColor}.fill-foreground{fill:var(--foreground)}.fill-muted{fill:var(--muted)}.fill-muted-foreground{fill:var(--muted-foreground)}.fill-none{fill:none}.fill-success\/20{fill:var(--success)}@supports (color:color-mix(in lab, red, red)){.fill-success\/20{fill:color-mix(in oklab, var(--success) 20%, transparent)}}.fill-warning\/15{fill:var(--warning)}@supports (color:color-mix(in lab, red, red)){.fill-warning\/15{fill:color-mix(in oklab, var(--warning) 15%, transparent)}}.stroke-background{stroke:var(--background)}.stroke-border,.stroke-border\/40{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/40{stroke:color-mix(in oklab, var(--border) 40%, transparent)}}.stroke-border\/60{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/60{stroke:color-mix(in oklab, var(--border) 60%, transparent)}}.stroke-border\/70{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/70{stroke:color-mix(in oklab, var(--border) 70%, transparent)}}.stroke-brand,.stroke-brand\/55{stroke:var(--brand)}@supports (color:color-mix(in lab, red, red)){.stroke-brand\/55{stroke:color-mix(in oklab, var(--brand) 55%, transparent)}}.stroke-chart-2\/70{stroke:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.stroke-chart-2\/70{stroke:color-mix(in oklab, var(--chart-2) 70%, transparent)}}.stroke-chart-3{stroke:var(--chart-3)}.stroke-chart-4{stroke:var(--chart-4)}.stroke-foreground{stroke:var(--foreground)}.stroke-none{stroke:none}.stroke-success{stroke:var(--success)}.stroke-warning{stroke:var(--warning)}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.stroke-\[1\.5px\]{stroke-width:1.5px}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:var(--spacing)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.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-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[11px\]{padding-inline:11px}.px-\[13px\]{padding-inline:13px}.px-\[15px\]{padding-inline:15px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-\[3px\]{padding-block:3px}.py-\[5px\]{padding-block:5px}.py-\[7px\]{padding-block:7px}.py-\[9px\]{padding-block:9px}.py-\[11px\]{padding-block:11px}.py-\[54px\]{padding-block:54px}.py-px{padding-block:1px}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-px{padding-top:1px}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mt)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[11px\]\/\[1\.5\]{font-size:11px;line-height:1.5}.text-\[11px\]\/\[1\.6\]{font-size:11px;line-height:1.6}.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-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[40px\]{font-size:40px}.text-\[44px\]{font-size:44px}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[8px\]{--tw-leading:8px;line-height:8px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.09em\]{--tw-tracking:.09em;letter-spacing:.09em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\[tab-size\:2\]{tab-size:2}.text-accent-foreground{color:var(--accent-foreground)}.text-background{color:var(--background)}.text-brand{color:var(--brand)}.text-brand-foreground{color:var(--brand-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-chart-1{color:var(--chart-1)}.text-chart-2{color:var(--chart-2)}.text-chart-3{color:var(--chart-3)}.text-chart-4{color:var(--chart-4)}.text-chart-5{color:var(--chart-5)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-success{color:var(--success)}.text-transparent{color:#0000}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.caret-brand{caret-color:var(--brand)}.accent-brand{accent-color:var(--brand)}.opacity-15{opacity:.15}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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-none{--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)}.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)}.shadow-xl{--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), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--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-0{--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)}.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-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-brand\/25{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.ring-brand\/25{--tw-ring-color:color-mix(in oklab, var(--brand) 25%, transparent)}}.ring-brand\/30{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.ring-brand\/30{--tw-ring-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.ring-card{--tw-ring-color:var(--card)}.ring-emerald-500\/30{--tw-ring-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.ring-emerald-500\/30{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-2xl{--tw-blur:blur(var(--blur-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,)}.grayscale-\[0\.4\]{--tw-grayscale:grayscale(.4);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,)}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,border-color\]{transition-property:transform,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;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))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-\[400ms\]{--tw-duration:.4s;transition-duration:.4s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-50{--tw-enter-scale:.5}.zoom-in-95{--tw-enter-scale:.95}.\[text-shadow\:0_0_3px_rgba\(0\,0\,0\,0\.6\)\]{text-shadow:0 0 3px #0009}.\[transition\:stroke_0\.1s_ease\]{transition:stroke .1s}.\[vector-effect\:non-scaling-stroke\]{vector-effect:non-scaling-stroke}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-destructive:is(:where(.group).toast *){color:var(--destructive)}.group-\[\.toast\]\:text-foreground:is(:where(.group).toast *){color:var(--foreground)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:border:is(:where(.group).toaster *){border-style:var(--tw-border-style);border-width:1px}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--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)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-brand\/35 ::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/35 ::selection{background-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.selection\:bg-brand\/35::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/35::selection{background-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-\[25px\]:before{content:var(--tw-content);top:25px}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:left-\[22px\]:before{content:var(--tw-content);left:22px}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:bg-border:before{content:var(--tw-content);background-color:var(--border)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:0}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:0}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.last\:before\:hidden:last-child:before{content:var(--tw-content);display:none}.odd\:bg-card\/40:nth-child(odd){background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.odd\:bg-card\/40:nth-child(odd){background-color:color-mix(in oklab, var(--card) 40%, transparent)}}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-brand\/35:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/35:hover{border-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.hover\:border-brand\/40:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/40:hover{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.hover\:border-chart-2\/35:hover{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.hover\:border-chart-2\/35:hover{border-color:color-mix(in oklab, var(--chart-2) 35%, transparent)}}.hover\:border-muted-foreground\/40:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-brand\/10:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/10:hover{background-color:color-mix(in oklab, var(--brand) 10%, transparent)}}.hover\:bg-brand\/90:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/90:hover{background-color:color-mix(in oklab, var(--brand) 90%, transparent)}}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-foreground\/5:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-success\/10:hover{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/10:hover{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.hover\:bg-success\/90:hover{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/90:hover{background-color:color-mix(in oklab, var(--success) 90%, transparent)}}.hover\:bg-warning\/10:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/10:hover{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.hover\:bg-warning\/90:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/90:hover{background-color:color-mix(in oklab, var(--warning) 90%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--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)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-0:focus-visible{border-style:var(--tw-border-style);border-width:0}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--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-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=default\]\:h-\[1\.15rem\][data-size=default]{height:1.15rem}.data-\[size\=default\]\:w-8[data-size=default]{width:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-3\.5[data-size=sm]{height:calc(var(--spacing) * 3.5)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:w-6[data-size=sm]{width:calc(var(--spacing) * 6)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media not all and (width>=720px){.max-\[720px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (width>=40rem){.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-\[520px\]{max-width:520px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[\&_\.j-bool\]\:text-chart-4 .j-bool{color:var(--chart-4)}.\[\&_\.j-key\]\:text-chart-1 .j-key{color:var(--chart-1)}.\[\&_\.j-null\]\:text-muted-foreground .j-null{color:var(--muted-foreground)}.\[\&_\.j-num\]\:text-chart-3 .j-num{color:var(--chart-3)}.\[\&_\.j-str\]\:text-chart-2 .j-str{color:var(--chart-2)}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:color-mix(in oklab, var(--border) 50%, transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.wn-check\]\:inline-block .wn-check{display:inline-block}.\[\&_\.wn-check\]\:w-4 .wn-check{width:calc(var(--spacing) * 4)}.\[\&_\.wn-table-wrap\]\:my-2\.5 .wn-table-wrap{margin-block:calc(var(--spacing) * 2.5)}.\[\&_\.wn-table-wrap\]\:overflow-x-auto .wn-table-wrap{overflow-x:auto}.\[\&_\.wn-table-wrap\]\:rounded-md .wn-table-wrap{border-radius:var(--radius)}.\[\&_\.wn-table-wrap\]\:border .wn-table-wrap{border-style:var(--tw-border-style);border-width:1px}.\[\&_\.wn-table-wrap\]\:border-border .wn-table-wrap{border-color:var(--border)}.\[\&_\.wn-task\]\:-ml-\[18px\] .wn-task{margin-left:-18px}.\[\&_\.wn-task\]\:list-none .wn-task{list-style-type:none}.\[\&_\.wn-task\.done_\.wn-check\]\:text-success .wn-task.done .wn-check{color:var(--success)}.\[\&_a\]\:text-brand a{color:var(--brand)}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-2 a{text-underline-offset:2px}.\[\&_b\]\:font-medium b{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_b\]\:break-words b{overflow-wrap:break-word}.\[\&_b\]\:text-foreground b{color:var(--foreground)}.\[\&_blockquote\]\:my-2 blockquote{margin-block:calc(var(--spacing) * 2)}.\[\&_blockquote\]\:border-l-\[3px\] blockquote{border-left-style:var(--tw-border-style);border-left-width:3px}.\[\&_blockquote\]\:border-brand\/40 blockquote{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.\[\&_blockquote\]\:border-brand\/40 blockquote{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.\[\&_blockquote\]\:px-3\.5 blockquote{padding-inline:calc(var(--spacing) * 3.5)}.\[\&_blockquote\]\:py-1\.5 blockquote{padding-block:calc(var(--spacing) * 1.5)}.\[\&_blockquote\]\:italic blockquote{font-style:italic}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:border code{border-style:var(--tw-border-style);border-width:1px}.\[\&_code\]\:border-border code{border-color:var(--border)}.\[\&_code\]\:bg-muted code{background-color:var(--muted)}.\[\&_code\]\:px-1\.5 code{padding-inline:calc(var(--spacing) * 1.5)}.\[\&_code\]\:py-0\.5 code{padding-block:calc(var(--spacing) * .5)}.\[\&_code\]\:font-mono code{font-family:var(--font-mt)}.\[\&_code\]\:text-xs code{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_code\]\:text-brand code{color:var(--brand)}.\[\&_del\]\:text-muted-foreground del{color:var(--muted-foreground)}.\[\&_del\]\:opacity-60 del{opacity:.6}.\[\&_h2\]\:mt-\[18px\] h2{margin-top:18px}.\[\&_h2\]\:mb-1\.5 h2{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h2\]\:text-\[17px\] h2{font-size:17px}.\[\&_h2\]\:font-bold h2{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h2\]\:text-foreground h2{color:var(--foreground)}.\[\&_h3\]\:mt-\[18px\] h3{margin-top:18px}.\[\&_h3\]\:mb-1\.5 h3{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h3\]\:text-\[15px\] h3{font-size:15px}.\[\&_h3\]\:font-bold h3{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h3\]\:text-foreground h3{color:var(--foreground)}.\[\&_h4\]\:mt-\[18px\] h4{margin-top:18px}.\[\&_h4\]\:mb-1\.5 h4{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h4\]\:text-\[14px\] h4{font-size:14px}.\[\&_h4\]\:font-bold h4{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h4\]\:text-foreground h4{color:var(--foreground)}.\[\&_h5\]\:mt-\[18px\] h5{margin-top:18px}.\[\&_h5\]\:mb-1\.5 h5{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h5\]\:text-\[14px\] h5{font-size:14px}.\[\&_h5\]\:font-bold h5{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h5\]\:text-foreground h5{color:var(--foreground)}.\[\&_hr\]\:my-3\.5 hr{margin-block:calc(var(--spacing) * 3.5)}.\[\&_hr\]\:border-0 hr{border-style:var(--tw-border-style);border-width:0}.\[\&_hr\]\:border-t hr{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&_hr\]\:border-border hr{border-color:var(--border)}.\[\&_i\]\:inline-block i{display:inline-block}.\[\&_i\]\:size-2\.5 i{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.\[\&_i\]\:rounded-\[3px\] i{border-radius:3px}.\[\&_img\]\:my-1\.5 img{margin-block:calc(var(--spacing) * 1.5)}.\[\&_img\]\:max-w-full img{max-width:100%}.\[\&_img\]\:rounded-md img{border-radius:var(--radius)}.\[\&_img\]\:border img{border-style:var(--tw-border-style);border-width:1px}.\[\&_img\]\:border-border img{border-color:var(--border)}.\[\&_li\]\:my-\[3px\] li{margin-block:3px}.\[\&_li\]\:marker\:text-brand li ::marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li::marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li ::-webkit-details-marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li::-webkit-details-marker{color:var(--brand)}.\[\&_ol\]\:my-\[5px\] ol{margin-block:5px}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-\[22px\] ol{padding-left:22px}.\[\&_p\]\:my-\[5px\] p{margin-block:5px}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_pre\]\:my-2 pre{margin-block:calc(var(--spacing) * 2)}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-md pre{border-radius:var(--radius)}.\[\&_pre\]\:border pre{border-style:var(--tw-border-style);border-width:1px}.\[\&_pre\]\:border-border pre{border-color:var(--border)}.\[\&_pre\]\:bg-background pre{background-color:var(--background)}.\[\&_pre\]\:p-3 pre{padding:calc(var(--spacing) * 3)}.\[\&_pre_code\]\:border-0 pre code{border-style:var(--tw-border-style);border-width:0}.\[\&_pre_code\]\:bg-transparent pre code{background-color:#0000}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_pre_code\]\:text-muted-foreground pre code{color:var(--muted-foreground)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_strong\]\:text-foreground strong{color:var(--foreground)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_table\]\:w-full table{width:100%}.\[\&_table\]\:border-collapse table{border-collapse:collapse}.\[\&_table\]\:font-mono table{font-family:var(--font-mt)}.\[\&_table\]\:text-xs table{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_td\]\:border-b td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_td\]\:border-border td{border-color:var(--border)}.\[\&_td\]\:px-3 td{padding-inline:calc(var(--spacing) * 3)}.\[\&_td\]\:py-\[7px\] td{padding-block:7px}.\[\&_td\]\:text-muted-foreground td{color:var(--muted-foreground)}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-border th{border-color:var(--border)}.\[\&_th\]\:bg-muted th{background-color:var(--muted)}.\[\&_th\]\:px-3 th{padding-inline:calc(var(--spacing) * 3)}.\[\&_th\]\:py-\[7px\] th{padding-block:7px}.\[\&_th\]\:text-left th{text-align:left}.\[\&_th\]\:text-\[11px\] th{font-size:11px}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_th\]\:tracking-wide th{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[\&_th\]\:text-foreground th{color:var(--foreground)}.\[\&_th\]\:uppercase th{text-transform:uppercase}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:my-\[5px\] ul{margin-block:5px}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-\[18px\] ul{padding-left:18px}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>b\]\:text-foreground>b{color:var(--foreground)}.\[\&\>span\]\:inline-flex>span{display:inline-flex}.\[\&\>span\]\:items-center>span{align-items:center}.\[\&\>span\]\:gap-1\.5>span{gap:calc(var(--spacing) * 1.5)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.conn{display:block;overflow:visible}.conn-grid{fill:none;stroke:var(--border);stroke-opacity:.7;stroke-dasharray:2 7}.conn-sonar{fill:none;stroke:var(--brand);stroke-width:1.5px;opacity:0;animation:3.3s ease-out infinite conn-sonar}.conn-hub-glow{fill:var(--brand);opacity:.22;filter:blur(11px)}.conn-hub-ring{fill:none;stroke:var(--brand);stroke-width:1.4px;stroke-dasharray:4 9;opacity:.7;transform-box:fill-box;transform-origin:50%;animation:15s linear infinite conn-rot}.conn-node text{pointer-events:none}.conn-node-halo{fill:none;stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite conn-halo}.conn-link{fill:none;stroke-width:1.6px;opacity:.38}.conn-flow{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:2 13;opacity:.9;filter:drop-shadow(0 0 4px);animation:1.05s linear infinite conn-flow}.conn-packet{filter:drop-shadow(0 0 6px var(--chart-2))}.conn-chevron{fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.6}.conn-tunnel-halo{fill:none;stroke-width:8px;stroke-linecap:round;opacity:.1}.conn-tunnel{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:6 6;animation:.9s linear infinite conn-tunnel-flow}.conn-tunnel-lock{filter:drop-shadow(0 0 4px var(--warning))}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-lock{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--warning) 80%, transparent))}}.conn-tunnel-sat{stroke-width:1.5px;filter:drop-shadow(0 0 5px var(--warning))}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-sat{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--warning) 53%, transparent))}}.conn-tunnel-badge{fill:var(--warning)}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-badge{fill:color-mix(in srgb, var(--warning) 16%, var(--background))}}.conn-tunnel-badge{stroke:var(--warning)}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-badge{stroke:color-mix(in srgb, var(--warning) 60%, var(--border))}}.conn-tunnel-badge{stroke-width:1px}.conn-tunnel-badge-tx{fill:var(--warning);letter-spacing:.02em;font-weight:700}.jump-route__wire{background-image:linear-gradient(90deg, var(--border) 0 50%, transparent 50% 100%);background-size:8px 2px;border-radius:2px;flex:1;min-width:18px;height:2px;animation:.7s linear infinite jump-wire}.jump-route__wire--enc{background-image:linear-gradient(90deg, var(--warning) 0 55%, transparent 55% 100%);min-width:34px;height:3px;box-shadow:0 0 8px -1px var(--warning);background-size:10px 3px;position:relative}@supports (color:color-mix(in lab, red, red)){.jump-route__wire--enc{box-shadow:0 0 8px -1px color-mix(in srgb, var(--warning) 53%, transparent)}}.jump-route__lock{filter:drop-shadow(0 0 3px var(--warning));font-size:11px;animation:2.2s linear infinite jump-lock;position:absolute;top:50%}.topo-sweep{animation:8s linear infinite topo-sweep}.topo-ring{transform-box:fill-box;transform-origin:50%;animation:90s linear infinite reverse topo-ring}.topo-flow{animation:1.4s linear infinite topo-flow}.topo-pulse{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-in-out infinite topo-pulse}.topo-halo{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-out infinite topo-halo}@keyframes topo-sweep{to{transform:rotate(360deg)}}@keyframes topo-ring{to{transform:rotate(360deg)}}@keyframes topo-flow{to{stroke-dashoffset:-16px}}@keyframes topo-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}@keyframes topo-halo{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes conn-sonar{0%{r:30px;opacity:.5}to{r:150px;opacity:0}}@keyframes conn-flow{to{stroke-dashoffset:-60px}}@keyframes conn-rot{to{transform:rotate(360deg)}}@keyframes conn-halo{0%,to{opacity:.45;transform:scale(1)}50%{opacity:0;transform:scale(1.55)}}@keyframes conn-tunnel-flow{to{stroke-dashoffset:-24px}}@keyframes jump-wire{to{background-position:8px 0}}@keyframes jump-lock{0%{left:-4px;transform:translateY(-50%)scale(.9)}50%{transform:translateY(-50%)scale(1.1)}to{left:calc(100% - 8px);transform:translateY(-50%)scale(.9)}}@media (prefers-reduced-motion:reduce){.conn-sonar,.topo-sweep{display:none}.conn-flow,.conn-hub-ring,.conn-node-halo,.conn-tunnel,.jump-route__wire,.jump-route__lock,.topo-ring,.topo-flow,.topo-pulse,.topo-halo{animation:none}.conn-packet animateMotion,.conn-tunnel-lock animateMotion{display:none}}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#0a0a0a;--primary-foreground:#fafafa;--secondary:#f4f4f5;--secondary-foreground:#0a0a0a;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#0a0a0a;--destructive:#e5484d;--destructive-foreground:#fff;--success:#18794e;--warning:#ab6400;--border:#e4e4e7;--input:#e4e4e7;--radius:.5rem;--page-accent:var(--foreground);--page-accent-2:var(--muted-foreground);--brand:var(--page-accent);--brand-foreground:var(--background);--ring:var(--brand);--chart-1:#0068d6;--chart-2:#0f8a7e;--chart-3:#3d8f2f;--chart-4:#a35200;--chart-5:#7048c4;--entity-1:#0068d6;--entity-2:#087a52;--entity-3:#6d3fc4;--entity-4:#a35200;--entity-5:#c02a2a;--entity-6:#0f8a7e;--entity-7:#c0267a;--entity-8:#2563eb;--entity-9:#8a6a00;--entity-10:#b4530f}.dark{--background:#0a0a0a;--foreground:#ededed;--card:#111;--card-foreground:#ededed;--popover:#111;--popover-foreground:#ededed;--primary:#ededed;--primary-foreground:#0a0a0a;--secondary:#1a1a1a;--secondary-foreground:#ededed;--muted:#1a1a1a;--muted-foreground:#a1a1a1;--accent:#1a1a1a;--accent-foreground:#ededed;--destructive:#ff5c5c;--destructive-foreground:#fff;--success:#2dd4a7;--warning:#f5a623;--border:#2a2a2a;--input:#2a2a2a;--chart-1:#3291ff;--chart-2:#2dd4bf;--chart-3:#69d05a;--chart-4:#f5a623;--chart-5:#9d7bff;--entity-1:#3291ff;--entity-2:#34d399;--entity-3:#a78bfa;--entity-4:#f59e0b;--entity-5:#ef4444;--entity-6:#2dd4bf;--entity-7:#f472b6;--entity-8:#60a5fa;--entity-9:#facc15;--entity-10:#fb923c}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";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:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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 pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
158
+ @import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";@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-border-style:solid;--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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-mt);--font-mono:var(--font-mt);--color-orange-500:oklch(70.5% .213 47.604);--color-yellow-500:oklch(79.5% .184 86.047);--color-emerald-500:oklch(69.6% .17 162.48);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-2xl:40px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-mt);--default-mono-font-family:var(--font-mt);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--font-mt:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);font-family:var(--font-mt);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components{@media (prefers-reduced-motion:no-preference){.js-motion .reveal{opacity:0}}}@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-16{top:calc(var(--spacing) * -16)}.-top-px{top:-1px}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.-right-16{right:calc(var(--spacing) * -16)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-1\.5{bottom:calc(var(--spacing) * -1.5)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[21px\]{left:-21px}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-\[9px\]{left:9px}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[5\]{z-index:5}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2\.5{margin-block:calc(var(--spacing) * 2.5)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[3px\]{margin-top:3px}.mt-\[7px\]{margin-top:7px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.\[field-sizing\:fixed\]{field-sizing:fixed}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.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-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-56{width:calc(var(--spacing) * 56);height:calc(var(--spacing) * 56)}.size-\[7px\]{width:7px;height:7px}.size-\[9px\]{width:9px;height:9px}.size-\[11px\]{width:11px;height:11px}.size-\[12px\]{width:12px;height:12px}.size-\[13px\]{width:13px;height:13px}.size-\[14px\]{width:14px;height:14px}.size-\[18px\]{width:18px;height:18px}.size-\[19px\]{width:19px;height:19px}.size-\[72px\]{width:72px;height:72px}.size-full{width:100%;height:100%}.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\.5{height:calc(var(--spacing) * 3.5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-40{height:calc(var(--spacing) * 40)}.h-\[18px\]{height:18px}.h-\[46px\]{height:46px}.h-\[150px\]{height:150px}.h-\[200px\]{height:200px}.h-\[360px\]{height:360px}.h-\[400px\]{height:400px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[184px\]{max-height:184px}.max-h-\[250px\]{max-height:250px}.max-h-\[280px\]{max-height:280px}.max-h-\[320px\]{max-height:320px}.max-h-\[360px\]{max-height:360px}.max-h-\[420px\]{max-height:420px}.max-h-\[440px\]{max-height:440px}.max-h-\[500px\]{max-height:500px}.max-h-\[calc\(100vh-80px\)\]{max-height:calc(100vh - 80px)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-\[120px\]{min-height:120px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-7{width:calc(var(--spacing) * 7)}.w-11{width:calc(var(--spacing) * 11)}.w-20{width:calc(var(--spacing) * 20)}.w-40{width:calc(var(--spacing) * 40)}.w-\[90px\]{width:90px}.w-\[120px\]{width:120px}.w-\[130px\]{width:130px}.w-\[150px\]{width:150px}.w-\[170px\]{width:170px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[380px\]{width:380px}.w-\[min\(48vw\,380px\)\]{width:min(48vw,380px)}.w-\[min\(360px\,60vw\)\]{width:min(360px,60vw)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[24rem\]{max-width:24rem}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[460px\]{max-width:460px}.max-w-\[520px\]{max-width:520px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[min\(60vw\,520px\)\]{max-width:min(60vw,520px)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[38px\]{min-width:38px}.min-w-\[48px\]{min-width:48px}.min-w-\[60px\]{min-width:60px}.min-w-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[980px\]{min-width:980px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-100\%-9px\)\]{--tw-translate-y:calc(-100% - 9px);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:var(--spacing)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[24px_minmax\(0\,1fr\)_auto\]{grid-template-columns:24px minmax(0,1fr) auto}.grid-cols-\[52px_1fr_34px\]{grid-template-columns:52px 1fr 34px}.grid-cols-\[90px_64px_48px_1fr\]{grid-template-columns:90px 64px 48px 1fr}.grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.grid-cols-\[240px_1fr\]{grid-template-columns:240px 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[minmax\(0\,7rem\)_1fr_auto\]{grid-template-columns:minmax(0,7rem) 1fr auto}.grid-cols-\[minmax\(120px\,0\.4fr\)_1fr\]{grid-template-columns:minmax(120px,.4fr) 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(20rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(22rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(22rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(200px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(220px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(240px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(100\%\,360px\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(9rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.justify-items-start{justify-items:start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[9px\]{gap:9px}.gap-\[18px\]{gap:18px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.-space-x-px>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-1px * var(--tw-space-x-reverse));margin-inline-end:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-\[3px\]{row-gap:3px}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-\[10px\]{border-radius:10px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:calc(var(--radius) + 2px)}.rounded-md{border-radius:var(--radius)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-\[2\.5px\]{border-style:var(--tw-border-style);border-width:2.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--color-border\){border-color:var(--color-border)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-brand,.border-brand\/30{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/30{border-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.border-brand\/40{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/40{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.border-brand\/50{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/50{border-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.border-brand\/55{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/55{border-color:color-mix(in oklab, var(--brand) 55%, transparent)}}.border-chart-1\/40{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/40{border-color:color-mix(in oklab, var(--chart-1) 40%, transparent)}}.border-chart-1\/45{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/45{border-color:color-mix(in oklab, var(--chart-1) 45%, transparent)}}.border-chart-1\/50{border-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.border-chart-1\/50{border-color:color-mix(in oklab, var(--chart-1) 50%, transparent)}}.border-chart-2\/40{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.border-chart-2\/40{border-color:color-mix(in oklab, var(--chart-2) 40%, transparent)}}.border-chart-2\/45{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.border-chart-2\/45{border-color:color-mix(in oklab, var(--chart-2) 45%, transparent)}}.border-chart-3\/35{border-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.border-chart-3\/35{border-color:color-mix(in oklab, var(--chart-3) 35%, transparent)}}.border-chart-3\/40{border-color:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.border-chart-3\/40{border-color:color-mix(in oklab, var(--chart-3) 40%, transparent)}}.border-chart-4\/40{border-color:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.border-chart-4\/40{border-color:color-mix(in oklab, var(--chart-4) 40%, transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.border-destructive\/45{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/45{border-color:color-mix(in oklab, var(--destructive) 45%, transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-input{border-color:var(--input)}.border-success\/35{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/35{border-color:color-mix(in oklab, var(--success) 35%, transparent)}}.border-success\/40{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/40{border-color:color-mix(in oklab, var(--success) 40%, transparent)}}.border-success\/45{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.border-success\/45{border-color:color-mix(in oklab, var(--success) 45%, transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--warning) 30%, transparent)}}.border-warning\/40{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/40{border-color:color-mix(in oklab, var(--warning) 40%, transparent)}}.border-warning\/45{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/45{border-color:color-mix(in oklab, var(--warning) 45%, transparent)}}.border-warning\/60{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/60{border-color:color-mix(in oklab, var(--warning) 60%, transparent)}}.border-yellow-500\/40{border-color:#edb20066}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/40{border-color:color-mix(in oklab, var(--color-yellow-500) 40%, transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-border{border-left-color:var(--border)}.border-l-destructive{border-left-color:var(--destructive)}.border-l-success{border-left-color:var(--success)}.border-l-transparent{border-left-color:#0000}.border-l-warning{border-left-color:var(--warning)}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-brand,.bg-brand\/10{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/10{background-color:color-mix(in oklab, var(--brand) 10%, transparent)}}.bg-brand\/15{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/15{background-color:color-mix(in oklab, var(--brand) 15%, transparent)}}.bg-brand\/20{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/20{background-color:color-mix(in oklab, var(--brand) 20%, transparent)}}.bg-brand\/40{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/40{background-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.bg-brand\/60{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/60{background-color:color-mix(in oklab, var(--brand) 60%, transparent)}}.bg-brand\/\[0\.13\]{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/\[0\.13\]{background-color:color-mix(in oklab, var(--brand) 13%, transparent)}}.bg-card{background-color:var(--card)}.bg-chart-1\/10{background-color:var(--chart-1)}@supports (color:color-mix(in lab, red, red)){.bg-chart-1\/10{background-color:color-mix(in oklab, var(--chart-1) 10%, transparent)}}.bg-chart-2,.bg-chart-2\/10{background-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.bg-chart-2\/10{background-color:color-mix(in oklab, var(--chart-2) 10%, transparent)}}.bg-destructive,.bg-destructive\/8{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/8{background-color:color-mix(in oklab, var(--destructive) 8%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/15{background-color:color-mix(in oklab, var(--destructive) 15%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.bg-muted-foreground\/60{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/60{background-color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\/45{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/45{background-color:color-mix(in oklab, var(--muted) 45%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-success,.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/8{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/8{background-color:color-mix(in oklab, var(--warning) 8%, transparent)}}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-yellow-500\/15{background-color:#edb20026}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/15{background-color:color-mix(in oklab, var(--color-yellow-500) 15%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-brand\/10{--tw-gradient-from:var(--brand)}@supports (color:color-mix(in lab, red, red)){.from-brand\/10{--tw-gradient-from:color-mix(in oklab, var(--brand) 10%, transparent)}}.from-brand\/10{--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-transparent{--tw-gradient-to:transparent;--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))}.fill-background{fill:var(--background)}.fill-brand\/15{fill:var(--brand)}@supports (color:color-mix(in lab, red, red)){.fill-brand\/15{fill:color-mix(in oklab, var(--brand) 15%, transparent)}}.fill-brand\/25{fill:var(--brand)}@supports (color:color-mix(in lab, red, red)){.fill-brand\/25{fill:color-mix(in oklab, var(--brand) 25%, transparent)}}.fill-card{fill:var(--card)}.fill-chart-3\/20{fill:var(--chart-3)}@supports (color:color-mix(in lab, red, red)){.fill-chart-3\/20{fill:color-mix(in oklab, var(--chart-3) 20%, transparent)}}.fill-chart-4\/15{fill:var(--chart-4)}@supports (color:color-mix(in lab, red, red)){.fill-chart-4\/15{fill:color-mix(in oklab, var(--chart-4) 15%, transparent)}}.fill-current{fill:currentColor}.fill-foreground{fill:var(--foreground)}.fill-muted{fill:var(--muted)}.fill-muted-foreground{fill:var(--muted-foreground)}.fill-none{fill:none}.fill-success\/20{fill:var(--success)}@supports (color:color-mix(in lab, red, red)){.fill-success\/20{fill:color-mix(in oklab, var(--success) 20%, transparent)}}.fill-warning\/15{fill:var(--warning)}@supports (color:color-mix(in lab, red, red)){.fill-warning\/15{fill:color-mix(in oklab, var(--warning) 15%, transparent)}}.stroke-background{stroke:var(--background)}.stroke-border,.stroke-border\/40{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/40{stroke:color-mix(in oklab, var(--border) 40%, transparent)}}.stroke-border\/60{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/60{stroke:color-mix(in oklab, var(--border) 60%, transparent)}}.stroke-border\/70{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.stroke-border\/70{stroke:color-mix(in oklab, var(--border) 70%, transparent)}}.stroke-brand,.stroke-brand\/55{stroke:var(--brand)}@supports (color:color-mix(in lab, red, red)){.stroke-brand\/55{stroke:color-mix(in oklab, var(--brand) 55%, transparent)}}.stroke-chart-2\/70{stroke:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.stroke-chart-2\/70{stroke:color-mix(in oklab, var(--chart-2) 70%, transparent)}}.stroke-chart-3{stroke:var(--chart-3)}.stroke-chart-4{stroke:var(--chart-4)}.stroke-foreground{stroke:var(--foreground)}.stroke-none{stroke:none}.stroke-success{stroke:var(--success)}.stroke-warning{stroke:var(--warning)}.stroke-1{stroke-width:1px}.stroke-2{stroke-width:2px}.stroke-\[1\.5px\]{stroke-width:1.5px}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:var(--spacing)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.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-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[11px\]{padding-inline:11px}.px-\[13px\]{padding-inline:13px}.px-\[15px\]{padding-inline:15px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-\[3px\]{padding-block:3px}.py-\[5px\]{padding-block:5px}.py-\[7px\]{padding-block:7px}.py-\[9px\]{padding-block:9px}.py-\[11px\]{padding-block:11px}.py-\[54px\]{padding-block:54px}.py-px{padding-block:1px}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-px{padding-top:1px}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mt)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[11px\]\/\[1\.5\]{font-size:11px;line-height:1.5}.text-\[11px\]\/\[1\.6\]{font-size:11px;line-height:1.6}.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-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[40px\]{font-size:40px}.text-\[44px\]{font-size:44px}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[8px\]{--tw-leading:8px;line-height:8px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.09em\]{--tw-tracking:.09em;letter-spacing:.09em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\[tab-size\:2\]{tab-size:2}.text-accent-foreground{color:var(--accent-foreground)}.text-background{color:var(--background)}.text-brand{color:var(--brand)}.text-brand-foreground{color:var(--brand-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-chart-1{color:var(--chart-1)}.text-chart-2{color:var(--chart-2)}.text-chart-3{color:var(--chart-3)}.text-chart-4{color:var(--chart-4)}.text-chart-5{color:var(--chart-5)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-success{color:var(--success)}.text-transparent{color:#0000}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.caret-brand{caret-color:var(--brand)}.accent-brand{accent-color:var(--brand)}.opacity-15{opacity:.15}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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-none{--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)}.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)}.shadow-xl{--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), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--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-0{--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)}.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-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-brand\/25{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.ring-brand\/25{--tw-ring-color:color-mix(in oklab, var(--brand) 25%, transparent)}}.ring-brand\/30{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.ring-brand\/30{--tw-ring-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.ring-card{--tw-ring-color:var(--card)}.ring-emerald-500\/30{--tw-ring-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.ring-emerald-500\/30{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-2xl{--tw-blur:blur(var(--blur-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,)}.grayscale-\[0\.4\]{--tw-grayscale:grayscale(.4);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,)}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,border-color\]{transition-property:transform,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;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))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-\[400ms\]{--tw-duration:.4s;transition-duration:.4s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-50{--tw-enter-scale:.5}.zoom-in-95{--tw-enter-scale:.95}.\[text-shadow\:0_0_3px_rgba\(0\,0\,0\,0\.6\)\]{text-shadow:0 0 3px #0009}.\[transition\:stroke_0\.1s_ease\]{transition:stroke .1s}.\[vector-effect\:non-scaling-stroke\]{vector-effect:non-scaling-stroke}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-destructive:is(:where(.group).toast *){color:var(--destructive)}.group-\[\.toast\]\:text-foreground:is(:where(.group).toast *){color:var(--foreground)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:border:is(:where(.group).toaster *){border-style:var(--tw-border-style);border-width:1px}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--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)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-brand\/35 ::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/35 ::selection{background-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.selection\:bg-brand\/35::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/35::selection{background-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-\[25px\]:before{content:var(--tw-content);top:25px}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:left-\[22px\]:before{content:var(--tw-content);left:22px}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:bg-border:before{content:var(--tw-content);background-color:var(--border)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:0}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:0}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.last\:before\:hidden:last-child:before{content:var(--tw-content);display:none}.odd\:bg-card\/40:nth-child(odd){background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.odd\:bg-card\/40:nth-child(odd){background-color:color-mix(in oklab, var(--card) 40%, transparent)}}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-brand\/35:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/35:hover{border-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.hover\:border-brand\/40:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/40:hover{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.hover\:border-chart-2\/35:hover{border-color:var(--chart-2)}@supports (color:color-mix(in lab, red, red)){.hover\:border-chart-2\/35:hover{border-color:color-mix(in oklab, var(--chart-2) 35%, transparent)}}.hover\:border-muted-foreground\/40:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-brand\/10:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/10:hover{background-color:color-mix(in oklab, var(--brand) 10%, transparent)}}.hover\:bg-brand\/90:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/90:hover{background-color:color-mix(in oklab, var(--brand) 90%, transparent)}}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-foreground\/5:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-success\/10:hover{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/10:hover{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.hover\:bg-success\/90:hover{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/90:hover{background-color:color-mix(in oklab, var(--success) 90%, transparent)}}.hover\:bg-warning\/10:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/10:hover{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.hover\:bg-warning\/90:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/90:hover{background-color:color-mix(in oklab, var(--warning) 90%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--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)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-0:focus-visible{border-style:var(--tw-border-style);border-width:0}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--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-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=default\]\:h-\[1\.15rem\][data-size=default]{height:1.15rem}.data-\[size\=default\]\:w-8[data-size=default]{width:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-3\.5[data-size=sm]{height:calc(var(--spacing) * 3.5)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:w-6[data-size=sm]{width:calc(var(--spacing) * 6)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media not all and (width>=720px){.max-\[720px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (width>=40rem){.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-\[520px\]{max-width:520px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[\&_\.j-bool\]\:text-chart-4 .j-bool{color:var(--chart-4)}.\[\&_\.j-key\]\:text-chart-1 .j-key{color:var(--chart-1)}.\[\&_\.j-null\]\:text-muted-foreground .j-null{color:var(--muted-foreground)}.\[\&_\.j-num\]\:text-chart-3 .j-num{color:var(--chart-3)}.\[\&_\.j-str\]\:text-chart-2 .j-str{color:var(--chart-2)}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:color-mix(in oklab, var(--border) 50%, transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.wn-check\]\:inline-block .wn-check{display:inline-block}.\[\&_\.wn-check\]\:w-4 .wn-check{width:calc(var(--spacing) * 4)}.\[\&_\.wn-table-wrap\]\:my-2\.5 .wn-table-wrap{margin-block:calc(var(--spacing) * 2.5)}.\[\&_\.wn-table-wrap\]\:overflow-x-auto .wn-table-wrap{overflow-x:auto}.\[\&_\.wn-table-wrap\]\:rounded-md .wn-table-wrap{border-radius:var(--radius)}.\[\&_\.wn-table-wrap\]\:border .wn-table-wrap{border-style:var(--tw-border-style);border-width:1px}.\[\&_\.wn-table-wrap\]\:border-border .wn-table-wrap{border-color:var(--border)}.\[\&_\.wn-task\]\:-ml-\[18px\] .wn-task{margin-left:-18px}.\[\&_\.wn-task\]\:list-none .wn-task{list-style-type:none}.\[\&_\.wn-task\.done_\.wn-check\]\:text-success .wn-task.done .wn-check{color:var(--success)}.\[\&_a\]\:text-brand a{color:var(--brand)}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-2 a{text-underline-offset:2px}.\[\&_b\]\:font-medium b{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_b\]\:break-words b{overflow-wrap:break-word}.\[\&_b\]\:text-foreground b{color:var(--foreground)}.\[\&_blockquote\]\:my-2 blockquote{margin-block:calc(var(--spacing) * 2)}.\[\&_blockquote\]\:border-l-\[3px\] blockquote{border-left-style:var(--tw-border-style);border-left-width:3px}.\[\&_blockquote\]\:border-brand\/40 blockquote{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.\[\&_blockquote\]\:border-brand\/40 blockquote{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.\[\&_blockquote\]\:px-3\.5 blockquote{padding-inline:calc(var(--spacing) * 3.5)}.\[\&_blockquote\]\:py-1\.5 blockquote{padding-block:calc(var(--spacing) * 1.5)}.\[\&_blockquote\]\:italic blockquote{font-style:italic}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:border code{border-style:var(--tw-border-style);border-width:1px}.\[\&_code\]\:border-border code{border-color:var(--border)}.\[\&_code\]\:bg-muted code{background-color:var(--muted)}.\[\&_code\]\:px-1\.5 code{padding-inline:calc(var(--spacing) * 1.5)}.\[\&_code\]\:py-0\.5 code{padding-block:calc(var(--spacing) * .5)}.\[\&_code\]\:font-mono code{font-family:var(--font-mt)}.\[\&_code\]\:text-xs code{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_code\]\:text-brand code{color:var(--brand)}.\[\&_del\]\:text-muted-foreground del{color:var(--muted-foreground)}.\[\&_del\]\:opacity-60 del{opacity:.6}.\[\&_h2\]\:mt-\[18px\] h2{margin-top:18px}.\[\&_h2\]\:mb-1\.5 h2{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h2\]\:text-\[17px\] h2{font-size:17px}.\[\&_h2\]\:font-bold h2{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h2\]\:text-foreground h2{color:var(--foreground)}.\[\&_h3\]\:mt-\[18px\] h3{margin-top:18px}.\[\&_h3\]\:mb-1\.5 h3{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h3\]\:text-\[15px\] h3{font-size:15px}.\[\&_h3\]\:font-bold h3{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h3\]\:text-foreground h3{color:var(--foreground)}.\[\&_h4\]\:mt-\[18px\] h4{margin-top:18px}.\[\&_h4\]\:mb-1\.5 h4{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h4\]\:text-\[14px\] h4{font-size:14px}.\[\&_h4\]\:font-bold h4{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h4\]\:text-foreground h4{color:var(--foreground)}.\[\&_h5\]\:mt-\[18px\] h5{margin-top:18px}.\[\&_h5\]\:mb-1\.5 h5{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h5\]\:text-\[14px\] h5{font-size:14px}.\[\&_h5\]\:font-bold h5{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_h5\]\:text-foreground h5{color:var(--foreground)}.\[\&_hr\]\:my-3\.5 hr{margin-block:calc(var(--spacing) * 3.5)}.\[\&_hr\]\:border-0 hr{border-style:var(--tw-border-style);border-width:0}.\[\&_hr\]\:border-t hr{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&_hr\]\:border-border hr{border-color:var(--border)}.\[\&_i\]\:inline-block i{display:inline-block}.\[\&_i\]\:size-2\.5 i{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.\[\&_i\]\:rounded-\[3px\] i{border-radius:3px}.\[\&_img\]\:my-1\.5 img{margin-block:calc(var(--spacing) * 1.5)}.\[\&_img\]\:max-w-full img{max-width:100%}.\[\&_img\]\:rounded-md img{border-radius:var(--radius)}.\[\&_img\]\:border img{border-style:var(--tw-border-style);border-width:1px}.\[\&_img\]\:border-border img{border-color:var(--border)}.\[\&_li\]\:my-\[3px\] li{margin-block:3px}.\[\&_li\]\:marker\:text-brand li ::marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li::marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li ::-webkit-details-marker{color:var(--brand)}.\[\&_li\]\:marker\:text-brand li::-webkit-details-marker{color:var(--brand)}.\[\&_ol\]\:my-\[5px\] ol{margin-block:5px}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-\[22px\] ol{padding-left:22px}.\[\&_p\]\:my-\[5px\] p{margin-block:5px}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_pre\]\:my-2 pre{margin-block:calc(var(--spacing) * 2)}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-md pre{border-radius:var(--radius)}.\[\&_pre\]\:border pre{border-style:var(--tw-border-style);border-width:1px}.\[\&_pre\]\:border-border pre{border-color:var(--border)}.\[\&_pre\]\:bg-background pre{background-color:var(--background)}.\[\&_pre\]\:p-3 pre{padding:calc(var(--spacing) * 3)}.\[\&_pre_code\]\:border-0 pre code{border-style:var(--tw-border-style);border-width:0}.\[\&_pre_code\]\:bg-transparent pre code{background-color:#0000}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_pre_code\]\:text-muted-foreground pre code{color:var(--muted-foreground)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_strong\]\:text-foreground strong{color:var(--foreground)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_table\]\:w-full table{width:100%}.\[\&_table\]\:border-collapse table{border-collapse:collapse}.\[\&_table\]\:font-mono table{font-family:var(--font-mt)}.\[\&_table\]\:text-xs table{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_td\]\:border-b td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_td\]\:border-border td{border-color:var(--border)}.\[\&_td\]\:px-3 td{padding-inline:calc(var(--spacing) * 3)}.\[\&_td\]\:py-\[7px\] td{padding-block:7px}.\[\&_td\]\:text-muted-foreground td{color:var(--muted-foreground)}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-border th{border-color:var(--border)}.\[\&_th\]\:bg-muted th{background-color:var(--muted)}.\[\&_th\]\:px-3 th{padding-inline:calc(var(--spacing) * 3)}.\[\&_th\]\:py-\[7px\] th{padding-block:7px}.\[\&_th\]\:text-left th{text-align:left}.\[\&_th\]\:text-\[11px\] th{font-size:11px}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_th\]\:tracking-wide th{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[\&_th\]\:text-foreground th{color:var(--foreground)}.\[\&_th\]\:uppercase th{text-transform:uppercase}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:my-\[5px\] ul{margin-block:5px}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-\[18px\] ul{padding-left:18px}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>b\]\:text-foreground>b{color:var(--foreground)}.\[\&\>span\]\:inline-flex>span{display:inline-flex}.\[\&\>span\]\:items-center>span{align-items:center}.\[\&\>span\]\:gap-1\.5>span{gap:calc(var(--spacing) * 1.5)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.conn{display:block;overflow:visible}.conn-grid{fill:none;stroke:var(--border);stroke-opacity:.7;stroke-dasharray:2 7}.conn-sonar{fill:none;stroke:var(--brand);stroke-width:1.5px;opacity:0;animation:3.3s ease-out infinite conn-sonar}.conn-hub-glow{fill:var(--brand);opacity:.22;filter:blur(11px)}.conn-hub-ring{fill:none;stroke:var(--brand);stroke-width:1.4px;stroke-dasharray:4 9;opacity:.7;transform-box:fill-box;transform-origin:50%;animation:15s linear infinite conn-rot}.conn-node text{pointer-events:none}.conn-node-halo{fill:none;stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite conn-halo}.conn-link{fill:none;stroke-width:1.6px;opacity:.38}.conn-flow{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:2 13;opacity:.9;filter:drop-shadow(0 0 4px);animation:1.05s linear infinite conn-flow}.conn-packet{filter:drop-shadow(0 0 6px var(--chart-2))}.conn-chevron{fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.6}.conn-tunnel-halo{fill:none;stroke-width:8px;stroke-linecap:round;opacity:.1}.conn-tunnel{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:6 6;animation:.9s linear infinite conn-tunnel-flow}.conn-tunnel-lock{filter:drop-shadow(0 0 4px var(--warning))}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-lock{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--warning) 80%, transparent))}}.conn-tunnel-sat{stroke-width:1.5px;filter:drop-shadow(0 0 5px var(--warning))}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-sat{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--warning) 53%, transparent))}}.conn-tunnel-badge{fill:var(--warning)}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-badge{fill:color-mix(in srgb, var(--warning) 16%, var(--background))}}.conn-tunnel-badge{stroke:var(--warning)}@supports (color:color-mix(in lab, red, red)){.conn-tunnel-badge{stroke:color-mix(in srgb, var(--warning) 60%, var(--border))}}.conn-tunnel-badge{stroke-width:1px}.conn-tunnel-badge-tx{fill:var(--warning);letter-spacing:.02em;font-weight:700}.jump-route__wire{background-image:linear-gradient(90deg, var(--border) 0 50%, transparent 50% 100%);background-size:8px 2px;border-radius:2px;flex:1;min-width:18px;height:2px;animation:.7s linear infinite jump-wire}.jump-route__wire--enc{background-image:linear-gradient(90deg, var(--warning) 0 55%, transparent 55% 100%);min-width:34px;height:3px;box-shadow:0 0 8px -1px var(--warning);background-size:10px 3px;position:relative}@supports (color:color-mix(in lab, red, red)){.jump-route__wire--enc{box-shadow:0 0 8px -1px color-mix(in srgb, var(--warning) 53%, transparent)}}.jump-route__lock{filter:drop-shadow(0 0 3px var(--warning));font-size:11px;animation:2.2s linear infinite jump-lock;position:absolute;top:50%}.topo-sweep{animation:8s linear infinite topo-sweep}.topo-ring{transform-box:fill-box;transform-origin:50%;animation:90s linear infinite reverse topo-ring}.topo-flow{animation:1.4s linear infinite topo-flow}.topo-pulse{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-in-out infinite topo-pulse}.topo-halo{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-out infinite topo-halo}@keyframes topo-sweep{to{transform:rotate(360deg)}}@keyframes topo-ring{to{transform:rotate(360deg)}}@keyframes topo-flow{to{stroke-dashoffset:-16px}}@keyframes topo-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}@keyframes topo-halo{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes conn-sonar{0%{r:30px;opacity:.5}to{r:150px;opacity:0}}@keyframes conn-flow{to{stroke-dashoffset:-60px}}@keyframes conn-rot{to{transform:rotate(360deg)}}@keyframes conn-halo{0%,to{opacity:.45;transform:scale(1)}50%{opacity:0;transform:scale(1.55)}}@keyframes conn-tunnel-flow{to{stroke-dashoffset:-24px}}@keyframes jump-wire{to{background-position:8px 0}}@keyframes jump-lock{0%{left:-4px;transform:translateY(-50%)scale(.9)}50%{transform:translateY(-50%)scale(1.1)}to{left:calc(100% - 8px);transform:translateY(-50%)scale(.9)}}@media (prefers-reduced-motion:reduce){.conn-sonar,.topo-sweep{display:none}.conn-flow,.conn-hub-ring,.conn-node-halo,.conn-tunnel,.jump-route__wire,.jump-route__lock,.topo-ring,.topo-flow,.topo-pulse,.topo-halo{animation:none}.conn-packet animateMotion,.conn-tunnel-lock animateMotion{display:none}}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#0a0a0a;--primary-foreground:#fafafa;--secondary:#f4f4f5;--secondary-foreground:#0a0a0a;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#0a0a0a;--destructive:#e5484d;--destructive-foreground:#fff;--success:#18794e;--warning:#ab6400;--border:#e4e4e7;--input:#e4e4e7;--radius:.5rem;--page-accent:var(--foreground);--page-accent-2:var(--muted-foreground);--brand:var(--page-accent);--brand-foreground:var(--background);--ring:var(--brand);--chart-1:#0068d6;--chart-2:#0f8a7e;--chart-3:#3d8f2f;--chart-4:#a35200;--chart-5:#7048c4;--entity-1:#0068d6;--entity-2:#087a52;--entity-3:#6d3fc4;--entity-4:#a35200;--entity-5:#c02a2a;--entity-6:#0f8a7e;--entity-7:#c0267a;--entity-8:#2563eb;--entity-9:#8a6a00;--entity-10:#b4530f}.dark{--background:#0a0a0a;--foreground:#ededed;--card:#111;--card-foreground:#ededed;--popover:#111;--popover-foreground:#ededed;--primary:#ededed;--primary-foreground:#0a0a0a;--secondary:#1a1a1a;--secondary-foreground:#ededed;--muted:#1a1a1a;--muted-foreground:#a1a1a1;--accent:#1a1a1a;--accent-foreground:#ededed;--destructive:#ff5c5c;--destructive-foreground:#fff;--success:#2dd4a7;--warning:#f5a623;--border:#2a2a2a;--input:#2a2a2a;--chart-1:#3291ff;--chart-2:#2dd4bf;--chart-3:#69d05a;--chart-4:#f5a623;--chart-5:#9d7bff;--entity-1:#3291ff;--entity-2:#34d399;--entity-3:#a78bfa;--entity-4:#f59e0b;--entity-5:#ef4444;--entity-6:#2dd4bf;--entity-7:#f472b6;--entity-8:#60a5fa;--entity-9:#facc15;--entity-10:#fb923c}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";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:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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 pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
159
159
  /*$vite$:1*/
160
160
  </style>
161
161
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usex/mikrotik-mcp",
3
- "version": "4.22.0",
3
+ "version": "4.23.0",
4
4
  "description": "MCP server for MikroTik RouterOS — 780+ tools over SSH for firewall, NAT, routing, DHCP, DNS, WireGuard, wireless, QoS and more.",
5
5
  "keywords": [
6
6
  "ai",
@@ -54,7 +54,7 @@
54
54
  "dev": "bunup --watch",
55
55
  "prepack": "bunup && chmod +x dist/cli.js && bun run build:ui && bun run gen",
56
56
  "auth-check": "bun run --bun src/cli.ts auth-check",
57
- "gen:schemas": "bun run --bun scripts/gen-schemas.ts",
57
+ "gen:schemas": "bun run --bun scripts/gen-schemas.ts && vp fmt --write schemas",
58
58
  "gen:docs": "bun run --bun scripts/gen-tool-docs.ts",
59
59
  "gen": "bun run --bun gen:schemas && bun run --bun gen:docs",
60
60
  "start": "bun run --bun src/cli.ts serve",
@@ -95,7 +95,7 @@
95
95
  "devDependencies": {
96
96
  "@anthropic-ai/mcpb": "^2.1.2",
97
97
  "@resvg/resvg-js": "^2.6.2",
98
- "@tailwindcss/vite": "^4.3.2",
98
+ "@tailwindcss/vite": "^4.3.3",
99
99
  "@types/bun": "latest",
100
100
  "@types/figlet": "^1.7.0",
101
101
  "@types/node": "^26.1.1",
@@ -108,7 +108,7 @@
108
108
  "clsx": "^2.1.1",
109
109
  "gsap": "^3.15.0",
110
110
  "license-checker": "^25.0.1",
111
- "lucide-react": "^1.24.0",
111
+ "lucide-react": "^1.25.0",
112
112
  "radix-ui": "^1.6.2",
113
113
  "react": "^19.2.7",
114
114
  "react-dom": "^19.2.7",
@@ -116,7 +116,7 @@
116
116
  "release-it": "^20.2.1",
117
117
  "sonner": "^2.0.7",
118
118
  "tailwind-merge": "^3.6.0",
119
- "tailwindcss": "^4.3.2",
119
+ "tailwindcss": "^4.3.3",
120
120
  "tw-animate-css": "^1.4.0",
121
121
  "vite": "catalog:",
122
122
  "vite-plus": "catalog:"
@@ -32,6 +32,10 @@ Device B: {{device_b}}
32
32
  Tunnel ID: {{tunnel_id}}
33
33
  Encrypt with IPsec: {{encrypt}}
34
34
 
35
+ ## Back up before the first write
36
+
37
+ Before your FIRST configuration change in this workflow — the tunnel/interface, keys/peers, addresses, routes, NAT, or any mangle or firewall filter rule — ASK the user "Create a local backup first?" and, on yes, call `create_local_backup` for each device you are about to change. It saves a host-side `.rsc` restore point you can `restore_local_backup` if the change cuts the link. Discovery and the read-only fact-gathering steps below need no backup — do it once, right before you start writing. Tunnel creation always warrants a backup; you may skip it only for a minor, non-critical mangle/filter tweak the user explicitly waves off.
38
+
35
39
  ## 0. Discover and confirm (FIRST)
36
40
 
37
41
  - `list_mikrotik_devices`; resolve {{device_a}}/{{device_b}} — never substitute a