:root { --color-red-50: rgb(254, 242, 242); --color-red-100: rgb(255, 226, 226); --color-red-200: rgb(255, 201, 201); --color-red-300: rgb(255, 162, 162); --color-red-400: rgb(255, 100, 103); --color-red-500: rgb(251, 44, 54); --color-red-600: rgb(231, 0, 11); --color-red-700: rgb(193, 0, 7); --color-red-800: rgb(159, 7, 18); --color-red-900: rgb(130, 24, 26); --color-red-950: rgb(70, 8, 9); --color-orange-50: rgb(255, 247, 237); --color-orange-100: rgb(255, 237, 212); --color-orange-200: rgb(255, 214, 167); --color-orange-300: rgb(255, 184, 106); --color-orange-400: rgb(255, 137, 4); --color-orange-500: rgb(255, 105, 0); --color-orange-600: rgb(245, 73, 0); --color-orange-700: rgb(202, 53, 0); --color-orange-800: rgb(159, 45, 0); --color-orange-900: rgb(126, 42, 12); --color-orange-950: rgb(68, 19, 6); --color-amber-50: rgb(255, 251, 235); --color-amber-100: rgb(254, 243, 198); --color-amber-200: rgb(254, 230, 133); --color-amber-300: rgb(255, 210, 48); --color-amber-400: rgb(255, 185, 0); --color-amber-500: rgb(254, 154, 0); --color-amber-600: rgb(225, 113, 0); --color-amber-700: rgb(187, 77, 0); --color-amber-800: rgb(151, 60, 0); --color-amber-900: rgb(123, 51, 6); --color-amber-950: rgb(70, 25, 1); --color-yellow-50: rgb(254, 252, 232); --color-yellow-100: rgb(254, 249, 194); --color-yellow-200: rgb(255, 240, 133); --color-yellow-300: rgb(255, 223, 32); --color-yellow-400: rgb(253, 199, 0); --color-yellow-500: rgb(240, 177, 0); --color-yellow-600: rgb(208, 135, 0); --color-yellow-700: rgb(166, 95, 0); --color-yellow-800: rgb(137, 75, 0); --color-yellow-900: rgb(115, 62, 10); --color-yellow-950: rgb(67, 32, 4); --color-lime-50: rgb(247, 254, 231); --color-lime-100: rgb(236, 252, 202); --color-lime-200: rgb(216, 249, 153); --color-lime-300: rgb(187, 244, 81); --color-lime-400: rgb(154, 230, 0); --color-lime-500: rgb(124, 207, 0); --color-lime-600: rgb(94, 165, 0); --color-lime-700: rgb(73, 125, 0); --color-lime-800: rgb(60, 99, 0); --color-lime-900: rgb(53, 83, 14); --color-lime-950: rgb(25, 46, 3); --color-green-50: rgb(240, 253, 244); --color-green-100: rgb(220, 252, 231); --color-green-200: rgb(185, 248, 207); --color-green-300: rgb(123, 241, 168); --color-green-400: rgb(5, 223, 114); --color-green-500: rgb(0, 201, 80); --color-green-600: rgb(0, 166, 62); --color-green-700: rgb(0, 130, 54); --color-green-800: rgb(1, 102, 48); --color-green-900: rgb(13, 84, 43); --color-green-950: rgb(3, 46, 21); --color-emerald-50: rgb(236, 253, 245); --color-emerald-100: rgb(208, 250, 229); --color-emerald-200: rgb(164, 244, 207); --color-emerald-300: rgb(94, 233, 181); --color-emerald-400: rgb(0, 212, 146); --color-emerald-500: rgb(0, 188, 125); --color-emerald-600: rgb(0, 153, 102); --color-emerald-700: rgb(0, 122, 85); --color-emerald-800: rgb(0, 96, 69); --color-emerald-900: rgb(0, 79, 59); --color-emerald-950: rgb(0, 44, 34); --color-teal-50: rgb(240, 253, 250); --color-teal-100: rgb(203, 251, 241); --color-teal-200: rgb(150, 247, 228); --color-teal-300: rgb(70, 236, 213); --color-teal-400: rgb(0, 213, 190); --color-teal-500: rgb(0, 187, 167); --color-teal-600: rgb(0, 150, 137); --color-teal-700: rgb(0, 120, 111); --color-teal-800: rgb(0, 95, 90); --color-teal-900: rgb(11, 79, 74); --color-teal-950: rgb(2, 47, 46); --color-cyan-50: rgb(236, 254, 255); --color-cyan-100: rgb(206, 250, 254); --color-cyan-200: rgb(162, 244, 253); --color-cyan-300: rgb(83, 234, 253); --color-cyan-400: rgb(0, 211, 242); --color-cyan-500: rgb(0, 184, 219); --color-cyan-600: rgb(0, 146, 184); --color-cyan-700: rgb(0, 117, 149); --color-cyan-800: rgb(0, 95, 120); --color-cyan-900: rgb(16, 78, 100); --color-cyan-950: rgb(5, 51, 69); --color-sky-50: rgb(240, 249, 255); --color-sky-100: rgb(223, 242, 254); --color-sky-200: rgb(184, 230, 254); --color-sky-300: rgb(116, 212, 255); --color-sky-400: rgb(0, 188, 255); --color-sky-500: rgb(0, 166, 244); --color-sky-600: rgb(0, 132, 209); --color-sky-700: rgb(0, 105, 168); --color-sky-800: rgb(0, 89, 138); --color-sky-900: rgb(2, 74, 112); --color-sky-950: rgb(5, 47, 74); --color-blue-50: rgb(239, 246, 255); --color-blue-100: rgb(219, 234, 254); --color-blue-200: rgb(190, 219, 255); --color-blue-300: rgb(142, 197, 255); --color-blue-400: rgb(81, 162, 255); --color-blue-500: rgb(43, 127, 255); --color-blue-600: rgb(21, 93, 252); --color-blue-700: rgb(20, 71, 230); --color-blue-800: rgb(25, 60, 184); --color-blue-900: rgb(28, 57, 142); --color-blue-950: rgb(22, 36, 86); --color-indigo-50: rgb(238, 242, 255); --color-indigo-100: rgb(224, 231, 255); --color-indigo-200: rgb(198, 210, 255); --color-indigo-300: rgb(163, 179, 255); --color-indigo-400: rgb(124, 134, 255); --color-indigo-500: rgb(97, 95, 255); --color-indigo-600: rgb(79, 57, 246); --color-indigo-700: rgb(67, 45, 215); --color-indigo-800: rgb(55, 42, 172); --color-indigo-900: rgb(49, 44, 133); --color-indigo-950: rgb(30, 26, 77); --color-violet-50: rgb(245, 243, 255); --color-violet-100: rgb(237, 233, 254); --color-violet-200: rgb(221, 214, 255); --color-violet-300: rgb(196, 180, 255); --color-violet-400: rgb(166, 132, 255); --color-violet-500: rgb(142, 81, 255); --color-violet-600: rgb(127, 34, 254); --color-violet-700: rgb(112, 8, 231); --color-violet-800: rgb(93, 14, 192); --color-violet-900: rgb(77, 23, 154); --color-violet-950: rgb(47, 13, 104); --color-purple-50: rgb(250, 245, 255); --color-purple-100: rgb(243, 232, 255); --color-purple-200: rgb(233, 212, 255); --color-purple-300: rgb(218, 178, 255); --color-purple-400: rgb(194, 122, 255); --color-purple-500: rgb(173, 70, 255); --color-purple-600: rgb(152, 16, 250); --color-purple-700: rgb(130, 0, 219); --color-purple-800: rgb(110, 17, 176); --color-purple-900: rgb(89, 22, 139); --color-purple-950: rgb(60, 3, 102); --color-fuchsia-50: rgb(253, 244, 255); --color-fuchsia-100: rgb(250, 232, 255); --color-fuchsia-200: rgb(246, 207, 255); --color-fuchsia-300: rgb(244, 168, 255); --color-fuchsia-400: rgb(237, 106, 255); --color-fuchsia-500: rgb(225, 42, 251); --color-fuchsia-600: rgb(200, 0, 222); --color-fuchsia-700: rgb(168, 0, 183); --color-fuchsia-800: rgb(138, 1, 148); --color-fuchsia-900: rgb(114, 19, 120); --color-fuchsia-950: rgb(75, 0, 79); --color-pink-50: rgb(253, 242, 248); --color-pink-100: rgb(252, 231, 243); --color-pink-200: rgb(252, 206, 232); --color-pink-300: rgb(253, 165, 213); --color-pink-400: rgb(251, 100, 182); --color-pink-500: rgb(246, 51, 154); --color-pink-600: rgb(230, 0, 118); --color-pink-700: rgb(198, 0, 92); --color-pink-800: rgb(163, 0, 76); --color-pink-900: rgb(134, 16, 67); --color-pink-950: rgb(81, 4, 36); --color-rose-50: rgb(255, 241, 242); --color-rose-100: rgb(255, 228, 230); --color-rose-200: rgb(255, 204, 211); --color-rose-300: rgb(255, 161, 173); --color-rose-400: rgb(255, 99, 126); --color-rose-500: rgb(255, 32, 86); --color-rose-600: rgb(236, 0, 63); --color-rose-700: rgb(199, 0, 54); --color-rose-800: rgb(165, 0, 54); --color-rose-900: rgb(139, 8, 54); --color-rose-950: rgb(77, 2, 24); --color-slate-50: rgb(248, 250, 252); --color-slate-100: rgb(241, 245, 249); --color-slate-200: rgb(226, 232, 240); --color-slate-300: rgb(202, 213, 226); --color-slate-400: rgb(144, 161, 185); --color-slate-500: rgb(98, 116, 142); --color-slate-600: rgb(69, 85, 108); --color-slate-700: rgb(49, 65, 88); --color-slate-800: rgb(29, 41, 61); --color-slate-900: rgb(15, 23, 43); --color-slate-950: rgb(2, 6, 24); --color-gray-50: rgb(249, 250, 251); --color-gray-100: rgb(243, 244, 246); --color-gray-200: rgb(229, 231, 235); --color-gray-300: rgb(209, 213, 220); --color-gray-400: rgb(153, 161, 175); --color-gray-500: rgb(106, 114, 130); --color-gray-600: rgb(74, 85, 101); --color-gray-700: rgb(54, 65, 83); --color-gray-800: rgb(30, 41, 57); --color-gray-900: rgb(16, 24, 40); --color-gray-950: rgb(3, 7, 18); --color-zinc-50: rgb(250, 250, 250); --color-zinc-100: rgb(244, 244, 245); --color-zinc-200: rgb(228, 228, 231); --color-zinc-300: rgb(212, 212, 216); --color-zinc-400: rgb(159, 159, 169); --color-zinc-500: rgb(113, 113, 123); --color-zinc-600: rgb(82, 82, 92); --color-zinc-700: rgb(63, 63, 70); --color-zinc-800: rgb(39, 39, 42); --color-zinc-900: rgb(24, 24, 27); --color-zinc-950: rgb(9, 9, 11); --color-neutral-50: rgb(250, 250, 250); --color-neutral-100: rgb(245, 245, 245); --color-neutral-200: rgb(229, 229, 229); --color-neutral-300: rgb(212, 212, 212); --color-neutral-400: rgb(161, 161, 161); --color-neutral-500: rgb(115, 115, 115); --color-neutral-600: rgb(82, 82, 82); --color-neutral-700: rgb(64, 64, 64); --color-neutral-800: rgb(38, 38, 38); --color-neutral-900: rgb(23, 23, 23); --color-neutral-950: rgb(10, 10, 10); --color-stone-50: rgb(250, 250, 249); --color-stone-100: rgb(245, 245, 244); --color-stone-200: rgb(231, 229, 228); --color-stone-300: rgb(214, 211, 209); --color-stone-400: rgb(166, 160, 155); --color-stone-500: rgb(121, 113, 107); --color-stone-600: rgb(87, 83, 77); --color-stone-700: rgb(68, 64, 59); --color-stone-800: rgb(41, 37, 36); --color-stone-900: rgb(28, 25, 23); --color-stone-950: rgb(12, 10, 9); --color-mauve-50: rgb(250, 250, 250); --color-mauve-100: rgb(243, 241, 243); --color-mauve-200: rgb(231, 228, 231); --color-mauve-300: rgb(215, 208, 215); --color-mauve-400: rgb(168, 158, 169); --color-mauve-500: rgb(121, 105, 123); --color-mauve-600: rgb(89, 76, 91); --color-mauve-700: rgb(70, 57, 71); --color-mauve-800: rgb(42, 33, 44); --color-mauve-900: rgb(29, 22, 30); --color-mauve-950: rgb(12, 9, 12); --color-olive-50: rgb(251, 251, 249); --color-olive-100: rgb(244, 244, 240); --color-olive-200: rgb(232, 232, 227); --color-olive-300: rgb(216, 216, 208); --color-olive-400: rgb(171, 171, 156); --color-olive-500: rgb(124, 124, 103); --color-olive-600: rgb(91, 91, 75); --color-olive-700: rgb(71, 71, 57); --color-olive-800: rgb(43, 43, 34); --color-olive-900: rgb(29, 29, 22); --color-olive-950: rgb(12, 12, 9); --color-mist-50: rgb(249, 251, 251); --color-mist-100: rgb(241, 243, 243); --color-mist-200: rgb(227, 231, 232); --color-mist-300: rgb(208, 214, 216); --color-mist-400: rgb(156, 168, 171); --color-mist-500: rgb(103, 120, 124); --color-mist-600: rgb(75, 88, 91); --color-mist-700: rgb(57, 68, 71); --color-mist-800: rgb(34, 41, 43); --color-mist-900: rgb(22, 27, 29); --color-mist-950: rgb(9, 11, 12); --color-taupe-50: rgb(251, 250, 249); --color-taupe-100: rgb(243, 241, 241); --color-taupe-200: rgb(232, 228, 227); --color-taupe-300: rgb(216, 210, 208); --color-taupe-400: rgb(171, 160, 156); --color-taupe-500: rgb(124, 109, 103); --color-taupe-600: rgb(91, 79, 75); --color-taupe-700: rgb(71, 60, 57); --color-taupe-800: rgb(43, 36, 34); --color-taupe-900: rgb(29, 24, 22); --color-taupe-950: rgb(12, 10, 9); }
@supports (color: oklch(0 0 0)) {
 :root { --color-red-50: oklch(97.1% 0.013 17.38); --color-red-100: oklch(93.6% 0.032 17.717); --color-red-200: oklch(88.5% 0.062 18.334); --color-red-300: oklch(80.8% 0.114 19.571); --color-red-400: oklch(70.4% 0.191 22.216); --color-red-500: oklch(63.7% 0.237 25.331); --color-red-600: oklch(57.7% 0.245 27.325); --color-red-700: oklch(50.5% 0.213 27.518); --color-red-800: oklch(44.4% 0.177 26.899); --color-red-900: oklch(39.6% 0.141 25.723); --color-red-950: oklch(25.8% 0.092 26.042); --color-orange-50: oklch(98% 0.016 73.684); --color-orange-100: oklch(95.4% 0.038 75.164); --color-orange-200: oklch(90.1% 0.076 70.697); --color-orange-300: oklch(83.7% 0.128 66.29); --color-orange-400: oklch(75% 0.183 55.934); --color-orange-500: oklch(70.5% 0.213 47.604); --color-orange-600: oklch(64.6% 0.222 41.116); --color-orange-700: oklch(55.3% 0.195 38.402); --color-orange-800: oklch(47% 0.157 37.304); --color-orange-900: oklch(40.8% 0.123 38.172); --color-orange-950: oklch(26.6% 0.079 36.259); --color-amber-50: oklch(98.7% 0.022 95.277); --color-amber-100: oklch(96.2% 0.059 95.617); --color-amber-200: oklch(92.4% 0.12 95.746); --color-amber-300: oklch(87.9% 0.169 91.605); --color-amber-400: oklch(82.8% 0.189 84.429); --color-amber-500: oklch(76.9% 0.188 70.08); --color-amber-600: oklch(66.6% 0.179 58.318); --color-amber-700: oklch(55.5% 0.163 48.998); --color-amber-800: oklch(47.3% 0.137 46.201); --color-amber-900: oklch(41.4% 0.112 45.904); --color-amber-950: oklch(27.9% 0.077 45.635); --color-yellow-50: oklch(98.7% 0.026 102.212); --color-yellow-100: oklch(97.3% 0.071 103.193); --color-yellow-200: oklch(94.5% 0.129 101.54); --color-yellow-300: oklch(90.5% 0.182 98.111); --color-yellow-400: oklch(85.2% 0.199 91.936); --color-yellow-500: oklch(79.5% 0.184 86.047); --color-yellow-600: oklch(68.1% 0.162 75.834); --color-yellow-700: oklch(55.4% 0.135 66.442); --color-yellow-800: oklch(47.6% 0.114 61.907); --color-yellow-900: oklch(42.1% 0.095 57.708); --color-yellow-950: oklch(28.6% 0.066 53.813); --color-lime-50: oklch(98.6% 0.031 120.757); --color-lime-100: oklch(96.7% 0.067 122.328); --color-lime-200: oklch(93.8% 0.127 124.321); --color-lime-300: oklch(89.7% 0.196 126.665); --color-lime-400: oklch(84.1% 0.238 128.85); --color-lime-500: oklch(76.8% 0.233 130.85); --color-lime-600: oklch(64.8% 0.2 131.684); --color-lime-700: oklch(53.2% 0.157 131.589); --color-lime-800: oklch(45.3% 0.124 130.933); --color-lime-900: oklch(40.5% 0.101 131.063); --color-lime-950: oklch(27.4% 0.072 132.109); --color-green-50: oklch(98.2% 0.018 155.826); --color-green-100: oklch(96.2% 0.044 156.743); --color-green-200: oklch(92.5% 0.084 155.995); --color-green-300: oklch(87.1% 0.15 154.449); --color-green-400: oklch(79.2% 0.209 151.711); --color-green-500: oklch(72.3% 0.219 149.579); --color-green-600: oklch(62.7% 0.194 149.214); --color-green-700: oklch(52.7% 0.154 150.069); --color-green-800: oklch(44.8% 0.119 151.328); --color-green-900: oklch(39.3% 0.095 152.535); --color-green-950: oklch(26.6% 0.065 152.934); --color-emerald-50: oklch(97.9% 0.021 166.113); --color-emerald-100: oklch(95% 0.052 163.051); --color-emerald-200: oklch(90.5% 0.093 164.15); --color-emerald-300: oklch(84.5% 0.143 164.978); --color-emerald-400: oklch(76.5% 0.177 163.223); --color-emerald-500: oklch(69.6% 0.17 162.48); --color-emerald-600: oklch(59.6% 0.145 163.225); --color-emerald-700: oklch(50.8% 0.118 165.612); --color-emerald-800: oklch(43.2% 0.095 166.913); --color-emerald-900: oklch(37.8% 0.077 168.94); --color-emerald-950: oklch(26.2% 0.051 172.552); --color-teal-50: oklch(98.4% 0.014 180.72); --color-teal-100: oklch(95.3% 0.051 180.801); --color-teal-200: oklch(91% 0.096 180.426); --color-teal-300: oklch(85.5% 0.138 181.071); --color-teal-400: oklch(77.7% 0.152 181.912); --color-teal-500: oklch(70.4% 0.14 182.503); --color-teal-600: oklch(60% 0.118 184.704); --color-teal-700: oklch(51.1% 0.096 186.391); --color-teal-800: oklch(43.7% 0.078 188.216); --color-teal-900: oklch(38.6% 0.063 188.416); --color-teal-950: oklch(27.7% 0.046 192.524); --color-cyan-50: oklch(98.4% 0.019 200.873); --color-cyan-100: oklch(95.6% 0.045 203.388); --color-cyan-200: oklch(91.7% 0.08 205.041); --color-cyan-300: oklch(86.5% 0.127 207.078); --color-cyan-400: oklch(78.9% 0.154 211.53); --color-cyan-500: oklch(71.5% 0.143 215.221); --color-cyan-600: oklch(60.9% 0.126 221.723); --color-cyan-700: oklch(52% 0.105 223.128); --color-cyan-800: oklch(45% 0.085 224.283); --color-cyan-900: oklch(39.8% 0.07 227.392); --color-cyan-950: oklch(30.2% 0.056 229.695); --color-sky-50: oklch(97.7% 0.013 236.62); --color-sky-100: oklch(95.1% 0.026 236.824); --color-sky-200: oklch(90.1% 0.058 230.902); --color-sky-300: oklch(82.8% 0.111 230.318); --color-sky-400: oklch(74.6% 0.16 232.661); --color-sky-500: oklch(68.5% 0.169 237.323); --color-sky-600: oklch(58.8% 0.158 241.966); --color-sky-700: oklch(50% 0.134 242.749); --color-sky-800: oklch(44.3% 0.11 240.79); --color-sky-900: oklch(39.1% 0.09 240.876); --color-sky-950: oklch(29.3% 0.066 243.157); --color-blue-50: oklch(97% 0.014 254.604); --color-blue-100: oklch(93.2% 0.032 255.585); --color-blue-200: oklch(88.2% 0.059 254.128); --color-blue-300: oklch(80.9% 0.105 251.813); --color-blue-400: oklch(70.7% 0.165 254.624); --color-blue-500: oklch(62.3% 0.214 259.815); --color-blue-600: oklch(54.6% 0.245 262.881); --color-blue-700: oklch(48.8% 0.243 264.376); --color-blue-800: oklch(42.4% 0.199 265.638); --color-blue-900: oklch(37.9% 0.146 265.522); --color-blue-950: oklch(28.2% 0.091 267.935); --color-indigo-50: oklch(96.2% 0.018 272.314); --color-indigo-100: oklch(93% 0.034 272.788); --color-indigo-200: oklch(87% 0.065 274.039); --color-indigo-300: oklch(78.5% 0.115 274.713); --color-indigo-400: oklch(67.3% 0.182 276.935); --color-indigo-500: oklch(58.5% 0.233 277.117); --color-indigo-600: oklch(51.1% 0.262 276.966); --color-indigo-700: oklch(45.7% 0.24 277.023); --color-indigo-800: oklch(39.8% 0.195 277.366); --color-indigo-900: oklch(35.9% 0.144 278.697); --color-indigo-950: oklch(25.7% 0.09 281.288); --color-violet-50: oklch(96.9% 0.016 293.756); --color-violet-100: oklch(94.3% 0.029 294.588); --color-violet-200: oklch(89.4% 0.057 293.283); --color-violet-300: oklch(81.1% 0.111 293.571); --color-violet-400: oklch(70.2% 0.183 293.541); --color-violet-500: oklch(60.6% 0.25 292.717); --color-violet-600: oklch(54.1% 0.281 293.009); --color-violet-700: oklch(49.1% 0.27 292.581); --color-violet-800: oklch(43.2% 0.232 292.759); --color-violet-900: oklch(38% 0.189 293.745); --color-violet-950: oklch(28.3% 0.141 291.089); --color-purple-50: oklch(97.7% 0.014 308.299); --color-purple-100: oklch(94.6% 0.033 307.174); --color-purple-200: oklch(90.2% 0.063 306.703); --color-purple-300: oklch(82.7% 0.119 306.383); --color-purple-400: oklch(71.4% 0.203 305.504); --color-purple-500: oklch(62.7% 0.265 303.9); --color-purple-600: oklch(55.8% 0.288 302.321); --color-purple-700: oklch(49.6% 0.265 301.924); --color-purple-800: oklch(43.8% 0.218 303.724); --color-purple-900: oklch(38.1% 0.176 304.987); --color-purple-950: oklch(29.1% 0.149 302.717); --color-fuchsia-50: oklch(97.7% 0.017 320.058); --color-fuchsia-100: oklch(95.2% 0.037 318.852); --color-fuchsia-200: oklch(90.3% 0.076 319.62); --color-fuchsia-300: oklch(83.3% 0.145 321.434); --color-fuchsia-400: oklch(74% 0.238 322.16); --color-fuchsia-500: oklch(66.7% 0.295 322.15); --color-fuchsia-600: oklch(59.1% 0.293 322.896); --color-fuchsia-700: oklch(51.8% 0.253 323.949); --color-fuchsia-800: oklch(45.2% 0.211 324.591); --color-fuchsia-900: oklch(40.1% 0.17 325.612); --color-fuchsia-950: oklch(29.3% 0.136 325.661); --color-pink-50: oklch(97.1% 0.014 343.198); --color-pink-100: oklch(94.8% 0.028 342.258); --color-pink-200: oklch(89.9% 0.061 343.231); --color-pink-300: oklch(82.3% 0.12 346.018); --color-pink-400: oklch(71.8% 0.202 349.761); --color-pink-500: oklch(65.6% 0.241 354.308); --color-pink-600: oklch(59.2% 0.249 0.584); --color-pink-700: oklch(52.5% 0.223 3.958); --color-pink-800: oklch(45.9% 0.187 3.815); --color-pink-900: oklch(40.8% 0.153 2.432); --color-pink-950: oklch(28.4% 0.109 3.907); --color-rose-50: oklch(96.9% 0.015 12.422); --color-rose-100: oklch(94.1% 0.03 12.58); --color-rose-200: oklch(89.2% 0.058 10.001); --color-rose-300: oklch(81% 0.117 11.638); --color-rose-400: oklch(71.2% 0.194 13.428); --color-rose-500: oklch(64.5% 0.246 16.439); --color-rose-600: oklch(58.6% 0.253 17.585); --color-rose-700: oklch(51.4% 0.222 16.935); --color-rose-800: oklch(45.5% 0.188 13.697); --color-rose-900: oklch(41% 0.159 10.272); --color-rose-950: oklch(27.1% 0.105 12.094); --color-slate-50: oklch(98.4% 0.003 247.858); --color-slate-100: oklch(96.8% 0.007 247.896); --color-slate-200: oklch(92.9% 0.013 255.508); --color-slate-300: oklch(86.9% 0.022 252.894); --color-slate-400: oklch(70.4% 0.04 256.788); --color-slate-500: oklch(55.4% 0.046 257.417); --color-slate-600: oklch(44.6% 0.043 257.281); --color-slate-700: oklch(37.2% 0.044 257.287); --color-slate-800: oklch(27.9% 0.041 260.031); --color-slate-900: oklch(20.8% 0.042 265.755); --color-slate-950: oklch(12.9% 0.042 264.695); --color-gray-50: oklch(98.5% 0.002 247.839); --color-gray-100: oklch(96.7% 0.003 264.542); --color-gray-200: oklch(92.8% 0.006 264.531); --color-gray-300: oklch(87.2% 0.01 258.338); --color-gray-400: oklch(70.7% 0.022 261.325); --color-gray-500: oklch(55.1% 0.027 264.364); --color-gray-600: oklch(44.6% 0.03 256.802); --color-gray-700: oklch(37.3% 0.034 259.733); --color-gray-800: oklch(27.8% 0.033 256.848); --color-gray-900: oklch(21% 0.034 264.665); --color-gray-950: oklch(13% 0.028 261.692); --color-zinc-50: oklch(98.5% 0 none); --color-zinc-100: oklch(96.7% 0.001 286.375); --color-zinc-200: oklch(92% 0.004 286.32); --color-zinc-300: oklch(87.1% 0.006 286.286); --color-zinc-400: oklch(70.5% 0.015 286.067); --color-zinc-500: oklch(55.2% 0.016 285.938); --color-zinc-600: oklch(44.2% 0.017 285.786); --color-zinc-700: oklch(37% 0.013 285.805); --color-zinc-800: oklch(27.4% 0.006 286.033); --color-zinc-900: oklch(21% 0.006 285.885); --color-zinc-950: oklch(14.1% 0.005 285.823); --color-neutral-50: oklch(98.5% 0 none); --color-neutral-100: oklch(97% 0 none); --color-neutral-200: oklch(92.2% 0 none); --color-neutral-300: oklch(87% 0 none); --color-neutral-400: oklch(70.8% 0 none); --color-neutral-500: oklch(55.6% 0 none); --color-neutral-600: oklch(43.9% 0 none); --color-neutral-700: oklch(37.1% 0 none); --color-neutral-800: oklch(26.9% 0 none); --color-neutral-900: oklch(20.5% 0 none); --color-neutral-950: oklch(14.5% 0 none); --color-stone-50: oklch(98.5% 0.001 106.423); --color-stone-100: oklch(97% 0.001 106.424); --color-stone-200: oklch(92.3% 0.003 48.717); --color-stone-300: oklch(86.9% 0.005 56.366); --color-stone-400: oklch(70.9% 0.01 56.259); --color-stone-500: oklch(55.3% 0.013 58.071); --color-stone-600: oklch(44.4% 0.011 73.639); --color-stone-700: oklch(37.4% 0.01 67.558); --color-stone-800: oklch(26.8% 0.007 34.298); --color-stone-900: oklch(21.6% 0.006 56.043); --color-stone-950: oklch(14.7% 0.004 49.25); --color-mauve-50: oklch(98.5% 0 none); --color-mauve-100: oklch(96% 0.003 325.6); --color-mauve-200: oklch(92.2% 0.005 325.62); --color-mauve-300: oklch(86.5% 0.012 325.68); --color-mauve-400: oklch(71.1% 0.019 323.02); --color-mauve-500: oklch(54.2% 0.034 322.5); --color-mauve-600: oklch(43.5% 0.029 321.78); --color-mauve-700: oklch(36.4% 0.029 323.89); --color-mauve-800: oklch(26.3% 0.024 320.12); --color-mauve-900: oklch(21.2% 0.019 322.12); --color-mauve-950: oklch(14.5% 0.008 326); --color-olive-50: oklch(98.8% 0.003 106.5); --color-olive-100: oklch(96.6% 0.005 106.5); --color-olive-200: oklch(93% 0.007 106.5); --color-olive-300: oklch(88% 0.011 106.6); --color-olive-400: oklch(73.7% 0.021 106.9); --color-olive-500: oklch(58% 0.031 107.3); --color-olive-600: oklch(46.6% 0.025 107.3); --color-olive-700: oklch(39.4% 0.023 107.4); --color-olive-800: oklch(28.6% 0.016 107.4); --color-olive-900: oklch(22.8% 0.013 107.4); --color-olive-950: oklch(15.3% 0.006 107.1); --color-mist-50: oklch(98.7% 0.002 197.1); --color-mist-100: oklch(96.3% 0.002 197.1); --color-mist-200: oklch(92.5% 0.005 214.3); --color-mist-300: oklch(87.2% 0.007 219.6); --color-mist-400: oklch(72.3% 0.014 214.4); --color-mist-500: oklch(56% 0.021 213.5); --color-mist-600: oklch(45% 0.017 213.2); --color-mist-700: oklch(37.8% 0.015 216); --color-mist-800: oklch(27.5% 0.011 216.9); --color-mist-900: oklch(21.8% 0.008 223.9); --color-mist-950: oklch(14.8% 0.004 228.8); --color-taupe-50: oklch(98.6% 0.002 67.8); --color-taupe-100: oklch(96% 0.002 17.2); --color-taupe-200: oklch(92.2% 0.005 34.3); --color-taupe-300: oklch(86.8% 0.007 39.5); --color-taupe-400: oklch(71.4% 0.014 41.2); --color-taupe-500: oklch(54.7% 0.021 43.1); --color-taupe-600: oklch(43.8% 0.017 39.3); --color-taupe-700: oklch(36.7% 0.016 35.7); --color-taupe-800: oklch(26.8% 0.011 36.5); --color-taupe-900: oklch(21.4% 0.009 43.1); --color-taupe-950: oklch(14.7% 0.004 49.3); } }
*, ::before, ::after { margin: 0; padding: 0; }
::backdrop { margin: 0; padding: 0; }
::file-selector-button { margin: 0; padding: 0; }
:root { --spacing: 0.25rem; --font-sans: -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-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
/* Chromium/WebView: a non-auto scrollbar-width/color overrides ::-webkit-scrollbar,
   bringing back the Windows arrow buttons. Use the pseudo-elements in Blink; retain
   thin native scrollbars in Firefox. */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-button,
::-webkit-scrollbar-button:single-button { display: none; width: 0; height: 0; }
@supports (-moz-appearance: none) {
    * { scrollbar-width: thin; scrollbar-color: var(--scrollbar, #d0d0d0) transparent; }
}
::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar, #d0d0d0);
    border-radius: 999px;
    border: 3px solid transparent;
    background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background-color: var(--scrollbar-hover, #b5b5b5); }
::-webkit-scrollbar-corner { background: transparent; }

/* shadcn/ui for Unpoly.Blazor — what Radix does in JavaScript, done by the platform instead.
   ------------------------------------------------------------------------------------------
   Radix ships `data-state="open|closed"` and animates on it. Native <dialog>, <details> and
   the popover API carry their own state, so the selectors differ; the animation names and
   durations are shadcn's. Everything here is behaviour a class string cannot express —
   variants and colour stay inline on the components, exactly as in shadcn.
   ------------------------------------------------------------------------------------------ */

@keyframes sh-spin { to { transform: rotate(360deg); } }
@keyframes sh-marquee { to { transform: translateX(var(--sh-marquee-to, -50%)); } }
@keyframes sh-fade-in { from { opacity: 0; } }
@keyframes sh-dialog-in { from { opacity: 0; transform: scale(0.96); } }
@keyframes sh-accordion-down { from { opacity: 0; transform: translateY(-4px); } }
@keyframes sh-slide-from-right { from { transform: translateX(100%); } }
@keyframes sh-slide-from-left { from { transform: translateX(-100%); } }
@keyframes sh-slide-from-top { from { transform: translateY(-100%); } }
@keyframes sh-slide-from-bottom { from { transform: translateY(100%); } }

/* ---- Air Datepicker, behind <DatePicker /> ------------------------------------------------
   Outside @layer components on purpose: air-datepicker.css declares these same custom
   properties on .air-datepicker unlayered, and unlayered declarations win over every layered
   one regardless of order. Inside the layer the calendar kept its own orange. */
.air-datepicker {
    --adp-background-color: var(--popover);
    --adp-text-color: var(--popover-foreground);
    --adp-color: var(--popover-foreground);
    --adp-color-secondary: var(--muted-foreground);
    --adp-border-color: var(--border);
    --adp-border-color-inner: var(--border);
    --adp-cell-background-color-selected: var(--primary);
    --adp-cell-background-color-selected-hover: var(--primary);
    --adp-cell-background-color-hover: var(--accent);
    --adp-day-name-color: var(--muted-foreground);
    --adp-nav-color-secondary: var(--muted-foreground);
    --adp-accent-color: var(--primary);
    --adp-font-family: inherit;
    /* Above up-modal (z-index 2000): the calendar renders on <body> to escape the overlay's
       scrollport, so it has to clear the overlay it belongs to. */
    --adp-z-index: 2100;
}
/* The header title is the year control: months -> years -> decades. Make it read as a button. */
.air-datepicker-nav--title { font-weight: 500; }
.air-datepicker.-active- { z-index: 2100; }

/* A group joins the CONTROL, even when a wrapper stands in the way.
   ------------------------------------------------------------------------------------------
   ButtonGroup makes its joins with `[&>*]` utilities, which works upstream because React's
   <DropdownMenu> and <Select> render no element at all. Two of this port's do: DropdownMenu is
   a real positioning div, and ui.js wraps a <select> in [data-slot=select-root] so it can draw
   the shadcn panel beside it. The group's radius then lands on a wrapper and the control inside
   keeps all four corners — a rounded button sitting in a squared-off slot.

   UNLAYERED, deliberately. The first attempt used :where(), which contributes no specificity
   and lost to the plain `rounded-md` in the recipe. The second raised specificity with :is()
   and still lost, because these rules live in @layer components and a utility is in @layer
   utilities — and a layer beats specificity outright. Unlayered CSS beats every layer, which is
   what an override of a utility has to be.

   Logical properties, so the joins stay on the reading edges under dir="rtl". */
[data-slot="button-group"] > :not(:first-child):is([data-slot="dropdown-menu"], [data-slot="select-root"], [data-slot="popover"]) > :is(button, select, input, [data-slot$="-trigger"]) {
    border-start-start-radius: 0;
    border-end-start-radius: 0;
    border-inline-start-width: 0;
}

[data-slot="button-group"] > :not(:last-child):is([data-slot="dropdown-menu"], [data-slot="select-root"], [data-slot="popover"]) > :is(button, select, input, [data-slot$="-trigger"]) {
    border-start-end-radius: 0;
    border-end-end-radius: 0;
}

[data-slot="button-group"][data-orientation="vertical"] > :not(:first-child):is([data-slot="dropdown-menu"], [data-slot="select-root"], [data-slot="popover"]) > :is(button, select, input, [data-slot$="-trigger"]) {
    border-start-start-radius: 0;
    border-start-end-radius: 0;
    border-inline-start-width: 1px;
    border-block-start-width: 0;
}

[data-slot="button-group"][data-orientation="vertical"] > :not(:last-child):is([data-slot="dropdown-menu"], [data-slot="select-root"], [data-slot="popover"]) > :is(button, select, input, [data-slot$="-trigger"]) {
    border-end-start-radius: 0;
    border-end-end-radius: 0;
}

/* Base UI renders an ItemIndicator only while its row is selected; this one is always in the
   markup, so the not-selected state hides it here. UNLAYERED on purpose: the icon carries
   `flex` from the utilities layer, and a layered rule loses to that whatever its specificity. */
[data-slot="combobox-item"]:not([data-selected]) [data-slot="combobox-item-indicator"] {
    display: none;
}

/* A panel is POSITIONED by script and ANIMATED by CSS, and those must not be the same property.
   shadcn's panels carry `duration-100`, which Tailwind pairs with `transition-property: all` --
   so the left and top this file's place() writes were transitioned too. On the second open the
   values are already there and nothing moves; on the FIRST one they go from the popover's
   unpositioned corner to the anchor, and the panel visibly flies across the page. It read as a
   deliberate animation, which is why it survived so long.

   The fade and zoom shadcn actually asks for are opacity and transform, and they still run. */
[popover][data-slot$="-content"] {
    transition-property: opacity, transform, scale, translate, display, overlay;
}

/* ---- Sonner (Toastify-js underneath) -------------------------------------------------
   UNLAYERED, and that is the whole reason it works. toastify.css is a plain stylesheet with no
   @layer, and an unlayered declaration beats every layered one regardless of order or
   specificity — so while these rules sat in @layer components the toast kept Toastify's own
   2px radius, its own padding and its own transparent background, and every line here did
   nothing at all. air-datepicker and button-group are out here for the same reason.

   Sonner's shape: an icon, then the words, then the close button. shadcn passes the icons in
   and leaves the surface alone for every type — the colour is on the glyph, not on the box. */
.toastify[data-slot="sonner-toast"] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    padding: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-family: inherit;
    background: var(--popover);
    color: var(--popover-foreground);
    box-shadow: 0 4px 12px rgb(0 0 0 / 0.1);
}
.toastify[data-slot="sonner-toast"] svg { flex: none; width: 1rem; height: 1rem; }
.toastify[data-slot="sonner-toast"][data-type="success"] svg { color: var(--primary); }
.toastify[data-slot="sonner-toast"][data-type="error"] svg { color: var(--destructive); }
.toastify[data-slot="sonner-toast"][data-type="warning"] svg { color: var(--destructive); }
.toastify[data-slot="sonner-toast"][data-type="info"] svg { color: var(--muted-foreground); }
.toastify[data-slot="sonner-toast"][data-type="loading"] svg { animation: sh-spin 1s linear infinite; }
/* Sonner's action button: small, solid, and at the end of the row before the close. It is a
   real <button>, so it is reachable by keyboard — an undo only the mouse can take is half an
   undo. */
.toastify[data-slot="sonner-toast"] [data-slot="sonner-action"] {
    margin-inline-start: auto;
    flex: none;
    height: 1.5rem;
    padding-inline: 0.5rem;
    border-radius: calc(var(--radius) - 2px);
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: 0.75rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms;
}
.toastify[data-slot="sonner-toast"] [data-slot="sonner-action"]:hover { opacity: 0.9; }
/* With an action in the row, the close button no longer needs to claim the free space. */
.toastify[data-slot="sonner-toast"]:has([data-slot="sonner-action"]) .toast-close {
    margin-inline-start: 0;
}

.toastify[data-slot="sonner-toast"] .toast-close {
    margin-inline-start: auto;
    padding-inline-start: 0.5rem;
    opacity: 0.5;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    transition: opacity 150ms;
}
.toastify[data-slot="sonner-toast"] .toast-close:hover { opacity: 1; }

@keyframes sh-spin { to { rotate: 360deg; } }

/* ---- TagsInput (Tom Select underneath) ------------------------------------------------
   UNLAYERED, for the same reason as Sonner above: tom-select.min.css is a plain stylesheet
   with no @layer, so it beats every utility on <TagsInput> however specific they are.

   What that produced was two controls, one inside the other. Tom Select copies the original
   <select>'s classes onto the wrapper it builds — so the wrapper wore the shadcn input box,
   1px at an 8px radius — and then drew its OWN control inside it, 1px of #d0d0d0 at a 3px
   radius on white. A bordered box in a bordered box, which is what it looked like.

   So the wrapper is flattened back to a plain block and the box is drawn once, on .ts-control,
   from the same tokens <Input> uses. */
.ts-wrapper {
    border: 0;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}
.ts-wrapper .ts-control {
    min-height: var(--height-control, 2.25rem);
    border: 1px solid var(--input);
    border-radius: var(--radius);
    background: transparent;
    padding: 0.25rem 0.5rem;
    gap: 0.25rem;
    font-size: inherit;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    transition: color 0.15s, box-shadow 0.15s, border-color 0.15s;
}
/* Tom Select puts .focus on the wrapper, not on the control, and the control is not the
   element that takes focus — so shadcn's focus-visible ring has to be re-aimed here. */
.ts-wrapper.focus .ts-control {
    border-color: var(--ring);
    box-shadow: 0 0 0 3px rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5));
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--ring) 50%, transparent);
}
.ts-wrapper.disabled .ts-control { opacity: 0.5; cursor: not-allowed; }
.ts-control > input { font-size: inherit; color: inherit; }
.ts-control > input::-moz-placeholder { color: var(--muted-foreground); }
.ts-control > input::placeholder { color: var(--muted-foreground); }

/* A chosen collection is a <Badge variant="secondary">, because that is what it is. */
.ts-wrapper.multi .ts-control > .item {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border-radius: calc(infinity * 1px);
    background: var(--secondary);
    color: var(--secondary-foreground);
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1rem;
}
.ts-wrapper.multi .ts-control > .item.active {
    background: var(--accent);
    color: var(--accent-foreground);
}
/* The remove_button plugin ships a bordered ✕ on the left of the chip. shadcn puts it at the
   reading end, as a glyph rather than a second control. */
.ts-wrapper.plugin-remove_button .item .remove {
    order: 1;
    border: 0;
    padding: 0 0 0 0.125rem;
    color: inherit;
    opacity: 0.6;
}
.ts-wrapper.plugin-remove_button .item .remove:hover { opacity: 1; background: transparent; }

/* The list is a popover panel: same surface, same border, same radius as <SelectItem> sits on. */
.ts-dropdown {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--popover);
    color: var(--popover-foreground);
    box-shadow: 0 4px 12px rgb(0 0 0 / 0.1);
    margin-top: 0.25rem;
    padding: 0.25rem;
    font-size: 0.875rem;
}
.ts-dropdown .option {
    border-radius: calc(var(--radius) - 2px);
    padding: 0.375rem 0.5rem;
}
.ts-dropdown .active { background: var(--accent); color: var(--accent-foreground); }
.ts-dropdown .no-results { padding: 0.375rem 0.5rem; color: var(--muted-foreground); }

/* ---- Unpoly overlays: up-layer="new modal | drawer | popup | cover" -----------------------
   The skill tells every consumer to open server content with `up-layer="new modal"` rather
   than a <Dialog>, and Unpoly draws that overlay in its own elements: <up-modal>, <up-drawer>,
   <up-popup> and <up-cover>, each with -backdrop, -viewport, -box, -content and -dismiss
   parts. unpoly.css frames them in white with a grey shadow and a grey "×", which sits beside
   a shadcn page like a different product and stays white in dark mode. These rules put them
   on the tokens of <Dialog>, <Sheet> and <PopoverContent>, so a route opened in a layer looks
   like a dialog the page had all along — in every theme, because nothing here is a colour.

   UNLAYERED, for the reason the Toastify section gives: unpoly.css has no @layer, and an
   unlayered rule beats every layered one. It is also usually linked AFTER the app's CSS
   (<UnpolyHead /> sits last in the demo's <head>), so an equal-specificity tie goes to Unpoly.
   Every selector here is therefore one element or attribute more specific than the unpoly.css
   rule it overrides — `up-modal-viewport > up-modal-box` against `up-modal-box`,
   `up-modal[size] > up-modal-viewport > up-modal-box` against `up-modal[size] up-modal-box` —
   and wins in either order with no !important.

   Motion is left alone: Unpoly animates opacity and transform on these elements itself, and an
   animation here would run against its own. */

/* The scrim is shadcn's DialogOverlay, bg-black/50, which is the same in light and dark — and
   the value [data-slot="dialog"]::backdrop uses, so a layer and a <Dialog> dim the page
   identically. A dark page is already dark; the scrim needs no second value. */
up-modal > up-modal-backdrop,
up-drawer > up-drawer-backdrop {
    background: rgb(0 0 0 / 0.5);
}

/* ---- modal: DialogContent ---------------------------------------------------------------
   Unpoly's viewport padding is a pair of variables it multiplies by the nesting depth. They are
   set on the overlay element rather than on :root, so they win by inheritance instead of by
   load order: 1rem at the sides is DialogContent's max-w-[calc(100%-2rem)], 2rem top and
   bottom the dialog's max-h-[calc(100dvh-4rem)]. */
up-modal {
    --up-modal-viewport-padding-x: 1rem;
    --up-modal-viewport-padding-y: 2rem;
}

/* rounded-lg border p-6 shadow-lg, with the surface border the library puts on
   [data-slot="dialog-content"], and the popover pair for colour since a layer floats over the
   page. margin-block:auto centres it as a <dialog> is centred — and an auto margin being the
   one centring that never pushes content out of reach, a box taller than the screen starts at
   the top and scrolls instead of losing its head. */
up-modal-viewport > up-modal-box {
    margin-block: auto;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius);
    background: var(--popover);
    color: var(--popover-foreground);
    padding: 1.5rem;
    box-shadow: var(--elevation-4);
}

/* Unpoly's sizes are 350/650/1000px. These are max-w-sm / max-w-lg / max-w-3xl, medium being
   DialogContent's own sm:max-w-lg and Unpoly's default size. unpoly.css's max-width:100%
   still caps each at the viewport. */
up-modal[size="small"] > up-modal-viewport > up-modal-box { width: 24rem; }
up-modal[size="medium"] > up-modal-viewport > up-modal-box { width: 32rem; }
up-modal[size="large"] > up-modal-viewport > up-modal-box { width: 48rem; }
up-modal[size="grow"] > up-modal-viewport > up-modal-box { width: auto; }
up-modal[size="full"] > up-modal-viewport > up-modal-box { width: 100%; }

/* ---- drawer: SheetContent ---------------------------------------------------------------
   A panel from the edge, drawn like <Sheet Side="left|right">: shadow-lg, and a border only on
   the edge that faces into the page — border-e for a left sheet, border-s for a right one.
   Unpoly's `position` is physical, so the borders are too. */
up-drawer-viewport > up-drawer-box {
    min-height: 100dvh;
    background: var(--popover);
    color: var(--popover-foreground);
    padding: 1.5rem;
    box-shadow: var(--elevation-4);
}
up-drawer[position="left"] > up-drawer-viewport > up-drawer-box { border-right: 1px solid var(--border); }
up-drawer[position="right"] > up-drawer-viewport > up-drawer-box { border-left: 1px solid var(--border); }

/* w-3/4 sm:max-w-sm is <Sheet>'s width, and medium is Unpoly's default drawer size. */
up-drawer[size="small"] > up-drawer-viewport > up-drawer-box { width: min(18rem, 75%); }
up-drawer[size="medium"] > up-drawer-viewport > up-drawer-box { width: min(24rem, 75%); }
up-drawer[size="large"] > up-drawer-viewport > up-drawer-box { width: min(36rem, 100%); }

/* ---- cover: a whole screen --------------------------------------------------------------
   A cover replaces the page, so it takes the page's ground rather than a surface's — and it
   must take something, or it is unpoly.css's white in dark mode. */
up-cover-viewport > up-cover-box {
    background: var(--background);
    color: var(--foreground);
}

/* ---- popup: PopoverContent --------------------------------------------------------------
   rounded-md border bg-popover p-4 text-popover-foreground shadow-md, w-72 at the default
   size. `html` is there only to be one element more specific than unpoly.css. */
html up-popup {
    border: 1px solid var(--border);
    border-radius: var(--radius-control);
    background: var(--popover);
    color: var(--popover-foreground);
    padding: 1rem;
    box-shadow: var(--elevation-3);
}
html up-popup[size="small"] { width: 12rem; }
html up-popup[size="medium"] { width: 18rem; }
html up-popup[size="large"] { width: 34rem; }

/* ---- the ×: the dialog's corner button --------------------------------------------------
   Upstream's is absolute top-4 end-4 rounded-sm p-1 around a size-4 icon: a 1.5rem square,
   quiet until pointed at, then the accent. Unpoly's is a text "×" at 1.7rem with line-height
   .5, so it is squared up here and the glyph centred. right:auto then inset-inline-end puts it
   at the reading end in RTL, where the dialog's own X goes. */
up-modal up-modal-dismiss,
up-drawer up-drawer-dismiss,
up-cover up-cover-dismiss {
    top: 1rem;
    right: auto;
    inset-inline-end: 1rem;
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: calc(var(--radius) - 4px);
    font-size: 1.25rem;
    line-height: 1;
    color: var(--muted-foreground);
    transition: color var(--duration-ui) var(--ease-ui), background-color var(--duration-ui) var(--ease-ui);
}
up-modal up-modal-dismiss:hover,
up-drawer up-drawer-dismiss:hover,
up-cover up-cover-dismiss:hover {
    background: var(--accent);
    color: var(--accent-foreground);
}
up-modal up-modal-dismiss:focus-visible,
up-drawer up-drawer-dismiss:focus-visible,
up-cover up-cover-dismiss:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    up-modal up-modal-dismiss,
    up-drawer up-drawer-dismiss,
    up-cover up-cover-dismiss { transition: none; }
}

/* ---- below sm, a modal is a bottom sheet ------------------------------------------------
   A centred card on a phone is a small target at the far end of the thumb. Below 640px — where
   DialogContent stops being sm:max-w-lg — the box spans the width, sits on the bottom edge with
   only its top corners rounded, and pads the home indicator's safe area. The viewport keeps a
   3rem strip at the top so the page still shows behind it, and a tap there still dismisses.
   `[nesting]` is Unpoly's own attribute, there for specificity: the rule it beats is
   `up-modal[nesting="0"] up-modal-viewport`. */
@media (max-width: 639.98px) {
    html up-modal[nesting] > up-modal-viewport {
        padding: 3rem 0 0;
    }
    up-modal-viewport > up-modal-box,
    up-modal[size] > up-modal-viewport > up-modal-box {
        width: 100%;
        margin-block: auto 0;
        border-bottom-width: 0;
        border-radius: var(--radius) var(--radius) 0 0;
        padding: 1.5rem max(1rem, env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    }
}

/* ---- square controls keep their size inside a Field (unlayered) ------------------------
   <Field> hands its children `w-full` below its container-query breakpoint and `w-auto` above
   it, so a checkbox or a radio sitting in a horizontal Field loses the `size-4` on its class
   list: `w-auto` is a utility, and a utility sits in a later layer than `@layer components`, so
   it wins whatever the specificity of the sizing rule. An `appearance: none` input with no width
   collapses to its two borders — 2px wide, 16px tall — which reads as a stray line rather than a
   box to tick. A minimum keeps every size the component supports and only rules out the
   collapse, so `size-5` and friends still work. */
[data-slot="checkbox"],
[data-slot="radio-group-item"] {
    min-inline-size: 1rem;
    min-block-size: 1rem;
}
/* shadcn/ui for Unpoly.Blazor — the token layer.
   ------------------------------------------------------------------------------------------
   Faithful to shadcn/ui (new-york, Tailwind v4): the same variable names, the same
   `@theme inline` indirection, the same derived radius scale. `inline` is load-bearing —
   it makes `bg-primary` compile to `var(--primary)` rather than to a resolved colour, which
   is what lets a head override the palette from `:root` further down the cascade.

   A consuming head sets its own palette by redeclaring these in `:root`. It never touches
   `@theme`; that direction is this file's.

   Two tokens are ours, not shadcn's, and they exist because one control layer serves two
   heads at different sizes: `--control-h` and `--control-text`, surfaced as `h-control` and
   `text-control`. shadcn writes `h-9 text-sm` literally there. Everywhere else the class
   strings are shadcn's, unchanged, so a model that knows shadcn knows these. */

/* Dark mode follows a class, not the operating system — and this line is what makes that true.
   ------------------------------------------------------------------------------------------
   Tailwind v4's stock `dark:` variant compiles to `@media (prefers-color-scheme: dark)`. shadcn
   redefines it against a class in its own globals, and this file — which is this port's
   globals — did not. The `.dark { … }` blocks below still worked, because they are ordinary CSS
   selectors, so the palette flipped and the page looked right; but every `dark:` utility in
   every component kept answering to the OS instead.

   The effect was invisible on a machine whose OS matches the page and quietly wrong on one that
   does not: on a light OS in dark mode, none of `dark:bg-input/30`, `dark:hover:bg-accent/50` or
   `dark:aria-invalid:ring-destructive/40` ever applied. `:where` rather than shadcn's `.dark *`
   so the element carrying the class is covered too. */

:root {
    --radius: 0.625rem;

    /* Page and card are both pure white, as in shadcn, so a card is separated by a line: the
       border that --surface-border draws below. This file once had a grey page and borderless
       cards; the page went back to white (see --background) and the border has to come with it,
       or every card, alert and menu panel melts into the page. */
    /* oklch(1 0 0), which is shadcn's. 0.98 is their --surface, a docs-site token, and it was
       sitting on --background here: the page ground was a nearly-grey that made every
       bg-background surface disappear into bg-muted next to it. The active tab was the visible
       casualty — a white chip on a 0.97 list, reading as a 1% difference. */
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.145 0 0);
    --foreground-rgb: 10, 10, 10;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.145 0 0);
    --card-foreground-rgb: 10, 10, 10;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.145 0 0);
    --popover-foreground-rgb: 10, 10, 10;
    --popover-foreground-alpha: 1;
    --primary: oklch(0.205 0 0);
    --bubble-tint-hover-dark: rgb(58, 58, 58);
    --bubble-tint-hover-light: rgb(215, 215, 215);
    --bubble-tint-dark: rgb(46, 46, 46);
    --bubble-tint-light: rgb(232, 232, 232);
    --primary-rgb: 23, 23, 23;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --secondary: oklch(0.97 0 0);
    --secondary-rgb: 245, 245, 245;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.205 0 0);
    --secondary-foreground-rgb: 23, 23, 23;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.97 0 0);
    --muted-rgb: 245, 245, 245;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.556 0 0);
    --muted-foreground-rgb: 115, 115, 115;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.97 0 0);
    --accent-rgb: 245, 245, 245;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.205 0 0);
    --accent-foreground-rgb: 23, 23, 23;
    --accent-foreground-alpha: 1;
    --destructive: oklch(0.577 0.245 27.325);
    --destructive-rgb: 231, 0, 11;
    --destructive-alpha: 1;
    --destructive-foreground: oklch(0.985 0 0);
    --destructive-foreground-rgb: 250, 250, 250;
    --destructive-foreground-alpha: 1;
    --border: oklch(0.922 0 0);
    --border-rgb: 229, 229, 229;
    --border-alpha: 1;
    --input: oklch(0.922 0 0);
    --input-rgb: 229, 229, 229;
    --input-alpha: 1;
    --ring: oklch(0.708 0 0);
    --ring-rgb: 161, 161, 161;
    --ring-alpha: 1;

    /* The colour of the line around a surface — a card, an alert, a menu panel, a dialog.
       shadcn's: var(--border). It was transparent while the page was grey, and stayed transparent
       when the page turned white, which left a white card on a white page with no edge at all.

       It is a token rather than a rule because a theme has to be able to disagree. Notebook is
       heavy borders on paper and nothing else; a rule would have quietly erased the one thing it
       is. A theme that wants the borderless look sets this to transparent — and then has to give
       --background and --card different tones, or its surfaces have nothing to separate them. */
    --surface-border: var(--border);

    --chart-1: oklch(0.646 0.222 41.116);

    --chart-1-rgb: 245, 73, 0;

    --chart-1-alpha: 1;
    --chart-2: oklch(0.6 0.118 184.704);
    --chart-2-rgb: 0, 150, 137;
    --chart-2-alpha: 1;
    --chart-3: oklch(0.398 0.07 227.392);
    --chart-3-rgb: 16, 78, 100;
    --chart-3-alpha: 1;
    --chart-4: oklch(0.828 0.189 84.429);
    --chart-4-rgb: 255, 185, 0;
    --chart-4-alpha: 1;
    --chart-5: oklch(0.769 0.188 70.08);
    --chart-5-rgb: 254, 154, 0;
    --chart-5-alpha: 1;

    --sidebar: oklch(0.985 0 0);

    --sidebar-rgb: 250, 250, 250;

    --sidebar-alpha: 1;
    --sidebar-foreground: oklch(0.145 0 0);
    --sidebar-foreground-rgb: 10, 10, 10;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: oklch(0.205 0 0);
    --sidebar-primary-rgb: 23, 23, 23;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: oklch(0.985 0 0);
    --sidebar-primary-foreground-rgb: 250, 250, 250;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: oklch(0.97 0 0);
    --sidebar-accent-rgb: 245, 245, 245;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: oklch(0.205 0 0);
    --sidebar-accent-foreground-rgb: 23, 23, 23;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: oklch(0.922 0 0);
    --sidebar-border-rgb: 229, 229, 229;
    --sidebar-border-alpha: 1;
    --sidebar-ring: oklch(0.708 0 0);
    --sidebar-ring-rgb: 161, 161, 161;
    --sidebar-ring-alpha: 1;

    /* Ours. shadcn hardcodes h-9 / text-sm; two heads at 36px and 46px cannot both. */
    --control-h: 2.25rem;
    --control-text: 0.875rem;

    /* The face a column of figures is set in. `inherit` by default — an app that wants money
       to read digit over digit points this at its own mono stack. */
    --font-numeric: inherit;

    /* ---- themeable beyond shadcn --------------------------------------------------------
       shadcn tokenises colour and one radius, and writes everything else as literals:
       `shadow-xs`, `rounded-md`, `transition-all`. That is enough to recolour it and not
       enough to make it look like another design language, because Material and Fluent both
       define elevation and motion as part of the system rather than as decoration.

       These map Tailwind's own namespaces onto runtime custom properties, so a theme file can
       change them from :root without touching a single class string — which is why adding
       them costs nothing in parity. See themes/README.md for what does and does not transfer. */
    /* Flat at rest, lifted when floating — which is what shadcn's current sheet does, and what
       this port did not: a card, an input and an outline button all carried a shadow the live
       docs have not had for a while. Nothing about them changes but these two values; the class
       strings still say shadow-xs and shadow-sm, so parity with upstream's source is untouched
       and a theme that wants the old look sets them back from :root.

       Levels three and four stay, because shadcn keeps them: a popover, a dropdown and a dialog
       are ABOVE the page rather than part of it, and a shadow is how that is said. */
    --elevation-1: 0 0 #0000;
    --elevation-2: 0 0 #0000;
    --elevation-3: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --elevation-4: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);

    /* Controls round separately from containers. shadcn derives both from --radius; Material
       wants pill-shaped buttons beside 12px cards, which one number cannot say. */
    --radius-control: calc(var(--radius) - 2px);

    --ease-ui: cubic-bezier(0.4, 0, 0.2, 1);
    --duration-ui: 150ms;

    /* Lucide glyphs a pseudo-element has to draw, because a ::after cannot hold an <svg> and a
       CSS rule cannot hold a Tailwind class. Everything a component renders itself is an inline
       <svg>, as in shadcn — these four are the exceptions, all of them indicators. */
    --sh-clear-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7385' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
    --sh-check: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4 4L19 7'/%3E%3C/svg%3E");
    --sh-minus: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
    --sh-chevron-down: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --bubble-muted-hover: rgb(231, 231, 231);
    --bubble-secondary-hover: rgb(231, 231, 231);
}

.dark {
    /* Same idea inverted: the page is the darker of the two and the card lifts off it. */
    --background: oklch(0.145 0 0);
    --background-rgb: 10, 10, 10;
    --background-alpha: 1;
    --foreground: oklch(0.985 0 0);
    --foreground-rgb: 250, 250, 250;
    --foreground-alpha: 1;
    --card: oklch(0.205 0 0);
    --card-rgb: 23, 23, 23;
    --card-alpha: 1;
    --card-foreground: oklch(0.985 0 0);
    --card-foreground-rgb: 250, 250, 250;
    --card-foreground-alpha: 1;
    --popover: oklch(0.269 0 0);
    --popover-rgb: 38, 38, 38;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.985 0 0);
    --popover-foreground-rgb: 250, 250, 250;
    --popover-foreground-alpha: 1;
    --primary: oklch(0.922 0 0);
    --bubble-tint-hover-dark: rgb(58, 58, 58);
    --bubble-tint-hover-light: rgb(215, 215, 215);
    --bubble-tint-dark: rgb(46, 46, 46);
    --bubble-tint-light: rgb(232, 232, 232);
    --primary-rgb: 229, 229, 229;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.205 0 0);
    --primary-foreground-rgb: 23, 23, 23;
    --primary-foreground-alpha: 1;
    --secondary: oklch(0.269 0 0);
    --secondary-rgb: 38, 38, 38;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.985 0 0);
    --secondary-foreground-rgb: 250, 250, 250;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.269 0 0);
    --muted-rgb: 38, 38, 38;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.708 0 0);
    --muted-foreground-rgb: 161, 161, 161;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.371 0 0);
    --accent-rgb: 64, 64, 64;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.985 0 0);
    --accent-foreground-rgb: 250, 250, 250;
    --accent-foreground-alpha: 1;
    --destructive: oklch(0.704 0.191 22.216);
    --destructive-rgb: 255, 100, 103;
    --destructive-alpha: 1;
    --destructive-foreground: oklch(0.985 0 0);
    --destructive-foreground-rgb: 250, 250, 250;
    --destructive-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --ring: oklch(0.556 0 0);
    --ring-rgb: 115, 115, 115;
    --ring-alpha: 1;
    --sidebar: oklch(0.205 0 0);
    --sidebar-rgb: 23, 23, 23;
    --sidebar-alpha: 1;
    --sidebar-foreground: oklch(0.985 0 0);
    --sidebar-foreground-rgb: 250, 250, 250;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: oklch(0.488 0.243 264.376);
    --sidebar-primary-rgb: 20, 71, 230;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: oklch(0.985 0 0);
    --sidebar-primary-foreground-rgb: 250, 250, 250;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: oklch(0.269 0 0);
    --sidebar-accent-rgb: 38, 38, 38;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: oklch(0.985 0 0);
    --sidebar-accent-foreground-rgb: 250, 250, 250;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: oklch(1 0 0 / 10%);
    --sidebar-border-rgb: 255, 255, 255;
    --sidebar-border-alpha: 0.1;
    --sidebar-ring: oklch(0.556 0 0);
    --sidebar-ring-rgb: 115, 115, 115;
    --sidebar-ring-alpha: 1;
    --bubble-muted-hover: rgb(47, 47, 47);
    --bubble-secondary-hover: rgb(47, 47, 47);
}

/* shadcn's icon button is `size-9` — one number for both axes. There is no --size-* namespace to
   hang a token on, so the third of our three substitutions is a real utility rather than a theme
   key. Same value as h-control, squared. */
.size-control {
    inline-size: var(--control-h);
    block-size: var(--control-h); }

/* scroll-fade — the content fades out where it runs off the end of its scroller.
   ------------------------------------------------------------------------------------------
   AttachmentGroup asks for `scroll-fade-x` and MessageScrollerViewport for `scroll-fade-b`, and
   neither existed: like `shimmer`, this utility lives in shadcn's CLI stylesheet rather than in
   its globals, so this file never had it and both compiled to nothing. A row of attachments
   simply stopped dead at the edge instead of fading, which reads as a layout that has not been
   finished rather than as a missing utility.

   Two of the family, because two are what this library uses. The rest — scroll-fade-t, -s, -e,
   -l, -r, the sizing modifiers — are in shadcn's tailwind.css if a caller ever needs them.

   The mask is animated by a SCROLL timeline, so the fade appears only on the side there is more
   content on. Browsers without scroll-driven animations get the fade permanently, which is the
   right way round: a hint that is always on beats a hint that is never on. */
@property --scroll-fade-b {
    syntax: "<length-percentage>";
    inherits: false;
    initial-value: 0px;
}

@property --scroll-fade-s {
    syntax: "<length-percentage>";
    inherits: false;
    initial-value: 0px;
}

@property --scroll-fade-e {
    syntax: "<length-percentage>";
    inherits: false;
    initial-value: 0px;
}

@keyframes scroll-fade-reveal-b {
        from { --scroll-fade-b: var(--_scroll-fade-size-b); }
        to { --scroll-fade-b: 0px; }
    }

@keyframes scroll-fade-reveal-s {
        from { --scroll-fade-s: 0px; }
        to { --scroll-fade-s: var(--_scroll-fade-size-s); }
    }

@keyframes scroll-fade-reveal-e {
        from { --scroll-fade-e: var(--_scroll-fade-size-e); }
        to { --scroll-fade-e: 0px; }
    }

.scroll-fade-b {
    --_scroll-fade-size-b: var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)));
    --scroll-fade-mask: linear-gradient(to bottom, #000 0,
        #000 calc(100% - var(--scroll-fade-b, 0px)), transparent 100%);
    -webkit-mask-image: var(--scroll-fade-mask);
    mask-image: var(--scroll-fade-mask);
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat; }

@supports (animation-timeline: scroll()) {
 .scroll-fade-b {
        animation: scroll-fade-reveal-b 1ms ease-in-out;
        animation-timeline: scroll(self y);
        animation-range: calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
        animation-fill-mode: both; } }

@supports not (animation-timeline: scroll()) {
 .scroll-fade-b {
        --scroll-fade-b: var(--_scroll-fade-size-b); } }

/* Inline, so it fades the reading-start and reading-end edges — and swaps them under RTL. */
.scroll-fade-x {
    --_scroll-fade-size-s: var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)));
    --_scroll-fade-size-e: var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)));
    --scroll-fade-inline: linear-gradient(to right, transparent 0,
        #000 var(--scroll-fade-s, 0px),
        #000 calc(100% - var(--scroll-fade-e, 0px)), transparent 100%);

    -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat; }

    .scroll-fade-x:where([dir="rtl"], [dir="rtl"] *) {
        --scroll-fade-inline: linear-gradient(to left, transparent 0,
            #000 var(--scroll-fade-s, 0px),
            #000 calc(100% - var(--scroll-fade-e, 0px)), transparent 100%);
    }

    @supports (animation-timeline: scroll()) {
 .scroll-fade-x {
        animation: scroll-fade-reveal-s 1ms ease-in-out, scroll-fade-reveal-e 1ms ease-in-out;
        animation-timeline: scroll(self inline), scroll(self inline);
        animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
                         calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
        animation-fill-mode: both; } }

    @supports not (animation-timeline: scroll()) {
 .scroll-fade-x {
        --scroll-fade-s: var(--_scroll-fade-size-s);
        --scroll-fade-e: var(--_scroll-fade-size-e); } }

/* shimmer — a gradient swept through the TEXT itself, not a box behind it.
   ------------------------------------------------------------------------------------------
   AttachmentTitle has carried `group-data-[state=uploading]/attachment:shimmer` since it was
   ported, and MarkerContent takes `shimmer` as a class. Neither did anything: the utility is
   not part of shadcn's globals — it lives in the CLI's own tailwind.css — so this file never
   had it, and an undefined utility compiles to nothing without a warning. An uploading file
   looked identical to a finished one.

   background-clip: text plus a transparent fill is what puts the highlight in the glyphs. The
   animation reverses under dir="rtl", because a sweep that runs against the reading direction
   reads as a glitch rather than as progress. Copied from shadcn's tailwind.css. */
@property --shimmer-angle {
    syntax: "<angle>";
    inherits: true;
    initial-value: 20deg;
}

@keyframes tw-shimmer {
        from { background-position: 100% 0; }
        to { background-position: 0 0; }
    }

.shimmer, .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) {
    --_spread: var(--shimmer-spread, calc(3ch + 40px));
    --_base: currentColor;
    --_highlight: var(--shimmer-color, oklch(from currentColor l c h / calc(alpha * 0.2)));

    background-image: var(--shimmer-image, linear-gradient(
        calc(90deg + var(--shimmer-angle)),
        var(--_base) calc(50% - var(--_spread)),
        color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * 0.5),
        var(--_highlight) 50%,
        color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * 0.5),
        var(--_base) calc(50% + var(--_spread))
    ));
    background-repeat: no-repeat;
    background-size: calc(200% + var(--_spread) * 2) 100%;
    background-position: 0 0;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
    animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite; }

@supports not (color: color-mix(in srgb, red, blue)) {
 .shimmer, .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) { --_shimmer-legacy-highlight: var(--shimmer-color, rgba(160, 160, 160, 0.85)); background-image: var(--shimmer-image, linear-gradient(110deg, var(--_base) 0%, var(--_base) 35%, var(--_shimmer-legacy-highlight) 50%, var(--_base) 65%, var(--_base) 100%)); background-size: 200% 100%; }
 .shimmer:where(.dark, .dark *), .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *):where(.dark, .dark *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *):where(.dark, .dark *) { --_shimmer-legacy-highlight: var(--shimmer-color, rgba(255, 255, 255, 0.85)); } }

@media (prefers-reduced-motion: reduce) {
 .shimmer, .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) {
        animation: none;
        -webkit-text-fill-color: currentColor; } }

.shimmer:where([dir="rtl"], [dir="rtl"] *), .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *):where([dir="rtl"], [dir="rtl"] *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *):where([dir="rtl"], [dir="rtl"] *) { animation-direction: reverse; }

.shimmer:where(.dark, .dark *), .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *):where(.dark, .dark *), .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *):where(.dark, .dark *) { --_highlight: var(--shimmer-color, oklch(from currentColor max(0.8, calc(l + 0.4)) c h / calc(alpha + 0.4))); }

/* shadcn's own base layer, and it is not optional.
   ------------------------------------------------------------------------------------------
   Tailwind's preflight leaves `border-color: currentColor`, so `border-b` with no colour class
   draws a line in the TEXT colour. shadcn ships `* { @apply border-border outline-ring/50 }` in
   its globals for exactly that reason, and this file — which is this port's globals — did not.

   The result was a near-black hairline everywhere a component relies on the default: every table
   row, every accordion item, the sidebar's edge, the input group's divider, the drawer's header.
   It reads as "heavier than shadcn" rather than as a bug, which is why it survived this long.

   `@layer base`, so anything a component says for itself still wins. */
/* The demo bundles only Apple and Dracula in addition to the built-in shadcn palette.
   The theme gallery files remain available separately for consuming apps. Each theme is a
   runtime [data-theme] block; the Customizer keeps its own token ramps. */
/* stylecn:apple — Azure #0071e3 on fog #f5f5f7 — Apple trust and clarity. Clean, premium.
   ==========================================================================================
   CONVERTED from https://github.com/DaniAkash/stylecn — src/themes/brands.css
   Preset: apple. Brand colors, radius and type from the real apple product.
   Do not edit by hand; re-run the gen-themes .NET command to refresh.

   Scoped to [data-theme] so several can be loaded at once and switched by an attribute.
   An app that ships one theme puts data-theme on <html>.
   TYPEFACES: see --font-sans / --font-heading inside; load them in the app.
   (Stylecn brands ship their own @fontsource imports — an app must add them.) */


[data-theme="apple"] {
    --radius-sm: 8px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-xl: 28px;
    --radius-2xl: 32px;
    --radius-3xl: 36px;
    --radius-4xl: 9999px;
    --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", system-ui, sans-serif;
    --font-heading: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter", system-ui, sans-serif;
    --background: #f5f5f7;
    --background-rgb: 245, 245, 247;
    --background-alpha: 1;
    --foreground: #1d1d1f;
    --foreground-rgb: 29, 29, 31;
    --foreground-alpha: 1;
    --card: #ffffff;
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: #1d1d1f;
    --card-foreground-rgb: 29, 29, 31;
    --card-foreground-alpha: 1;
    --popover: #ffffff;
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: #1d1d1f;
    --popover-foreground-rgb: 29, 29, 31;
    --popover-foreground-alpha: 1;
    --primary: #0071e3;
    --bubble-tint-hover-dark: rgb(19, 58, 108);
    --bubble-tint-hover-light: rgb(174, 219, 255);
    --bubble-tint-dark: rgb(16, 46, 84);
    --bubble-tint-light: rgb(199, 235, 255);
    --primary-rgb: 0, 113, 227;
    --primary-alpha: 1;
    --primary-foreground: #ffffff;
    --primary-foreground-rgb: 255, 255, 255;
    --primary-foreground-alpha: 1;
    --secondary: #e8e8ed;
    --secondary-rgb: 232, 232, 237;
    --secondary-alpha: 1;
    --secondary-foreground: #1d1d1f;
    --secondary-foreground-rgb: 29, 29, 31;
    --secondary-foreground-alpha: 1;
    --muted: #f5f5f7;
    --muted-rgb: 245, 245, 247;
    --muted-alpha: 1;
    --muted-foreground: #707070;
    --muted-foreground-rgb: 112, 112, 112;
    --muted-foreground-alpha: 1;
    --accent: #e8e8ed;
    --accent-rgb: 232, 232, 237;
    --accent-alpha: 1;
    --accent-foreground: #1d1d1f;
    --accent-foreground-rgb: 29, 29, 31;
    --accent-foreground-alpha: 1;
    --destructive: #b64400;
    --destructive-rgb: 182, 68, 0;
    --destructive-alpha: 1;
    --border: #e8e8ed;
    --border-rgb: 232, 232, 237;
    --border-alpha: 1;
    --input: #e8e8ed;
    --input-rgb: 232, 232, 237;
    --input-alpha: 1;
    --ring: #0071e3;
    --ring-rgb: 0, 113, 227;
    --ring-alpha: 1;
    --chart-1: #0071e3;
    --chart-1-rgb: 0, 113, 227;
    --chart-1-alpha: 1;
    --chart-2: #596680;
    --chart-2-rgb: 89, 102, 128;
    --chart-2-alpha: 1;
    --chart-3: #5e9c2a;
    --chart-3-rgb: 94, 156, 42;
    --chart-3-alpha: 1;
    --chart-4: #cc29bc;
    --chart-4-rgb: 204, 41, 188;
    --chart-4-alpha: 1;
    --chart-5: #b64400;
    --chart-5-rgb: 182, 68, 0;
    --chart-5-alpha: 1;
    --sidebar: #ffffff;
    --sidebar-rgb: 255, 255, 255;
    --sidebar-alpha: 1;
    --sidebar-foreground: #1d1d1f;
    --sidebar-foreground-rgb: 29, 29, 31;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: #0071e3;
    --sidebar-primary-rgb: 0, 113, 227;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: #ffffff;
    --sidebar-primary-foreground-rgb: 255, 255, 255;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: #f5f5f7;
    --sidebar-accent-rgb: 245, 245, 247;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: #1d1d1f;
    --sidebar-accent-foreground-rgb: 29, 29, 31;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: #e8e8ed;
    --sidebar-border-rgb: 232, 232, 237;
    --sidebar-border-alpha: 1;
    --sidebar-ring: #0071e3;
    --sidebar-ring-rgb: 0, 113, 227;
    --sidebar-ring-alpha: 1;
    --radius: 14px;
    --radius-control: calc(14px - 2px);
    --surface-border: var(--border);
    --destructive-foreground: oklch(100% 0 0);
    --destructive-foreground-rgb: 255, 255, 255;
    --destructive-foreground-alpha: 1;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    --font-serif: Georgia, "Times New Roman", serif;
    --tracking-normal: 0em;
    --elevation-1: 0 1px 2px 0 rgb(0 0 0 / 0.04);
    --elevation-2: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.06);
    --elevation-3: 0 4px 12px -2px rgb(0 0 0 / 0.10);
    --elevation-4: 0 16px 32px -8px rgb(0 0 0 / 0.14);
    font-family: var(--font-sans);
    --bubble-muted-hover: rgb(233, 233, 235);
    --bubble-secondary-hover: rgb(220, 220, 225);
}

[data-theme="apple"].dark,
[data-theme="apple"] .dark {
    --radius: 0.5rem;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 14px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-3xl: 32px;
    --radius-4xl: 9999px;
    --font-sans: "Inter Variable", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-heading: "Inter Variable", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --background: #f7f7f7;
    --background-rgb: 247, 247, 247;
    --background-alpha: 1;
    --foreground: #222222;
    --foreground-rgb: 34, 34, 34;
    --foreground-alpha: 1;
    --card: #ffffff;
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: #222222;
    --card-foreground-rgb: 34, 34, 34;
    --card-foreground-alpha: 1;
    --popover: #ffffff;
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: #222222;
    --popover-foreground-rgb: 34, 34, 34;
    --popover-foreground-alpha: 1;
    --primary: #ff385c;
    --bubble-tint-hover-dark: rgb(106, 23, 36);
    --bubble-tint-hover-light: rgb(255, 184, 188);
    --bubble-tint-dark: rgb(83, 20, 28);
    --bubble-tint-light: rgb(255, 207, 210);
    --primary-rgb: 255, 56, 92;
    --primary-alpha: 1;
    --primary-foreground: #ffffff;
    --primary-foreground-rgb: 255, 255, 255;
    --primary-foreground-alpha: 1;
    --secondary: #ffffff;
    --secondary-rgb: 255, 255, 255;
    --secondary-alpha: 1;
    --secondary-foreground: #222222;
    --secondary-foreground-rgb: 34, 34, 34;
    --secondary-foreground-alpha: 1;
    --muted: #ebebeb;
    --muted-rgb: 235, 235, 235;
    --muted-alpha: 1;
    --muted-foreground: #6a6a6a;
    --muted-foreground-rgb: 106, 106, 106;
    --muted-foreground-alpha: 1;
    --accent: #ebebeb;
    --accent-rgb: 235, 235, 235;
    --accent-alpha: 1;
    --accent-foreground: #222222;
    --accent-foreground-rgb: 34, 34, 34;
    --accent-foreground-alpha: 1;
    --destructive: #e00b41;
    --destructive-rgb: 224, 11, 65;
    --destructive-alpha: 1;
    --border: #ebebeb;
    --border-rgb: 235, 235, 235;
    --border-alpha: 1;
    --input: #dddddd;
    --input-rgb: 221, 221, 221;
    --input-alpha: 1;
    --ring: #ff385c;
    --ring-rgb: 255, 56, 92;
    --ring-alpha: 1;
    --chart-1: #ff385c;
    --chart-1-rgb: 255, 56, 92;
    --chart-1-alpha: 1;
    --chart-2: #00a699;
    --chart-2-rgb: 0, 166, 153;
    --chart-2-alpha: 1;
    --chart-3: #fc642d;
    --chart-3-rgb: 252, 100, 45;
    --chart-3-alpha: 1;
    --chart-4: #484848;
    --chart-4-rgb: 72, 72, 72;
    --chart-4-alpha: 1;
    --chart-5: #6a6a6a;
    --chart-5-rgb: 106, 106, 106;
    --chart-5-alpha: 1;
    --sidebar: #ffffff;
    --sidebar-rgb: 255, 255, 255;
    --sidebar-alpha: 1;
    --sidebar-foreground: #222222;
    --sidebar-foreground-rgb: 34, 34, 34;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: #ff385c;
    --sidebar-primary-rgb: 255, 56, 92;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: #ffffff;
    --sidebar-primary-foreground-rgb: 255, 255, 255;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: #f7f7f7;
    --sidebar-accent-rgb: 247, 247, 247;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: #222222;
    --sidebar-accent-foreground-rgb: 34, 34, 34;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: #ebebeb;
    --sidebar-border-rgb: 235, 235, 235;
    --sidebar-border-alpha: 1;
    --sidebar-ring: #ff385c;
    --sidebar-ring-rgb: 255, 56, 92;
    --sidebar-ring-alpha: 1;
    --bubble-muted-hover: rgb(224, 224, 224);
    --bubble-secondary-hover: rgb(242, 242, 242);
}

/* onesamket:dracula — Dracula #bd93f9 on #282a36 — popular editor, purple haze.
   ==========================================================================================
   CONVERTED from https://github.com/onesamket/shadcn-themes — src/constants/themes.ts
   Preset: dracula. Colors from the real app palette.
   Do not edit by hand; re-run the gen-themes .NET command to refresh.
   Scoped to [data-theme] so several can be loaded at once.
   An app that ships one theme puts data-theme on <html>. */


[data-theme="dracula"] {
    --background: oklch(0.2 0.03 270);
    --background-rgb: 17, 21, 36;
    --background-alpha: 1;
    --foreground: oklch(0.92 0.01 270);
    --foreground-rgb: 226, 228, 235;
    --foreground-alpha: 1;
    --card: oklch(0.23 0.03 270);
    --card-rgb: 23, 28, 43;
    --card-alpha: 1;
    --card-foreground: oklch(0.92 0.01 270);
    --card-foreground-rgb: 226, 228, 235;
    --card-foreground-alpha: 1;
    --popover: oklch(0.23 0.03 270);
    --popover-rgb: 23, 28, 43;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.92 0.01 270);
    --popover-foreground-rgb: 226, 228, 235;
    --popover-foreground-alpha: 1;
    --primary: oklch(0.7 0.18 285);
    --bubble-tint-hover-dark: rgb(55, 50, 103);
    --bubble-tint-hover-light: rgb(209, 208, 255);
    --bubble-tint-dark: rgb(43, 39, 80);
    --bubble-tint-light: rgb(226, 226, 255);
    --primary-rgb: 149, 138, 255;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.98 0 0);
    --primary-foreground-rgb: 248, 248, 248;
    --primary-foreground-alpha: 1;
    --secondary: oklch(0.27 0.03 270);
    --secondary-rgb: 33, 38, 53;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.92 0.01 270);
    --secondary-foreground-rgb: 226, 228, 235;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.27 0.03 270);
    --muted-rgb: 33, 38, 53;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.55 0.01 270);
    --muted-foreground-rgb: 111, 113, 120;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.27 0.03 270);
    --accent-rgb: 33, 38, 53;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.92 0.01 270);
    --accent-foreground-rgb: 226, 228, 235;
    --accent-foreground-alpha: 1;
    --destructive: oklch(0.55 0.22 25);
    --destructive-rgb: 212, 9, 36;
    --destructive-alpha: 1;
    --destructive-foreground: oklch(0.98 0 0);
    --destructive-foreground-rgb: 248, 248, 248;
    --destructive-foreground-alpha: 1;
    --border: oklch(0.3 0.03 270);
    --border-rgb: 40, 45, 61;
    --border-alpha: 1;
    --input: oklch(0.3 0.03 270);
    --input-rgb: 40, 45, 61;
    --input-alpha: 1;
    --ring: oklch(0.7 0.18 285);
    --ring-rgb: 149, 138, 255;
    --ring-alpha: 1;
    --sidebar: oklch(0.18 0.03 270);
    --sidebar-rgb: 12, 17, 31;
    --sidebar-alpha: 1;
    --sidebar-foreground: oklch(0.75 0.01 270);
    --sidebar-foreground-rgb: 171, 174, 180;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: oklch(0.7 0.18 285);
    --sidebar-primary-rgb: 149, 138, 255;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: oklch(0.98 0 0);
    --sidebar-primary-foreground-rgb: 248, 248, 248;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: oklch(0.25 0.03 270);
    --sidebar-accent-rgb: 28, 33, 48;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: oklch(0.92 0.01 270);
    --sidebar-accent-foreground-rgb: 226, 228, 235;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: oklch(0.25 0.03 270);
    --sidebar-border-rgb: 28, 33, 48;
    --sidebar-border-alpha: 1;
    --sidebar-ring: oklch(0.7 0.18 285);
    --sidebar-ring-rgb: 149, 138, 255;
    --sidebar-ring-alpha: 1;
    --radius: 0.625rem;
    --radius-control: calc(0.625rem - 2px);
    --surface-border: var(--border);
    --font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    --font-serif: Georgia, "Times New Roman", serif;
    --tracking-normal: 0em;
    --elevation-1: 0 1px 2px 0 rgb(0 0 0 / 0.04);
    --elevation-2: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.06);
    --elevation-3: 0 4px 12px -2px rgb(0 0 0 / 0.10);
    --elevation-4: 0 16px 32px -8px rgb(0 0 0 / 0.14);
    --chart-1: oklch(0.7 0.18 285);
    --chart-1-rgb: 149, 138, 255;
    --chart-1-alpha: 1;
    --chart-2: oklch(0.7 0.18 285);
    --chart-2-rgb: 149, 138, 255;
    --chart-2-alpha: 1;
    --chart-3: oklch(0.27 0.03 270);
    --chart-3-rgb: 33, 38, 53;
    --chart-3-alpha: 1;
    --chart-4: oklch(0.65 0.15 30);
    --chart-4-rgb: 219, 102, 86;
    --chart-4-alpha: 1;
    --chart-5: oklch(0.55 0.08 280);
    --chart-5-rgb: 104, 108, 160;
    --chart-5-alpha: 1;
    font-family: var(--font-sans);
    --bubble-muted-hover: rgb(41, 46, 61);
    --bubble-secondary-hover: rgb(41, 46, 61);
}

[data-theme="dracula"].dark,
[data-theme="dracula"] .dark {
    --background: oklch(0.2 0.03 270);
    --background-rgb: 17, 21, 36;
    --background-alpha: 1;
    --foreground: oklch(0.92 0.01 270);
    --foreground-rgb: 226, 228, 235;
    --foreground-alpha: 1;
    --card: oklch(0.23 0.03 270);
    --card-rgb: 23, 28, 43;
    --card-alpha: 1;
    --card-foreground: oklch(0.92 0.01 270);
    --card-foreground-rgb: 226, 228, 235;
    --card-foreground-alpha: 1;
    --popover: oklch(0.23 0.03 270);
    --popover-rgb: 23, 28, 43;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.92 0.01 270);
    --popover-foreground-rgb: 226, 228, 235;
    --popover-foreground-alpha: 1;
    --primary: oklch(0.7 0.18 285);
    --bubble-tint-hover-dark: rgb(55, 50, 103);
    --bubble-tint-hover-light: rgb(209, 208, 255);
    --bubble-tint-dark: rgb(43, 39, 80);
    --bubble-tint-light: rgb(226, 226, 255);
    --primary-rgb: 149, 138, 255;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.98 0 0);
    --primary-foreground-rgb: 248, 248, 248;
    --primary-foreground-alpha: 1;
    --secondary: oklch(0.27 0.03 270);
    --secondary-rgb: 33, 38, 53;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.92 0.01 270);
    --secondary-foreground-rgb: 226, 228, 235;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.27 0.03 270);
    --muted-rgb: 33, 38, 53;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.55 0.01 270);
    --muted-foreground-rgb: 111, 113, 120;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.27 0.03 270);
    --accent-rgb: 33, 38, 53;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.92 0.01 270);
    --accent-foreground-rgb: 226, 228, 235;
    --accent-foreground-alpha: 1;
    --destructive: oklch(0.55 0.22 25);
    --destructive-rgb: 212, 9, 36;
    --destructive-alpha: 1;
    --destructive-foreground: oklch(0.98 0 0);
    --destructive-foreground-rgb: 248, 248, 248;
    --destructive-foreground-alpha: 1;
    --border: oklch(0.3 0.03 270);
    --border-rgb: 40, 45, 61;
    --border-alpha: 1;
    --input: oklch(0.3 0.03 270);
    --input-rgb: 40, 45, 61;
    --input-alpha: 1;
    --ring: oklch(0.7 0.18 285);
    --ring-rgb: 149, 138, 255;
    --ring-alpha: 1;
    --sidebar: oklch(0.18 0.03 270);
    --sidebar-rgb: 12, 17, 31;
    --sidebar-alpha: 1;
    --sidebar-foreground: oklch(0.75 0.01 270);
    --sidebar-foreground-rgb: 171, 174, 180;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: oklch(0.7 0.18 285);
    --sidebar-primary-rgb: 149, 138, 255;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: oklch(0.98 0 0);
    --sidebar-primary-foreground-rgb: 248, 248, 248;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: oklch(0.25 0.03 270);
    --sidebar-accent-rgb: 28, 33, 48;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: oklch(0.92 0.01 270);
    --sidebar-accent-foreground-rgb: 226, 228, 235;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: oklch(0.25 0.03 270);
    --sidebar-border-rgb: 28, 33, 48;
    --sidebar-border-alpha: 1;
    --sidebar-ring: oklch(0.7 0.18 285);
    --sidebar-ring-rgb: 149, 138, 255;
    --sidebar-ring-alpha: 1;
    --radius: 0.625rem;
    --radius-control: calc(0.625rem - 2px);
    --surface-border: var(--border);
    --font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    --font-serif: Georgia, "Times New Roman", serif;
    --tracking-normal: 0em;
    --elevation-1: 0 1px 2px 0 rgb(0 0 0 / 0.04);
    --elevation-2: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.06);
    --elevation-3: 0 4px 12px -2px rgb(0 0 0 / 0.10);
    --elevation-4: 0 16px 32px -8px rgb(0 0 0 / 0.14);
    --chart-1: oklch(0.7 0.18 285);
    --chart-1-rgb: 149, 138, 255;
    --chart-1-alpha: 1;
    --chart-2: oklch(0.7 0.18 285);
    --chart-2-rgb: 149, 138, 255;
    --chart-2-alpha: 1;
    --chart-3: oklch(0.27 0.03 270);
    --chart-3-rgb: 33, 38, 53;
    --chart-3-alpha: 1;
    --chart-4: oklch(0.65 0.15 30);
    --chart-4-rgb: 219, 102, 86;
    --chart-4-alpha: 1;
    --chart-5: oklch(0.55 0.08 280);
    --chart-5-rgb: 104, 108, 160;
    --chart-5-alpha: 1;
    --bubble-muted-hover: rgb(41, 46, 61);
    --bubble-secondary-hover: rgb(41, 46, 61);
}

/* customizer — the Base colour ramps and Primary rewrites the Customizer writes onto <html>.
   ==========================================================================================
   Scoped to [data-cz-base] / [data-cz-primary] attributes so they compose with any preset
   theme: the preset keeps its personality, the ramps recolor the neutrals and the accent.

   Values are Tailwind v4's own shadcn ramps (the same ones tweakcn exports), so an exported
   block matches what people already know.

   GENERATED values — regenerate with the script; do not hand-tune. */


/* ---- base colour ramps ------------------------------------------------------------------ */

[data-cz-base="zinc"] {
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.141 0.005 285.823);
    --foreground-rgb: 9, 9, 11;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.141 0.005 285.823);
    --card-foreground-rgb: 9, 9, 11;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.141 0.005 285.823);
    --popover-foreground-rgb: 9, 9, 11;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.967 0.001 286.375);
    --secondary-rgb: 244, 244, 245;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.141 0.005 285.823);
    --secondary-foreground-rgb: 9, 9, 11;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.967 0.001 286.375);
    --muted-rgb: 244, 244, 245;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.552 0.016 285.938);
    --muted-foreground-rgb: 113, 113, 123;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.967 0.001 286.375);
    --accent-rgb: 244, 244, 245;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.141 0.005 285.823);
    --accent-foreground-rgb: 9, 9, 11;
    --accent-foreground-alpha: 1;
    --border: oklch(0.92 0.004 286.32);
    --border-rgb: 228, 228, 231;
    --border-alpha: 1;
    --input: oklch(0.92 0.004 286.32);
    --input-rgb: 228, 228, 231;
    --input-alpha: 1;
    --bubble-muted-hover: rgb(230, 230, 231);
    --bubble-secondary-hover: rgb(230, 230, 231);
}

[data-cz-base="zinc"].dark,
[data-cz-base="zinc"] .dark {
    --background: oklch(0.141 0.005 285.823);
    --background-rgb: 9, 9, 11;
    --background-alpha: 1;
    --foreground: oklch(0.985 0 0);
    --foreground-rgb: 250, 250, 250;
    --foreground-alpha: 1;
    --card: oklch(0.21 0.006 285.885);
    --card-rgb: 24, 24, 27;
    --card-alpha: 1;
    --card-foreground: oklch(0.985 0 0);
    --card-foreground-rgb: 250, 250, 250;
    --card-foreground-alpha: 1;
    --popover: oklch(0.21 0.006 285.885);
    --popover-rgb: 24, 24, 27;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.985 0 0);
    --popover-foreground-rgb: 250, 250, 250;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.274 0.006 286.033);
    --secondary-rgb: 39, 39, 42;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.985 0 0);
    --secondary-foreground-rgb: 250, 250, 250;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.274 0.006 286.033);
    --muted-rgb: 39, 39, 42;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.705 0.015 286.067);
    --muted-foreground-rgb: 159, 159, 169;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.274 0.006 286.033);
    --accent-rgb: 39, 39, 42;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.985 0 0);
    --accent-foreground-rgb: 250, 250, 250;
    --accent-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --bubble-muted-hover: rgb(48, 48, 51);
    --bubble-secondary-hover: rgb(48, 48, 51);
}

[data-cz-base="slate"] {
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.129 0.042 264.695);
    --foreground-rgb: 2, 6, 24;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.129 0.042 264.695);
    --card-foreground-rgb: 2, 6, 24;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.129 0.042 264.695);
    --popover-foreground-rgb: 2, 6, 24;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.968 0.007 247.896);
    --secondary-rgb: 241, 245, 249;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.208 0.042 265.755);
    --secondary-foreground-rgb: 15, 23, 43;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.968 0.007 247.896);
    --muted-rgb: 241, 245, 249;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.554 0.046 257.417);
    --muted-foreground-rgb: 98, 116, 142;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.968 0.007 247.896);
    --accent-rgb: 241, 245, 249;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.208 0.042 265.755);
    --accent-foreground-rgb: 15, 23, 43;
    --accent-foreground-alpha: 1;
    --border: oklch(0.929 0.013 255.508);
    --border-rgb: 226, 232, 240;
    --border-alpha: 1;
    --input: oklch(0.929 0.013 255.508);
    --input-rgb: 226, 232, 240;
    --input-alpha: 1;
    --bubble-muted-hover: rgb(226, 231, 236);
    --bubble-secondary-hover: rgb(226, 231, 236);
}

[data-cz-base="slate"].dark,
[data-cz-base="slate"] .dark {
    --background: oklch(0.208 0.042 265.755);
    --background-rgb: 15, 23, 43;
    --background-alpha: 1;
    --foreground: oklch(0.984 0.003 247.858);
    --foreground-rgb: 248, 250, 252;
    --foreground-alpha: 1;
    --card: oklch(0.279 0.041 260.031);
    --card-rgb: 29, 41, 61;
    --card-alpha: 1;
    --card-foreground: oklch(0.984 0.003 247.858);
    --card-foreground-rgb: 248, 250, 252;
    --card-foreground-alpha: 1;
    --popover: oklch(0.279 0.041 260.031);
    --popover-rgb: 29, 41, 61;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.984 0.003 247.858);
    --popover-foreground-rgb: 248, 250, 252;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.334 0.046 257.281);
    --secondary-rgb: 39, 55, 78;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.984 0.003 247.858);
    --secondary-foreground-rgb: 248, 250, 252;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.279 0.041 260.031);
    --muted-rgb: 29, 41, 61;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.704 0.04 256.788);
    --muted-foreground-rgb: 144, 161, 185;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.279 0.041 260.031);
    --accent-rgb: 29, 41, 61;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.984 0.003 247.858);
    --accent-foreground-rgb: 248, 250, 252;
    --accent-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --bubble-muted-hover: rgb(37, 50, 69);
    --bubble-secondary-hover: rgb(48, 64, 86);
}

[data-cz-base="stone"] {
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.147 0.004 49.25);
    --foreground-rgb: 12, 10, 9;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.147 0.004 49.25);
    --card-foreground-rgb: 12, 10, 9;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.147 0.004 49.25);
    --popover-foreground-rgb: 12, 10, 9;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.97 0.001 106.424);
    --secondary-rgb: 245, 245, 244;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.216 0.006 56.043);
    --secondary-foreground-rgb: 28, 25, 23;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.97 0.001 106.424);
    --muted-rgb: 245, 245, 244;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.553 0.013 58.62);
    --muted-foreground-rgb: 120, 113, 107;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.97 0.001 106.424);
    --accent-rgb: 245, 245, 244;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.216 0.006 56.043);
    --accent-foreground-rgb: 28, 25, 23;
    --accent-foreground-alpha: 1;
    --border: oklch(0.923 0.003 48.717);
    --border-rgb: 231, 229, 228;
    --border-alpha: 1;
    --input: oklch(0.923 0.003 48.717);
    --input-rgb: 231, 229, 228;
    --input-alpha: 1;
    --bubble-muted-hover: rgb(231, 231, 230);
    --bubble-secondary-hover: rgb(231, 231, 230);
}

[data-cz-base="stone"].dark,
[data-cz-base="stone"] .dark {
    --background: oklch(0.216 0.006 56.043);
    --background-rgb: 28, 25, 23;
    --background-alpha: 1;
    --foreground: oklch(0.985 0.001 106.423);
    --foreground-rgb: 250, 250, 249;
    --foreground-alpha: 1;
    --card: oklch(0.268 0.007 34.298);
    --card-rgb: 41, 37, 36;
    --card-alpha: 1;
    --card-foreground: oklch(0.985 0.001 106.423);
    --card-foreground-rgb: 250, 250, 249;
    --card-foreground-alpha: 1;
    --popover: oklch(0.268 0.007 34.298);
    --popover-rgb: 41, 37, 36;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.985 0.001 106.423);
    --popover-foreground-rgb: 250, 250, 249;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.323 0.009 48.199);
    --secondary-rgb: 56, 50, 48;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.985 0.001 106.423);
    --secondary-foreground-rgb: 250, 250, 249;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.268 0.007 34.298);
    --muted-rgb: 41, 37, 36;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.709 0.01 56.259);
    --muted-foreground-rgb: 166, 160, 155;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.268 0.007 34.298);
    --accent-rgb: 41, 37, 36;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.985 0.001 106.423);
    --accent-foreground-rgb: 250, 250, 249;
    --accent-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --bubble-muted-hover: rgb(50, 46, 44);
    --bubble-secondary-hover: rgb(64, 59, 56);
}

[data-cz-base="gray"] {
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.13 0.028 261.692);
    --foreground-rgb: 3, 7, 18;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.13 0.028 261.692);
    --card-foreground-rgb: 3, 7, 18;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.13 0.028 261.692);
    --popover-foreground-rgb: 3, 7, 18;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.967 0.003 264.542);
    --secondary-rgb: 243, 244, 246;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.21 0.034 264.665);
    --secondary-foreground-rgb: 16, 24, 40;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.967 0.003 264.542);
    --muted-rgb: 243, 244, 246;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.551 0.027 264.364);
    --muted-foreground-rgb: 106, 114, 130;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.967 0.003 264.542);
    --accent-rgb: 243, 244, 246;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.21 0.034 264.665);
    --accent-foreground-rgb: 16, 24, 40;
    --accent-foreground-alpha: 1;
    --border: oklch(0.928 0.006 264.531);
    --border-rgb: 229, 231, 235;
    --border-alpha: 1;
    --input: oklch(0.928 0.006 264.531);
    --input-rgb: 229, 231, 235;
    --input-alpha: 1;
    --bubble-muted-hover: rgb(229, 230, 233);
    --bubble-secondary-hover: rgb(229, 230, 233);
}

[data-cz-base="gray"].dark,
[data-cz-base="gray"] .dark {
    --background: oklch(0.21 0.034 264.665);
    --background-rgb: 16, 24, 40;
    --background-alpha: 1;
    --foreground: oklch(0.985 0.002 247.839);
    --foreground-rgb: 249, 250, 251;
    --foreground-alpha: 1;
    --card: oklch(0.278 0.033 256.848);
    --card-rgb: 30, 41, 57;
    --card-alpha: 1;
    --card-foreground: oklch(0.985 0.002 247.839);
    --card-foreground-rgb: 249, 250, 251;
    --card-foreground-alpha: 1;
    --popover: oklch(0.278 0.033 256.848);
    --popover-rgb: 30, 41, 57;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.985 0.002 247.839);
    --popover-foreground-rgb: 249, 250, 251;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.328 0.028 261.692);
    --secondary-rgb: 45, 53, 68;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.985 0.002 247.839);
    --secondary-foreground-rgb: 249, 250, 251;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.278 0.033 256.848);
    --muted-rgb: 30, 41, 57;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.707 0.022 261.325);
    --muted-foreground-rgb: 153, 161, 175;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.278 0.033 256.848);
    --accent-rgb: 30, 41, 57;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.985 0.002 247.839);
    --accent-foreground-rgb: 249, 250, 251;
    --accent-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --bubble-muted-hover: rgb(39, 50, 65);
    --bubble-secondary-hover: rgb(53, 62, 76);
}

[data-cz-base="neutral"] {
    --background: oklch(1 0 0);
    --background-rgb: 255, 255, 255;
    --background-alpha: 1;
    --foreground: oklch(0.145 0 0);
    --foreground-rgb: 10, 10, 10;
    --foreground-alpha: 1;
    --card: oklch(1 0 0);
    --card-rgb: 255, 255, 255;
    --card-alpha: 1;
    --card-foreground: oklch(0.145 0 0);
    --card-foreground-rgb: 10, 10, 10;
    --card-foreground-alpha: 1;
    --popover: oklch(1 0 0);
    --popover-rgb: 255, 255, 255;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.145 0 0);
    --popover-foreground-rgb: 10, 10, 10;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.97 0 0);
    --secondary-rgb: 245, 245, 245;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.205 0 0);
    --secondary-foreground-rgb: 23, 23, 23;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.97 0 0);
    --muted-rgb: 245, 245, 245;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.556 0 0);
    --muted-foreground-rgb: 115, 115, 115;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.97 0 0);
    --accent-rgb: 245, 245, 245;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.205 0 0);
    --accent-foreground-rgb: 23, 23, 23;
    --accent-foreground-alpha: 1;
    --border: oklch(0.922 0 0);
    --border-rgb: 229, 229, 229;
    --border-alpha: 1;
    --input: oklch(0.922 0 0);
    --input-rgb: 229, 229, 229;
    --input-alpha: 1;
    --bubble-muted-hover: rgb(231, 231, 231);
    --bubble-secondary-hover: rgb(231, 231, 231);
}

[data-cz-base="neutral"].dark,
[data-cz-base="neutral"] .dark {
    --background: oklch(0.145 0 0);
    --background-rgb: 10, 10, 10;
    --background-alpha: 1;
    --foreground: oklch(0.985 0 0);
    --foreground-rgb: 250, 250, 250;
    --foreground-alpha: 1;
    --card: oklch(0.205 0 0);
    --card-rgb: 23, 23, 23;
    --card-alpha: 1;
    --card-foreground: oklch(0.985 0 0);
    --card-foreground-rgb: 250, 250, 250;
    --card-foreground-alpha: 1;
    --popover: oklch(0.205 0 0);
    --popover-rgb: 23, 23, 23;
    --popover-alpha: 1;
    --popover-foreground: oklch(0.985 0 0);
    --popover-foreground-rgb: 250, 250, 250;
    --popover-foreground-alpha: 1;
    --secondary: oklch(0.269 0 0);
    --secondary-rgb: 38, 38, 38;
    --secondary-alpha: 1;
    --secondary-foreground: oklch(0.985 0 0);
    --secondary-foreground-rgb: 250, 250, 250;
    --secondary-foreground-alpha: 1;
    --muted: oklch(0.269 0 0);
    --muted-rgb: 38, 38, 38;
    --muted-alpha: 1;
    --muted-foreground: oklch(0.708 0 0);
    --muted-foreground-rgb: 161, 161, 161;
    --muted-foreground-alpha: 1;
    --accent: oklch(0.269 0 0);
    --accent-rgb: 38, 38, 38;
    --accent-alpha: 1;
    --accent-foreground: oklch(0.985 0 0);
    --accent-foreground-rgb: 250, 250, 250;
    --accent-foreground-alpha: 1;
    --border: oklch(1 0 0 / 10%);
    --border-rgb: 255, 255, 255;
    --border-alpha: 0.1;
    --input: oklch(1 0 0 / 15%);
    --input-rgb: 255, 255, 255;
    --input-alpha: 0.15;
    --bubble-muted-hover: rgb(47, 47, 47);
    --bubble-secondary-hover: rgb(47, 47, 47);
}


/* ---- primary rewrites ------------------------------------------------------------------- */

[data-cz-primary="red"] {
    --primary: oklch(0.577 0.245 27.33);
    --bubble-tint-hover-dark: rgb(109, 20, 18);
    --bubble-tint-hover-light: rgb(255, 184, 171);
    --bubble-tint-dark: rgb(85, 18, 15);
    --bubble-tint-light: rgb(255, 207, 196);
    --primary-rgb: 231, 0, 11;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.577 0.245 27.33);
    --ring-rgb: 231, 0, 11;
    --ring-alpha: 1;
    --chart-1: oklch(0.577 0.245 27.33);
    --chart-1-rgb: 231, 0, 11;
    --chart-1-alpha: 1;
}

[data-cz-primary="red"].dark,
[data-cz-primary="red"] .dark {
    --primary: oklch(0.704 0.191 22.216);
    --bubble-tint-hover-dark: rgb(99, 33, 35);
    --bubble-tint-hover-light: rgb(255, 191, 187);
    --bubble-tint-dark: rgb(77, 27, 28);
    --bubble-tint-light: rgb(255, 212, 209);
    --primary-rgb: 255, 100, 103;
    --primary-alpha: 1;
    --ring: oklch(0.704 0.191 22.216);
    --ring-rgb: 255, 100, 103;
    --ring-alpha: 1;
    --chart-1: oklch(0.704 0.191 22.216);
    --chart-1-rgb: 255, 100, 103;
    --chart-1-alpha: 1;
}

[data-cz-primary="rose"] {
    --primary: oklch(0.585 0.22 3.96);
    --bubble-tint-hover-dark: rgb(102, 26, 52);
    --bubble-tint-hover-light: rgb(255, 185, 207);
    --bubble-tint-dark: rgb(79, 22, 41);
    --bubble-tint-light: rgb(255, 208, 225);
    --primary-rgb: 219, 32, 109;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.585 0.22 3.96);
    --ring-rgb: 219, 32, 109;
    --ring-alpha: 1;
    --chart-1: oklch(0.585 0.22 3.96);
    --chart-1-rgb: 219, 32, 109;
    --chart-1-alpha: 1;
}

[data-cz-primary="rose"].dark,
[data-cz-primary="rose"] .dark {
    --primary: oklch(0.645 0.246 16.44);
    --bubble-tint-hover-dark: rgb(108, 18, 35);
    --bubble-tint-hover-light: rgb(255, 182, 187);
    --bubble-tint-dark: rgb(84, 17, 28);
    --bubble-tint-light: rgb(255, 205, 209);
    --primary-rgb: 255, 32, 86;
    --primary-alpha: 1;
    --ring: oklch(0.645 0.246 16.44);
    --ring-rgb: 255, 32, 86;
    --ring-alpha: 1;
    --chart-1: oklch(0.645 0.246 16.44);
    --chart-1-rgb: 255, 32, 86;
    --chart-1-alpha: 1;
}

[data-cz-primary="orange"] {
    --primary: oklch(0.646 0.196 41.11);
    --bubble-tint-hover-dark: rgb(99, 36, 9);
    --bubble-tint-hover-light: rgb(255, 194, 166);
    --bubble-tint-dark: rgb(77, 29, 9);
    --bubble-tint-light: rgb(255, 215, 192);
    --primary-rgb: 235, 87, 7;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.646 0.196 41.11);
    --ring-rgb: 235, 87, 7;
    --ring-alpha: 1;
    --chart-1: oklch(0.646 0.196 41.11);
    --chart-1-rgb: 235, 87, 7;
    --chart-1-alpha: 1;
}

[data-cz-primary="orange"].dark,
[data-cz-primary="orange"] .dark {
    --primary: oklch(0.705 0.213 47.6);
    --bubble-tint-hover-dark: rgb(100, 35, 0);
    --bubble-tint-hover-light: rgb(255, 194, 154);
    --bubble-tint-dark: rgb(78, 29, 0);
    --bubble-tint-light: rgb(255, 215, 183);
    --primary-rgb: 255, 105, 0;
    --primary-alpha: 1;
    --ring: oklch(0.705 0.213 47.6);
    --ring-rgb: 255, 105, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.705 0.213 47.6);
    --chart-1-rgb: 255, 105, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="amber"] {
    --primary: oklch(0.666 0.179 58.32);
    --bubble-tint-hover-dark: rgb(92, 44, 0);
    --bubble-tint-hover-light: rgb(255, 201, 157);
    --bubble-tint-dark: rgb(71, 35, 0);
    --bubble-tint-light: rgb(255, 221, 185);
    --primary-rgb: 225, 113, 0;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.666 0.179 58.32);
    --ring-rgb: 225, 113, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.666 0.179 58.32);
    --chart-1-rgb: 225, 113, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="amber"].dark,
[data-cz-primary="amber"] .dark {
    --primary: oklch(0.769 0.188 70.08);
    --bubble-tint-hover-dark: rgb(88, 47, 0);
    --bubble-tint-hover-light: rgb(255, 205, 147);
    --bubble-tint-dark: rgb(69, 37, 0);
    --bubble-tint-light: rgb(255, 224, 178);
    --primary-rgb: 254, 154, 0;
    --primary-alpha: 1;
    --ring: oklch(0.769 0.188 70.08);
    --ring-rgb: 254, 154, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.769 0.188 70.08);
    --chart-1-rgb: 254, 154, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="yellow"] {
    --primary: oklch(0.795 0.184 86.05);
    --bubble-tint-hover-dark: rgb(80, 53, 0);
    --bubble-tint-hover-light: rgb(243, 212, 144);
    --bubble-tint-dark: rgb(62, 42, 0);
    --bubble-tint-light: rgb(254, 229, 176);
    --primary-rgb: 240, 177, 0;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.795 0.184 86.05);
    --ring-rgb: 240, 177, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.795 0.184 86.05);
    --chart-1-rgb: 240, 177, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="yellow"].dark,
[data-cz-primary="yellow"] .dark {
    --primary: oklch(0.795 0.184 86.05);
    --bubble-tint-hover-dark: rgb(80, 53, 0);
    --bubble-tint-hover-light: rgb(243, 212, 144);
    --bubble-tint-dark: rgb(62, 42, 0);
    --bubble-tint-light: rgb(254, 229, 176);
    --primary-rgb: 240, 177, 0;
    --primary-alpha: 1;
    --ring: oklch(0.795 0.184 86.05);
    --ring-rgb: 240, 177, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.795 0.184 86.05);
    --chart-1-rgb: 240, 177, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="lime"] {
    --primary: oklch(0.648 0.2 131.68);
    --bubble-tint-hover-dark: rgb(38, 68, 0);
    --bubble-tint-hover-light: rgb(192, 230, 161);
    --bubble-tint-dark: rgb(30, 53, 2);
    --bubble-tint-light: rgb(213, 244, 188);
    --primary-rgb: 94, 165, 0;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.648 0.2 131.68);
    --ring-rgb: 94, 165, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.648 0.2 131.68);
    --chart-1-rgb: 94, 165, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="lime"].dark,
[data-cz-primary="lime"] .dark {
    --primary: oklch(0.768 0.233 130.85);
    --bubble-tint-hover-dark: rgb(35, 69, 0);
    --bubble-tint-hover-light: rgb(189, 232, 149);
    --bubble-tint-dark: rgb(28, 54, 0);
    --bubble-tint-light: rgb(210, 245, 180);
    --primary-rgb: 124, 207, 0;
    --primary-alpha: 1;
    --ring: oklch(0.768 0.233 130.85);
    --ring-rgb: 124, 207, 0;
    --ring-alpha: 1;
    --chart-1: oklch(0.768 0.233 130.85);
    --chart-1-rgb: 124, 207, 0;
    --chart-1-alpha: 1;
}

[data-cz-primary="green"] {
    --primary: oklch(0.527 0.154 150.07);
    --bubble-tint-hover-dark: rgb(22, 69, 36);
    --bubble-tint-hover-light: rgb(180, 230, 189);
    --bubble-tint-dark: rgb(19, 54, 29);
    --bubble-tint-light: rgb(204, 244, 211);
    --primary-rgb: 0, 130, 54;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.527 0.154 150.07);
    --ring-rgb: 0, 130, 54;
    --ring-alpha: 1;
    --chart-1: oklch(0.527 0.154 150.07);
    --chart-1-rgb: 0, 130, 54;
    --chart-1-alpha: 1;
}

[data-cz-primary="green"].dark,
[data-cz-primary="green"] .dark {
    --primary: oklch(0.723 0.219 149.58);
    --bubble-tint-hover-dark: rgb(0, 73, 23);
    --bubble-tint-hover-light: rgb(163, 236, 177);
    --bubble-tint-dark: rgb(0, 57, 19);
    --bubble-tint-light: rgb(191, 249, 201);
    --primary-rgb: 0, 201, 80;
    --primary-alpha: 1;
    --ring: oklch(0.723 0.219 149.58);
    --ring-rgb: 0, 201, 80;
    --ring-alpha: 1;
    --chart-1: oklch(0.723 0.219 149.58);
    --chart-1-rgb: 0, 201, 80;
    --chart-1-alpha: 1;
}

[data-cz-primary="emerald"] {
    --primary: oklch(0.596 0.145 163.23);
    --bubble-tint-hover-dark: rgb(5, 70, 48);
    --bubble-tint-hover-light: rgb(172, 231, 202);
    --bubble-tint-dark: rgb(9, 55, 37);
    --bubble-tint-light: rgb(198, 245, 221);
    --primary-rgb: 0, 153, 102;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.596 0.145 163.23);
    --ring-rgb: 0, 153, 102;
    --ring-alpha: 1;
    --chart-1: oklch(0.596 0.145 163.23);
    --chart-1-rgb: 0, 153, 102;
    --chart-1-alpha: 1;
}

[data-cz-primary="emerald"].dark,
[data-cz-primary="emerald"] .dark {
    --primary: oklch(0.696 0.17 162.48);
    --bubble-tint-hover-dark: rgb(0, 72, 45);
    --bubble-tint-hover-light: rgb(164, 234, 199);
    --bubble-tint-dark: rgb(0, 56, 35);
    --bubble-tint-light: rgb(192, 247, 219);
    --primary-rgb: 0, 188, 125;
    --primary-alpha: 1;
    --ring: oklch(0.696 0.17 162.48);
    --ring-rgb: 0, 188, 125;
    --ring-alpha: 1;
    --chart-1: oklch(0.696 0.17 162.48);
    --chart-1-rgb: 0, 188, 125;
    --chart-1-alpha: 1;
}

[data-cz-primary="teal"] {
    --primary: oklch(0.6 0.118 184.7);
    --bubble-tint-hover-dark: rgb(6, 68, 62);
    --bubble-tint-hover-light: rgb(172, 229, 220);
    --bubble-tint-dark: rgb(9, 53, 49);
    --bubble-tint-light: rgb(198, 243, 236);
    --primary-rgb: 0, 150, 137;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.6 0.118 184.7);
    --ring-rgb: 0, 150, 137;
    --ring-alpha: 1;
    --chart-1: oklch(0.6 0.118 184.7);
    --chart-1-rgb: 0, 150, 137;
    --chart-1-alpha: 1;
}

[data-cz-primary="teal"].dark,
[data-cz-primary="teal"] .dark {
    --primary: oklch(0.711 0.143 215.22);
    --bubble-tint-hover-dark: rgb(0, 67, 82);
    --bubble-tint-hover-light: rgb(161, 228, 245);
    --bubble-tint-dark: rgb(0, 53, 64);
    --bubble-tint-light: rgb(189, 242, 255);
    --primary-rgb: 0, 183, 217;
    --primary-alpha: 1;
    --ring: oklch(0.711 0.143 215.22);
    --ring-rgb: 0, 183, 217;
    --ring-alpha: 1;
    --chart-1: oklch(0.711 0.143 215.22);
    --chart-1-rgb: 0, 183, 217;
    --chart-1-alpha: 1;
}

[data-cz-primary="cyan"] {
    --primary: oklch(0.609 0.126 221.72);
    --bubble-tint-hover-dark: rgb(3, 66, 82);
    --bubble-tint-hover-light: rgb(170, 226, 245);
    --bubble-tint-dark: rgb(7, 51, 64);
    --bubble-tint-light: rgb(196, 240, 255);
    --primary-rgb: 0, 146, 184;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.609 0.126 221.72);
    --ring-rgb: 0, 146, 184;
    --ring-alpha: 1;
    --chart-1: oklch(0.609 0.126 221.72);
    --chart-1-rgb: 0, 146, 184;
    --chart-1-alpha: 1;
}

[data-cz-primary="cyan"].dark,
[data-cz-primary="cyan"] .dark {
    --primary: oklch(0.715 0.143 215.22);
    --bubble-tint-hover-dark: rgb(0, 67, 82);
    --bubble-tint-hover-light: rgb(161, 228, 245);
    --bubble-tint-dark: rgb(0, 53, 64);
    --bubble-tint-light: rgb(189, 242, 255);
    --primary-rgb: 0, 184, 219;
    --primary-alpha: 1;
    --ring: oklch(0.715 0.143 215.22);
    --ring-rgb: 0, 184, 219;
    --ring-alpha: 1;
    --chart-1: oklch(0.715 0.143 215.22);
    --chart-1-rgb: 0, 184, 219;
    --chart-1-alpha: 1;
}

[data-cz-primary="sky"] {
    --primary: oklch(0.588 0.158 241.97);
    --bubble-tint-hover-dark: rgb(6, 62, 96);
    --bubble-tint-hover-light: rgb(170, 223, 255);
    --bubble-tint-dark: rgb(9, 49, 75);
    --bubble-tint-light: rgb(196, 238, 255);
    --primary-rgb: 0, 132, 209;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.588 0.158 241.97);
    --ring-rgb: 0, 132, 209;
    --ring-alpha: 1;
    --chart-1: oklch(0.588 0.158 241.97);
    --chart-1-rgb: 0, 132, 209;
    --chart-1-alpha: 1;
}

[data-cz-primary="sky"].dark,
[data-cz-primary="sky"] .dark {
    --primary: oklch(0.746 0.16 232.66);
    --bubble-tint-hover-dark: rgb(0, 65, 93);
    --bubble-tint-hover-light: rgb(162, 225, 255);
    --bubble-tint-dark: rgb(0, 51, 72);
    --bubble-tint-light: rgb(190, 240, 255);
    --primary-rgb: 0, 188, 255;
    --primary-alpha: 1;
    --ring: oklch(0.746 0.16 232.66);
    --ring-rgb: 0, 188, 255;
    --ring-alpha: 1;
    --chart-1: oklch(0.746 0.16 232.66);
    --chart-1-rgb: 0, 188, 255;
    --chart-1-alpha: 1;
}

[data-cz-primary="blue"] {
    --primary: oklch(0.546 0.245 262.88);
    --bubble-tint-hover-dark: rgb(21, 53, 121);
    --bubble-tint-hover-light: rgb(173, 215, 255);
    --bubble-tint-dark: rgb(17, 42, 94);
    --bubble-tint-light: rgb(197, 232, 255);
    --primary-rgb: 21, 93, 252;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.546 0.245 262.88);
    --ring-rgb: 21, 93, 252;
    --ring-alpha: 1;
    --chart-1: oklch(0.546 0.245 262.88);
    --chart-1-rgb: 21, 93, 252;
    --chart-1-alpha: 1;
}

[data-cz-primary="blue"].dark,
[data-cz-primary="blue"] .dark {
    --primary: oklch(0.623 0.214 259.82);
    --bubble-tint-hover-dark: rgb(21, 56, 113);
    --bubble-tint-hover-light: rgb(174, 217, 255);
    --bubble-tint-dark: rgb(17, 44, 88);
    --bubble-tint-light: rgb(199, 234, 255);
    --primary-rgb: 43, 127, 255;
    --primary-alpha: 1;
    --ring: oklch(0.623 0.214 259.82);
    --ring-rgb: 43, 127, 255;
    --ring-alpha: 1;
    --chart-1: oklch(0.623 0.214 259.82);
    --chart-1-rgb: 43, 127, 255;
    --chart-1-alpha: 1;
}

[data-cz-primary="indigo"] {
    --primary: oklch(0.511 0.262 276.97);
    --bubble-tint-hover-dark: rgb(45, 45, 124);
    --bubble-tint-hover-light: rgb(194, 207, 255);
    --bubble-tint-dark: rgb(35, 36, 97);
    --bubble-tint-light: rgb(214, 226, 255);
    --primary-rgb: 79, 57, 246;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.511 0.262 276.97);
    --ring-rgb: 79, 57, 246;
    --ring-alpha: 1;
    --chart-1: oklch(0.511 0.262 276.97);
    --chart-1-rgb: 79, 57, 246;
    --chart-1-alpha: 1;
}

[data-cz-primary="indigo"].dark,
[data-cz-primary="indigo"] .dark {
    --primary: oklch(0.585 0.233 277.12);
    --bubble-tint-hover-dark: rgb(46, 48, 117);
    --bubble-tint-hover-light: rgb(196, 209, 255);
    --bubble-tint-dark: rgb(36, 38, 91);
    --bubble-tint-light: rgb(216, 227, 255);
    --primary-rgb: 97, 95, 255;
    --primary-alpha: 1;
    --ring: oklch(0.585 0.233 277.12);
    --ring-rgb: 97, 95, 255;
    --ring-alpha: 1;
    --chart-1: oklch(0.585 0.233 277.12);
    --chart-1-rgb: 97, 95, 255;
    --chart-1-alpha: 1;
}

[data-cz-primary="violet"] {
    --primary: oklch(0.541 0.281 293.01);
    --bubble-tint-hover-dark: rgb(64, 35, 123);
    --bubble-tint-hover-light: rgb(219, 197, 255);
    --bubble-tint-dark: rgb(50, 29, 96);
    --bubble-tint-light: rgb(234, 218, 255);
    --primary-rgb: 127, 34, 254;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.541 0.281 293.01);
    --ring-rgb: 127, 34, 254;
    --ring-alpha: 1;
    --chart-1: oklch(0.541 0.281 293.01);
    --chart-1-rgb: 127, 34, 254;
    --chart-1-alpha: 1;
}

[data-cz-primary="violet"].dark,
[data-cz-primary="violet"] .dark {
    --primary: oklch(0.606 0.25 292.72);
    --bubble-tint-hover-dark: rgb(63, 40, 116);
    --bubble-tint-hover-light: rgb(218, 200, 255);
    --bubble-tint-dark: rgb(49, 32, 90);
    --bubble-tint-light: rgb(233, 220, 255);
    --primary-rgb: 142, 81, 255;
    --primary-alpha: 1;
    --ring: oklch(0.606 0.25 292.72);
    --ring-rgb: 142, 81, 255;
    --ring-alpha: 1;
    --chart-1: oklch(0.606 0.25 292.72);
    --chart-1-rgb: 142, 81, 255;
    --chart-1-alpha: 1;
}

[data-cz-primary="purple"] {
    --primary: oklch(0.558 0.288 302.32);
    --bubble-tint-hover-dark: rgb(74, 29, 119);
    --bubble-tint-hover-light: rgb(234, 192, 255);
    --bubble-tint-dark: rgb(58, 25, 92);
    --bubble-tint-light: rgb(246, 214, 255);
    --primary-rgb: 152, 16, 250;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.558 0.288 302.32);
    --ring-rgb: 152, 16, 250;
    --ring-alpha: 1;
    --chart-1: oklch(0.558 0.288 302.32);
    --chart-1-rgb: 152, 16, 250;
    --chart-1-alpha: 1;
}

[data-cz-primary="purple"].dark,
[data-cz-primary="purple"] .dark {
    --primary: oklch(0.627 0.265 303.9);
    --bubble-tint-hover-dark: rgb(74, 33, 113);
    --bubble-tint-hover-light: rgb(234, 193, 255);
    --bubble-tint-dark: rgb(58, 27, 88);
    --bubble-tint-light: rgb(247, 215, 255);
    --primary-rgb: 173, 70, 255;
    --primary-alpha: 1;
    --ring: oklch(0.627 0.265 303.9);
    --ring-rgb: 173, 70, 255;
    --ring-alpha: 1;
    --chart-1: oklch(0.627 0.265 303.9);
    --chart-1-rgb: 173, 70, 255;
    --chart-1-alpha: 1;
}

[data-cz-primary="fuchsia"] {
    --primary: oklch(0.591 0.293 322.9);
    --bubble-tint-hover-dark: rgb(92, 17, 101);
    --bubble-tint-hover-light: rgb(255, 182, 255);
    --bubble-tint-dark: rgb(72, 16, 79);
    --bubble-tint-light: rgb(255, 206, 255);
    --primary-rgb: 200, 0, 222;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.591 0.293 322.9);
    --ring-rgb: 200, 0, 222;
    --ring-alpha: 1;
    --chart-1: oklch(0.591 0.293 322.9);
    --chart-1-rgb: 200, 0, 222;
    --chart-1-alpha: 1;
}

[data-cz-primary="fuchsia"].dark,
[data-cz-primary="fuchsia"] .dark {
    --primary: oklch(0.667 0.295 322.15);
    --bubble-tint-hover-dark: rgb(91, 17, 102);
    --bubble-tint-hover-light: rgb(255, 182, 255);
    --bubble-tint-dark: rgb(71, 16, 80);
    --bubble-tint-light: rgb(255, 206, 255);
    --primary-rgb: 225, 42, 251;
    --primary-alpha: 1;
    --ring: oklch(0.667 0.295 322.15);
    --ring-rgb: 225, 42, 251;
    --ring-alpha: 1;
    --chart-1: oklch(0.667 0.295 322.15);
    --chart-1-rgb: 225, 42, 251;
    --chart-1-alpha: 1;
}

[data-cz-primary="pink"] {
    --primary: oklch(0.592 0.249 0.73);
    --bubble-tint-hover-dark: rgb(106, 17, 55);
    --bubble-tint-hover-light: rgb(255, 180, 211);
    --bubble-tint-dark: rgb(82, 16, 43);
    --bubble-tint-light: rgb(255, 204, 228);
    --primary-rgb: 230, 0, 118;
    --primary-alpha: 1;
    --primary-foreground: oklch(0.985 0 0);
    --primary-foreground-rgb: 250, 250, 250;
    --primary-foreground-alpha: 1;
    --ring: oklch(0.592 0.249 0.73);
    --ring-rgb: 230, 0, 118;
    --ring-alpha: 1;
    --chart-1: oklch(0.592 0.249 0.73);
    --chart-1-rgb: 230, 0, 118;
    --chart-1-alpha: 1;
}

[data-cz-primary="pink"].dark,
[data-cz-primary="pink"] .dark {
    --primary: oklch(0.656 0.241 354.31);
    --bubble-tint-hover-dark: rgb(102, 21, 62);
    --bubble-tint-hover-light: rgb(255, 182, 220);
    --bubble-tint-dark: rgb(80, 19, 49);
    --bubble-tint-light: rgb(255, 206, 236);
    --primary-rgb: 246, 51, 154;
    --primary-alpha: 1;
    --ring: oklch(0.656 0.241 354.31);
    --ring-rgb: 246, 51, 154;
    --ring-alpha: 1;
    --chart-1: oklch(0.656 0.241 354.31);
    --chart-1-rgb: 246, 51, 154;
    --chart-1-alpha: 1;
}

*, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x:  ; --tw-pan-y:  ; --tw-pinch-zoom:  ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position:  ; --tw-gradient-via-position:  ; --tw-gradient-to-position:  ; --tw-ordinal:  ; --tw-slashed-zero:  ; --tw-numeric-figure:  ; --tw-numeric-spacing:  ; --tw-numeric-fraction:  ; --tw-ring-inset:  ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(147 197 253 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur:  ; --tw-brightness:  ; --tw-contrast:  ; --tw-grayscale:  ; --tw-hue-rotate:  ; --tw-invert:  ; --tw-saturate:  ; --tw-sepia:  ; --tw-drop-shadow:  ; --tw-backdrop-blur:  ; --tw-backdrop-brightness:  ; --tw-backdrop-contrast:  ; --tw-backdrop-grayscale:  ; --tw-backdrop-hue-rotate:  ; --tw-backdrop-invert:  ; --tw-backdrop-opacity:  ; --tw-backdrop-saturate:  ; --tw-backdrop-sepia:  ; --tw-contain-size:  ; --tw-contain-layout:  ; --tw-contain-paint:  ; --tw-contain-style:  ; }

::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x:  ; --tw-pan-y:  ; --tw-pinch-zoom:  ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position:  ; --tw-gradient-via-position:  ; --tw-gradient-to-position:  ; --tw-ordinal:  ; --tw-slashed-zero:  ; --tw-numeric-figure:  ; --tw-numeric-spacing:  ; --tw-numeric-fraction:  ; --tw-ring-inset:  ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(147 197 253 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur:  ; --tw-brightness:  ; --tw-contrast:  ; --tw-grayscale:  ; --tw-hue-rotate:  ; --tw-invert:  ; --tw-saturate:  ; --tw-sepia:  ; --tw-drop-shadow:  ; --tw-backdrop-blur:  ; --tw-backdrop-brightness:  ; --tw-backdrop-contrast:  ; --tw-backdrop-grayscale:  ; --tw-backdrop-hue-rotate:  ; --tw-backdrop-invert:  ; --tw-backdrop-opacity:  ; --tw-backdrop-saturate:  ; --tw-backdrop-sepia:  ; --tw-contain-size:  ; --tw-contain-layout:  ; --tw-contain-paint:  ; --tw-contain-style:  ; }

/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com *//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: var(--color-gray-200); /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: var(--font-sans); /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: var(--font-mono); /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: var(--color-gray-400); /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: var(--color-gray-400); /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
    *,
    ::after,
    ::before,
    ::backdrop,
    ::file-selector-button {
        border-color: var(--border);
        outline-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5));
        outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
    body { --tw-bg-opacity: 1; background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-bg-opacity, 1))); --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.\!container { width: 100% !important; }
.container { width: 100%; }
@media (min-width: 640px) {
 .\!container { max-width: 640px !important; }
 .container { max-width: 640px; } }
@media (min-width: 768px) {
 .\!container { max-width: 768px !important; }
 .container { max-width: 768px; } }
@media (min-width: 1024px) {
 .\!container { max-width: 1024px !important; }
 .container { max-width: 1024px; } }
@media (min-width: 1280px) {
 .\!container { max-width: 1280px !important; }
 .container { max-width: 1280px; } }
@media (min-width: 1536px) {
 .\!container { max-width: 1536px !important; }
 .container { max-width: 1536px; } }

    /* ---- Dialog / Sheet / AlertDialog -----------------------------------------------
       A modal <dialog> gets the focus trap, the inert background, Escape, and the top layer
       from the user agent. Tailwind's preflight sets `margin: 0` on every element, which
       flattens the user-agent `margin: auto` that centres a modal dialog — so it must be put
       back, or the dialog opens hard against the top-left corner. The <dialog> itself is a
       bare frame; the shadcn-styled panel is its single child, so the animation has a box
       with a real size to scale. */
    /* command-dialog belongs in this list too. It was missing, so the palette kept the
       preflight's margin:0 and opened hard against the top-left corner — including the docs'
       own Ctrl-K search, which is the first dialog most visitors meet. shadcn additionally
       lifts a palette above centre: dead-centre reads fine for a confirmation, but a palette
       is something you type into, and the eye expects it where launchers put it. */
    /* width 100% + grid centring, because the CONTENT's `w-full max-w-lg` needs a definite
       width to resolve against. With the frame at fit-content that reference was circular, the
       browser fell back to shrink-to-fit, and a dialog was as wide as its longest line — 278px
       where shadcn shows 512. The alert dialog only looked right because its sample text
       happened to reach the cap. */
    /* [open], and that is load-bearing: the UA hides a closed <dialog> with display:none, and
       an unconditional author `display:grid` overrides the UA sheet — every CLOSED dialog then
       became an invisible full-page surface that swallowed clicks. The page looked idle and
       nothing on it worked. */
    [data-slot="dialog"][open],
    [data-slot="alert-dialog"][open] {
        inline-size: 100%;
        display: grid;
        justify-items: center;
    }

    [data-slot="dialog"],
    [data-slot="alert-dialog"],
    [data-slot="command-dialog"] {
        margin: auto;
        padding: 0;
        border: 0;
        max-width: none;
        max-height: none;
        background: transparent;
        color: inherit;
        overflow: visible;
    }
    [data-slot="command-dialog"] {
        margin-block-start: 12vh;
        inline-size: min(32rem, calc(100vw - 2rem));
    }
    /* The box upstream's DialogContent supplies. On the frame's child rather than in the class
       list, because parity compares the inner <Command> against the plain command recipe. */
    [data-slot="command-dialog"] > [data-slot="command"] {
        border: 1px solid var(--border);
        border-radius: var(--radius);
        box-shadow: var(--elevation-4);
    }

    [data-slot="dialog"]::backdrop,
    [data-slot="alert-dialog"]::backdrop,
    [data-slot="command-dialog"]::backdrop,
    [data-slot="sheet"]::backdrop {
        background: rgb(0 0 0 / 0.5);
        animation: sh-fade-in 150ms ease-out;
    }
    [data-slot="dialog"][open] > *,
    [data-slot="alert-dialog"][open] > *,
    [data-slot="command-dialog"][open] > * {
        animation: sh-dialog-in 200ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* The panel is the containing block for its own corner button. Upstream's DialogContent is
       `fixed`, which this port drops because the frame does the centring — and dropping it took
       the positioning context with it, so `absolute top-4 end-4` resolved against the VIEWPORT
       and the close X drew in the corner of the page, outside the dialog it belongs to.

       Also the panel's own scrolling: a dialog taller than the screen has to keep its box and
       let the middle scroll, not spill its footer down the page. The height cap is the same
       one shadcn uses; grid-template-rows keeps the header and footer at their natural size and
       gives everything between them what is left. */
    [data-slot="dialog"] > [data-slot="dialog-content"],
    [data-slot="alert-dialog"] > [data-slot="alert-dialog-content"] {
        position: relative;
        max-block-size: calc(100dvh - 4rem);
        grid-template-rows: auto minmax(0, 1fr) auto;
        overflow: hidden;
    }
    /* The corner button and the title share the top row, and in Arabic they share the same
       SIDE of it — the X is at the reading end, and so is the end of a long title, so the two
       collided. Space for it, only when there is one. */
    [data-slot="dialog-content"]:has(> [data-slot="dialog-close"]) > [data-slot="dialog-header"],
    [data-slot="alert-dialog-content"]:has(> [data-slot="dialog-close"]) > [data-slot="alert-dialog-header"] {
        padding-inline-end: 1.5rem;
    }

    /* Scrolling surfaces do not draw a bar. That is shadcn's own choice nearly everywhere — a
       menu, a listbox, a command palette, a code block and a dialog all scroll with no bar down
       the inside of them, because on a small floating surface a bar reads as a second window
       rather than as part of this one. What scrolls under the edge is the affordance.

       This hides the bar, not the scrolling: the wheel, the drag, the keyboard and every
       programmatic scroll are untouched.

       The one deliberate exception is the scroll area, whose entire job is to SHOW a scrollbar —
       it is this port's answer to the pair Radix draws in script, and hiding it would leave a
       component that does nothing. */
    [data-slot="select-content"],
    [data-slot="command-list"],
    [data-slot="combobox-list"],
    [data-slot="dropdown-menu-content"],
    [data-slot="context-menu-content"],
    [data-slot="menubar-content"],
    [data-slot$="sub-content"],
    [data-slot="popover-content"],
    [data-slot="navigation-menu-content"],
    [data-slot="table-container"],
    [data-slot="message-scroller-viewport"],
    [data-slot="code-block-pre"],
    [data-slot="sidebar-content"],
    [data-slot="dialog-content"] *,
    [data-slot="alert-dialog-content"] *,
    [data-slot="drawer-content"] *,
    [data-slot="sheet-content"] * {
        scrollbar-width: none;
    }
    [data-slot="select-content"]::-webkit-scrollbar,
    [data-slot="command-list"]::-webkit-scrollbar,
    [data-slot="combobox-list"]::-webkit-scrollbar,
    [data-slot="dropdown-menu-content"]::-webkit-scrollbar,
    [data-slot="context-menu-content"]::-webkit-scrollbar,
    [data-slot="menubar-content"]::-webkit-scrollbar,
    [data-slot$="sub-content"]::-webkit-scrollbar,
    [data-slot="popover-content"]::-webkit-scrollbar,
    [data-slot="navigation-menu-content"]::-webkit-scrollbar,
    [data-slot="table-container"]::-webkit-scrollbar,
    [data-slot="message-scroller-viewport"]::-webkit-scrollbar,
    [data-slot="code-block-pre"]::-webkit-scrollbar,
    [data-slot="sidebar-content"]::-webkit-scrollbar,
    [data-slot="dialog-content"] *::-webkit-scrollbar,
    [data-slot="alert-dialog-content"] *::-webkit-scrollbar,
    [data-slot="drawer-content"] *::-webkit-scrollbar,
    [data-slot="sheet-content"] *::-webkit-scrollbar {
        display: none;
    }
    /* Nothing floating is ever wider than the window it floats in. The part that hangs off is
       unreachable, because a popover has nothing to scroll it back into view. */
    [popover][data-slot] {
        max-inline-size: calc(100vw - 1rem);
    }

    /* And a panel with no width class of its own sizes to its content. The user agent starts a
       popover at fit-content, but this port POSITIONS the panel itself — upstream nests it in a
       Radix positioner that is already fit-content — and a positioned box with `width: auto`
       stretches to the space it is given instead. The date picker went full-window, and the
       calendar's right-hand half sat off the edge of the screen.

       :where() so this stays at zero specificity: any w-* class the caller writes still wins,
       which is how the menus and lists that DO name a width keep it. */
    [popover][data-slot]:where(:not([class*="w-"])) {
        inline-size: -moz-fit-content;
        inline-size: fit-content;
    }

    /* Put it back where it is the point. */
    [data-slot="scroll-area-viewport"]::-webkit-scrollbar {
        display: initial;
    }

    /* A dialog with nothing between its header and footer must not be stretched to the cap by
       the 1fr row: only a panel that actually has a middle gets one. */
    [data-slot="dialog"] > [data-slot="dialog-content"]:not(:has(> [data-slot="dialog-header"])),
    [data-slot="dialog"] > [data-slot="dialog-content"]:not(:has(> [data-slot="dialog-footer"])) {
        grid-template-rows: none;
    }

    [data-slot="sheet"] {
        margin: 0;
        padding: 0;
        border: 0;
        max-width: none;
        max-height: none;
        background: transparent;
        color: inherit;
        overflow: visible;
    }
    [data-slot="sheet"][data-side="right"]  { margin-left: auto; }
    [data-slot="sheet"][data-side="left"]   { margin-right: auto; }
    [data-slot="sheet"][data-side="top"]    { margin-bottom: auto; }
    [data-slot="sheet"][data-side="bottom"] { margin-top: auto; }
    [data-slot="sheet"][data-side="right"][open]  > * { animation: sh-slide-from-right 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="sheet"][data-side="left"][open]   > * { animation: sh-slide-from-left 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="sheet"][data-side="top"][open]    > * { animation: sh-slide-from-top 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="sheet"][data-side="bottom"][open] > * { animation: sh-slide-from-bottom 320ms cubic-bezier(0.32, 0.72, 0, 1); }

    /* ---- MessageScroller --------------------------------------------------------------
       overflow-anchor is the whole "stay pinned to the newest message" behaviour, in CSS: the
       browser holds the scroll position against content inserted above the anchor, so a thread
       that grows at the bottom does not jump while you are reading the middle of it. Chat
       libraries reimplement this with a scroll observer; the browser has done it since 2018. */
    [data-slot="message-scroller-viewport"] {
        overflow-y: auto;
        overflow-anchor: auto;
        overscroll-behavior-y: contain;
    }

    /* ---- Drawer ---------------------------------------------------------------------
       A sheet you can drag shut. The frame rules are the sheet's; what differs is that vaul
       rounds the two corners facing into the screen and leaves the two against the edge square,
       which is what makes it read as a sheet of paper being pulled rather than a floating card.

       The <dialog> must be given a size of its own: its only child is position:fixed, so without
       this the frame collapses to nothing, the panel still paints, and every measurement of it —
       including "is it visible" — comes back wrong. */
    [data-slot="drawer"] {
        margin: 0;
        padding: 0;
        border: 0;
        inline-size: 100%;
        block-size: 100%;
        max-width: none;
        max-height: none;
        background: transparent;
        color: inherit;
        overflow: visible;
    }
    [data-slot="drawer"]::backdrop {
        background: rgb(0 0 0 / 0.5);
        animation: sh-fade-in 150ms ease-out;
    }

    /* A non-modal drawer is a full-screen frame that must not swallow the page it is not
       covering. The frame is 100% x 100% because its only child is position:fixed and a
       collapsed frame measures wrong — so the frame passes the pointer through and the panel
       takes it back. A modal one keeps the whole area, because the whole area is its backdrop. */
    [data-slot="drawer"][data-modal="false"] { pointer-events: none; }
    [data-slot="drawer"][data-modal="false"] > [data-slot="drawer-content"] { pointer-events: auto; }

    /* A drawer floats: it stands off the edges of the window by a small margin and is rounded
       on every corner, which is what shadcn's current one does. Flush against the edge with two
       rounded corners is the older vaul look, and it reads as part of the browser chrome rather
       than as a panel over the page — the shadow has nothing to fall on and the rounding stops
       halfway. The margin is the same 0.5rem on every side, so the panel keeps its shape
       whichever edge it comes from. */
    [data-slot="drawer"] > [data-slot="drawer-content"] {
        border-radius: var(--radius-lg, 0.75rem);
        box-shadow: var(--elevation-4);
    }
    [data-slot="drawer"][data-direction="bottom"] > [data-slot="drawer-content"] {
        inset: auto 0.5rem 0.5rem 0.5rem;
        max-block-size: 82vh;
    }
    [data-slot="drawer"][data-direction="top"] > [data-slot="drawer-content"] {
        inset: 0.5rem 0.5rem auto 0.5rem;
        max-block-size: 82vh;
    }
    [data-slot="drawer"][data-direction="right"] > [data-slot="drawer-content"] {
        inset: 0.5rem 0.5rem 0.5rem auto;
        inline-size: min(24rem, calc(100vw - 1rem));
    }
    [data-slot="drawer"][data-direction="left"] > [data-slot="drawer-content"] {
        inset: 0.5rem auto 0.5rem 0.5rem;
        inline-size: min(24rem, calc(100vw - 1rem));
    }

    [data-slot="drawer"][data-direction="bottom"][open] > * { animation: sh-slide-from-bottom 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="drawer"][data-direction="top"][open]    > * { animation: sh-slide-from-top 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="drawer"][data-direction="right"][open]  > * { animation: sh-slide-from-right 320ms cubic-bezier(0.32, 0.72, 0, 1); }
    [data-slot="drawer"][data-direction="left"][open]   > * { animation: sh-slide-from-left 320ms cubic-bezier(0.32, 0.72, 0, 1); }

    /* Dragging is a pointer gesture on the panel, so text selection has to be out of the way or
       every drag highlights the heading on the way past. */
    [data-slot="drawer-content"] { touch-action: none; -webkit-user-select: none; -moz-user-select: none; user-select: none; }
    [data-slot="drawer-content"] :is(input, textarea, [contenteditable]) { -webkit-user-select: text; -moz-user-select: text; user-select: text; }

    /* ---- Accordion ------------------------------------------------------------------
       <details>/<summary> is the whole state machine, so an accordion works with JavaScript
       off and survives a fragment swap without a compiler. */
    [data-slot="accordion-trigger"]::-webkit-details-marker,
    [data-slot="collapsible-trigger"]::-webkit-details-marker { display: none; }
    [data-slot="accordion-trigger"]::marker,
    [data-slot="collapsible-trigger"]::marker { content: ""; }
    [data-slot="collapsible-trigger"] { cursor: pointer; list-style: none; }

    /* ScrollArea: the platform's own thin scrollbar, in the theme's colours. Radix draws its own
       with a resize observer and a computed thumb; this is most of the look for none of the
       script, and it still works with the wheel, a trackpad, the keyboard and a touch screen. */
    [data-slot="scroll-area-viewport"]::-webkit-scrollbar-thumb {
        background-color: var(--border);
    }
    @supports (-moz-appearance: none) {
        [data-slot="scroll-area-viewport"] {
            scrollbar-width: thin;
            scrollbar-color: var(--border) transparent;
        }
    }
    [data-slot="accordion-item"][open] [data-chevron] { rotate: 180deg; }
    [data-slot="accordion-item"][open] [data-slot="accordion-content"] { animation: sh-accordion-down 200ms ease-out; }

    /* ---- DropdownMenu / Popover / HoverCard ------------------------------------------
       The popover API supplies the top layer, light-dismiss and Escape. `position-area` is
       not everywhere yet, so ui.js positions the panel and only the visuals live here. */
    [popover] {
        margin: 0;
        padding: 0;
        /* border-WIDTH, not the `border` shorthand. The shorthand also resets the COLOUR to
           currentColor, and this rule is in a layer above the base one that says
           `border-color: var(--border)` — so every popover surface in the library drew its
           1px border in the TEXT colour. A near-black hairline around a menu, a tooltip, a
           popover and a hover card, on a page where every other border is a soft grey. It read
           as "the popover has an extra border", which is exactly what it looked like. */
        border-width: 0;
        background: transparent;
        overflow: visible;
        position: fixed;
    }

    /* ---- Tooltip --------------------------------------------------------------------- */
    /* Visible when it is OPEN, not when one particular attribute says so. The tooltip
       compiler sets data-state="delayed-open" after showPopover(), and the generic handler
       that mirrors popover state onto data-state then overwrote it with "open" — so the panel
       was in the top layer, positioned, and painted at opacity 0. Hovering did nothing
       visible, which reads as "the tooltip only works if you click it".

       The delay still lives in the timer that calls showPopover(). This rule only decides
       whether an open tooltip can be seen, and the answer is yes. */
    /* Upstream animates with tailwindcss-animate -- animate-in, zoom-in-95 and a slide per
side. That plugin is not installed here (it is listed by the check-compiled .NET command with the
       reason), so those classes compile to nothing and the tip appeared with no motion at all.

       The arrow hangs off the panel with no `relative` on it, and deliberately: a [popover] is
       position:fixed, which is already a containing block for an absolutely positioned child.
       Adding `relative` DEMOTED it — a top-layer element that is not fixed is treated as
       absolute — so the tip started scrolling with the page and landed hundreds of pixels from
       its trigger on any page far enough down to scroll.
       The same animation, written as a keyframe, because a keyframe needs no plugin: fade and
       zoom, sliding in from whichever side it ENDED UP on. */
    [data-slot="tooltip-content"] { opacity: 0; transition: opacity 120ms ease-out; }
    [data-slot="tooltip-content"][data-state="delayed-open"],
    [data-slot="tooltip-content"]:is(:popover-open, .\:popover-open) {
        opacity: 1;
        animation: sh-tip-in 150ms var(--ease-ui, cubic-bezier(0.16, 1, 0.3, 1));
    }
    [data-slot="tooltip-content"][data-placed-side="top"] { --sh-tip-from: 0 0.5rem; }
    [data-slot="tooltip-content"][data-placed-side="bottom"] { --sh-tip-from: 0 -0.5rem; }
    [data-slot="tooltip-content"][data-placed-side="left"] { --sh-tip-from: 0.5rem 0; }
    [data-slot="tooltip-content"][data-placed-side="right"] { --sh-tip-from: -0.5rem 0; }

    @keyframes sh-tip-in {
        from { opacity: 0; scale: 0.95; translate: var(--sh-tip-from, 0 0); }
        to { opacity: 1; scale: 1; translate: 0 0; }
    }

    /* The hover card carries the same dead plugin classes, and the same keyframe answers them. */
    [data-slot="hover-card-content"][data-placed-side="top"] { --sh-tip-from: 0 0.5rem; }
    [data-slot="hover-card-content"][data-placed-side="bottom"] { --sh-tip-from: 0 -0.5rem; }
    [data-slot="hover-card-content"][data-placed-side="left"] { --sh-tip-from: 0.5rem 0; }
    [data-slot="hover-card-content"][data-placed-side="right"] { --sh-tip-from: -0.5rem 0; }

    /* The arrow. Upstream renders a Radix Arrow element -- a rotated, rounded square in the
       tooltip's own colour -- and this is that square, as a pseudo-element, because a tooltip
       that needs a child element to look right is a tooltip every call site has to remember to
       write. It points from whichever side the tip ENDED UP on, which is why place() records
       the outcome separately from the requested side: a tip that flipped for want of room and
       kept pointing the old way is worse than one with no arrow at all. */
    [data-slot="tooltip-content"]::after {
        content: "";
        position: absolute;
        inline-size: 0.625rem;                  /* size-2.5, as upstream */
        block-size: 0.625rem;
        background: var(--foreground);
        border-radius: 2px;
        rotate: 45deg;
    }
    /* PHYSICAL sides, not logical ones. data-placed-side is already physical — it is where the
       tip ended up on the screen, decided by measurement — so `inset-inline-start` flipped the
       arrow to the far edge under dir="rtl" and it drew outside the tip, pointing at nothing.
       Only the top and bottom cases centre along the inline axis, and centring is the same in
       both directions. */
    [data-slot="tooltip-content"][data-placed-side="top"]::after {
        bottom: 0; left: 50%;
        translate: -50% calc(50% - 2px);
    }
    [data-slot="tooltip-content"][data-placed-side="bottom"]::after {
        top: 0; left: 50%;
        translate: -50% calc(-50% + 2px);
    }
    [data-slot="tooltip-content"][data-placed-side="left"]::after {
        right: 0; top: 50%;
        translate: calc(50% - 2px) -50%;
    }
    [data-slot="tooltip-content"][data-placed-side="right"]::after {
        left: 0; top: 50%;
        translate: calc(-50% + 2px) -50%;
    }

    /* ---- Button, while Unpoly has a request in flight ---------------------------------
       Unpoly marks the element that started a request with `.up-active`. On a submit button
       that is the honest place for the progress: the page stays legible, and [up-disable]
       has already made the form's fields inert. shadcn has no equivalent — it belongs to
       this port, which is why it is a rule here and not a class string on the component. */
    [data-slot="button"].up-active { pointer-events: none; }
    [data-slot="button"].up-active::after {
        content: "";
        margin-left: 0.5rem;
        display: inline-block;
        block-size: 0.875rem;
        inline-size: 0.875rem;
        flex-shrink: 0;
        border-radius: 9999px;
        border: 2px solid currentColor;
        border-right-color: transparent;
        vertical-align: -2px;
        animation: sh-spin 0.6s linear infinite;
    }
    @media (prefers-reduced-motion: reduce) {
        /* No spin, but still a mark that something is happening. */
        [data-slot="button"].up-active::after {
            animation: none;
            border-right-color: currentColor;
            opacity: 0.5;
        }
        [data-slot="dialog"][open] > *,
        [data-slot="alert-dialog"][open] > *,
        [data-slot="sheet"][open] > *,
        [data-slot="accordion-item"][open] [data-slot="accordion-content"] { animation: none; }
    }

    /* ---- the card publishes its own padding ------------------------------------------
       Everything in a card reads --card-spacing, so a child can pull out by exactly the amount
       the card pushed in — that is the whole of the edge-to-edge pattern, one number used twice.

       :where(), so both rules have ZERO specificity. The value has to be beatable by a single
       utility class on the card, which is how a caller changes it; an inline style, which is
       where this started, cannot be beaten by anything at all. */
    :where([data-slot="card"][data-size="sm"]) { --card-spacing: calc(var(--spacing) * 4); }
    :where([data-slot="card"]) { --card-spacing: calc(var(--spacing) * 6); }

    /* ---- surfaces are separated by ground, not by a line -----------------------------
       shadcn draws a border around every card, panel and menu. This library does not: the page
       is grey, the surface is white, and elevation says which is on top. It reads quieter and
       stops a dense screen turning into a grid of boxes.

       Scoped to the surfaces, NOT done by setting --border: transparent — that would take the
       table's row dividers, the separator and every control's edge with it. A field with no
       edge is not a field, and a table with no rules is a wall of text.

       An app that wants the lines back sets `data-theme="notebook"`, or writes one rule:
           [data-slot="card"] { border-color: var(--border); } */
    [data-slot="card"],
    [data-slot="alert"],
    [data-slot="dropdown-menu-content"],
    [data-slot="dropdown-menu-sub-content"],
    [data-slot="select-content"],
    [data-slot="dialog-content"],
    [data-slot="alert-dialog-content"],
    [data-slot="code-block"] { border-color: var(--surface-border); }

    /* ---- Checkbox / RadioGroup / Switch ----------------------------------------------
       Radix draws these as <button role="checkbox"> with a hidden input alongside. On static
       SSR the real input is the only thing that posts, and it has to be the focusable one — so
       it stays, and the indicator is a mask on its own ::after rather than a child element.
       The mask scales with the box and inherits the fill, so one glyph serves every size. */
    [data-slot="checkbox"],
    [data-slot="radio-group-item"],
    [data-slot="switch"] {
        -moz-appearance: none;
             appearance: none;
        -webkit-appearance: none;
        display: grid;
        place-items: center;
        vertical-align: middle;
        cursor: pointer;
    }
    [data-slot="checkbox"]:disabled,
    [data-slot="radio-group-item"]:disabled,
    [data-slot="switch"]:disabled { cursor: not-allowed; }

    [data-slot="checkbox"]::after {
        content: "";
        block-size: 100%;
        inline-size: 100%;
        scale: 0;
        background: currentColor;
        transition: scale 100ms;
        -webkit-mask: var(--sh-check) center / 0.75rem 0.75rem no-repeat;
        mask: var(--sh-check) center / 0.75rem 0.75rem no-repeat;
    }
    [data-slot="checkbox"]:checked::after { scale: 1; }
    [data-slot="checkbox"]:indeterminate::after {
        scale: 1;
        -webkit-mask: var(--sh-minus) center / 0.75rem 0.75rem no-repeat;
        mask: var(--sh-minus) center / 0.75rem 0.75rem no-repeat;
    }

    [data-slot="radio-group-item"]::after {
        content: "";
        block-size: 0.5rem;
        inline-size: 0.5rem;
        border-radius: 9999px;
        scale: 0;
        background: currentColor;
        transition: scale 100ms;
    }
    [data-slot="radio-group-item"]:checked::after { scale: 1; }

    /* The switch is the same input again, presented as a state that is on or off rather than
       ticked. `place-items: start` so the thumb sits at one end and travels to the other. */
    [data-slot="switch"] { place-items: center start; }
    [data-slot="switch"]::after {
        content: "";
        block-size: 1rem;
        inline-size: 1rem;
        margin-inline: 1px;
        border-radius: 9999px;
        background: var(--background);
        box-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
        transition: translate 160ms cubic-bezier(0.32, 0.72, 0, 1);
    }
    [data-slot="switch"]:checked::after { translate: calc(2rem - 1rem - 4px) 0; }
    /* The travel is a physical translate, so it must flip: in RTL the thumb rests on the
       right and slides LEFT when checked. Without this it slid further right, off the track. */
    [data-slot="switch"]:checked:where([dir="rtl"] *)::after {
        translate: calc(-1 * (2rem - 1rem - 4px)) 0;
    }

    /* The small switch, which had none of its own. The thumb was 1rem at every size, so in a
       24x14 track it was TALLER than the track it rides in — and on the unchecked side the track
       showed past it, which is the sliver of background that gets reported. Upstream sizes the
       thumb per size (size-4 / size-3); so does this, and the travel follows from the two
       numbers rather than being a second thing to keep in step. */
    [data-slot="switch"][data-size="sm"]::after {
        block-size: 0.75rem;
        inline-size: 0.75rem;
    }
    [data-slot="switch"][data-size="sm"]:checked::after {
        translate: calc(1.5rem - 0.75rem - 4px) 0;
    }
    [data-slot="switch"][data-size="sm"]:checked:where([dir="rtl"] *)::after {
        translate: calc(-1 * (1.5rem - 0.75rem - 4px)) 0;
    }

    /* ---- CodeBlock -------------------------------------------------------------------
       The confirmation lives on the button: a toast for something this small is a toast people
       learn to ignore. The tick replaces the icon rather than sitting beside it, so the button
       does not change width and the row does not jump. */
    [data-slot="code-block-copy"][data-copied] svg { display: none; }
    [data-slot="code-block-copy"][data-copied]::before {
        content: "";
        block-size: 1rem;
        inline-size: 1rem;
        background: currentColor;
        -webkit-mask: var(--sh-check) center / contain no-repeat;
        mask: var(--sh-check) center / contain no-repeat;
    }


    /* Kibo Snippet and multi-file CodeBlock: presentation for their data-slot anatomy.
       These are not shadcn upstream class recipes. */
    [data-slot="snippet"] { width: 100%; overflow: hidden; border: 1px solid var(--border); border-radius: 0.375rem; }
    [data-slot="snippet"] > [data-slot="tabs"] { gap: calc(var(--spacing) * 2); }
    [data-slot="snippet-header"] { display: flex; align-items: center; justify-content: space-between; padding: 0.25rem; background: var(--secondary); border-bottom: 1px solid var(--border); }
    [data-slot="snippet-header"] [data-slot="tabs-list"] { max-width: calc(100% - 2.5rem); min-width: 0; overflow-x: auto; scrollbar-width: none; }
    [data-slot="snippet-header"] [data-slot="tabs-list"]::-webkit-scrollbar { display: none; }
    [data-slot="snippet"] [data-slot="tabs-trigger"] { flex: none; font-size: var(--control-text); gap: 0.375rem; }
    [data-slot="snippet-copy"] { display: grid; place-items: center; flex: none; width: 2rem; height: 2rem; border-radius: 0.375rem; cursor: pointer; }
    [data-slot="snippet-copy"] svg { width: 0.875rem; height: 0.875rem; }
    [data-slot="snippet-copy"][hidden] { display: none; }
    [data-slot="snippet-copy"]:hover { background: var(--accent); }
    [data-slot="snippet-copy"][data-copied] svg { display: none; }
    [data-slot="snippet-copy"][data-copied]::before { content: "✓"; }
    [data-slot="snippet"] [data-slot="tabs-content"] { min-width: 0; padding: 1rem; background: var(--background); font-size: 0.875rem; }
    [data-slot="snippet-code"] { overflow-x: auto; font-family: var(--font-mono); font-size: 0.75rem; scrollbar-width: none; }
    [data-slot="snippet-code"]::-webkit-scrollbar { display: none; }
    [data-slot="code-block"]:has([data-slot="code-block-files"]) [data-slot="code-block-header"] { padding: 0.25rem; gap: 0.25rem; background: var(--secondary); }
    [data-slot="code-block-files"] { display: flex; flex: 1; min-width: 0; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; }
    [data-slot="code-block-files"]::-webkit-scrollbar { display: none; }
    [data-slot="code-block-file"] { flex: none; padding: 0.375rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; line-height: 1.25rem; color: var(--muted-foreground); cursor: pointer; }
    [data-slot="code-block-file"][aria-selected="true"] { background: var(--background); color: var(--foreground); }
    [data-slot="code-block"]:has([data-slot="code-block-files"]) [data-slot="code-block-copy"] { flex: none; width: 2rem; height: 2rem; padding: 0; }
    [data-slot="code-block"]:has([data-slot="code-block-files"]) [data-slot="code-block-copy"] svg { width: 0.875rem; height: 0.875rem; }
    [data-slot="code-block"]:has([data-slot="code-block-files"]) [data-slot="code-block-pre"] { font-size: 0.75rem; line-height: 1.25rem; }
    [data-slot="code-block-pre"][hidden], [data-slot="snippet"] [data-slot="tabs-content"][hidden] { display: none; }
    [data-slot="code-block-code"].shiki-code { display: grid; }
    [data-slot="code-block-code"].shiki-code .line { position: relative; min-height: 1lh; padding-inline: 1rem; margin-inline: -1rem; }
    [data-slot="code-block-code"].shiki-line-numbers { counter-reset: shiki-line; }
    [data-slot="code-block-code"].shiki-line-numbers .line { counter-increment: shiki-line; padding-inline-start: 3rem; }
    [data-slot="code-block-code"].shiki-line-numbers .line::before { content: counter(shiki-line); position: absolute; inset-inline-start: 0.5rem; width: 1.5rem; text-align: end; color: var(--muted-foreground); -webkit-user-select: none; -moz-user-select: none; user-select: none; }
    [data-slot="code-block-code"] .line.highlighted, [data-slot="code-block-code"] .highlighted-word { background: rgba(59, 130, 246, 0.12); background: color-mix(in srgb, #3b82f6 12%, transparent); }
    [data-slot="code-block-code"] .line.diff.add { background: rgba(16, 185, 129, 0.14); background: color-mix(in srgb, #10b981 14%, transparent); border-inline-start: 2px solid #10b981; }
    [data-slot="code-block-code"] .line.diff.remove, [data-slot="code-block-code"] .line.error { background: rgba(244, 63, 94, 0.14); background: color-mix(in srgb, #f43f5e 14%, transparent); border-inline-start: 2px solid #f43f5e; }
    [data-slot="code-block-code"] .line.warning { background: rgba(245, 158, 11, 0.14); background: color-mix(in srgb, #f59e0b 14%, transparent); border-inline-start: 2px solid #f59e0b; }
    [data-slot="code-block-code"]:has(.line.focused) .line:not(.focused) { filter: blur(2px); opacity: .6; }
    /* Shiki writes the light colour inline — style="color:#24292E;--shiki-dark:#E6EDF3" — and an
       inline style beats every rule that is not !important. Without it dark mode kept the light
       palette: near-black brackets and values on a near-black block. This is Shiki's own
       documented switch. There is no light counterpart because the inline colour IS the light
       one; the --shiki-light rule that stood here read a variable Shiki never writes. */
    .\!dark [data-slot="code-block-code"] .line span { color: var(--shiki-dark) !important; }
    .dark [data-slot="code-block-code"] .line span { color: var(--shiki-dark) !important; }

    /* ---- Command ---------------------------------------------------------------------
       Nothing to draw here: the compiler sets data-selected="true" on the highlighted row, which
       is the attribute cmdk sets and which upstream's own class string already styles. The
       highlight follows the keyboard as well as the pointer, which is why it is an attribute and
       not :hover — otherwise arrowing down leaves the mouse's row lit and two rows look chosen. */
    [data-slot="command-input"]::-webkit-search-cancel-button { margin-inline-start: 0.25rem; }

    /* ---- Menu items that are buttons --------------------------------------------------
       Radix draws every menu item as a <div>, which fills its row. Here an item that navigates
       is an <a> and an item that acts is a <button> — and a button sizes to fit-content even
       with display:flex, because the UA gives form controls their own intrinsic width. So the
       label was left-aligned in a box as wide as its text, the hover highlight stopped short of
       the menu edge, and clicking the empty strip beside it did nothing.

       One rule rather than a w-full in each recipe: the class lists are generated from shadcn
       and this is not shadcn's problem to have. */
    button[data-slot="dropdown-menu-item"],
    button[data-slot="dropdown-menu-checkbox-item"],
    button[data-slot="dropdown-menu-radio-item"],
    button[data-slot="dropdown-menu-sub-trigger"],
    button[data-slot="context-menu-item"],
    button[data-slot="context-menu-checkbox-item"],
    button[data-slot="context-menu-radio-item"],
    button[data-slot="context-menu-sub-trigger"],
    button[data-slot="menubar-item"],
    button[data-slot="menubar-checkbox-item"],
    button[data-slot="menubar-radio-item"],
    button[data-slot="menubar-sub-trigger"],
    button[data-slot="command-item"],
    button[data-slot="combobox-item"],
    button[data-slot="sidebar-menu-button"],
    button[data-slot="sidebar-menu-sub-button"] { width: 100%; }

@media (max-width: 767.98px) {
  [data-slot="sidebar"] { display: block !important; width: 100%; }
  [data-slot="sidebar-gap"] { display: none !important; }
  [data-slot="sidebar-container"] {
    position: relative;
    display: flex !important;
    width: 100% !important;
    height: auto !important;
  }
}

    /* ---- Slider ----------------------------------------------------------------------
       The three parts Radix builds out of divs are the three parts the input already has. The
       colours are upstream's, moved here because a pseudo-element cannot be a component.

       The filled range has no element in either engine, so it is a gradient stop on the track at
       --slider-fill, which ui.js keeps in step with the value. Without JavaScript the track is
       plain and the slider still works — you lose the fill, not the control. */
    input[type="range"][data-slot="slider"] {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        background: transparent;
        cursor: pointer;
        /* Tall enough for the thumb, which overflows the track exactly as it does upstream: a
           6px rule with a 16px handle riding on it. Left at the browser default the thumb is
           clipped top and bottom. */
        block-size: 1rem;
        inline-size: 100%;
    }
    /* Logical properties turn with the writing mode, and that is the trap: once the box is
       vertical, inline-size IS the height, so the 100% above stretched the slider to the height
       of whatever contained it — 574px in a docs preview — and block-size became its width.
       Vertical says what it wants in physical terms instead, and leaves the height to the class,
       which is where upstream puts it. */
    input[type="range"][data-slot="slider"][data-orientation="vertical"] {
        block-size: auto;
        inline-size: auto;
    }
    input[type="range"][data-slot="slider"]:disabled { cursor: not-allowed; }

    /* One vendor pseudo-element per rule, never a list. An engine that does not know one
       selector drops the WHOLE list, so combining these loses the track in every browser — which
       is what happened here: the thumb drew, the track did not, and the slider read as a lone
       circle floating in the row. */
    input[type="range"][data-slot="slider"]::-webkit-slider-runnable-track {
        height: 0.375rem;                       /* h-1.5, as upstream's track */
        border-radius: 9999px;
        background: linear-gradient(to right,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }
    input[type="range"][data-slot="slider"]::-moz-range-track {
        height: 0.375rem;
        border-radius: 9999px;
        background: linear-gradient(to right,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }

    /* -moz- and -webkit- must be written as separate rules: one invalid selector in a list drops
       the whole list, so combining them silently loses the thumb in every browser. */
    input[type="range"][data-slot="slider"]::-webkit-slider-thumb,
    input[type="range"][data-slot="slider-input"]::-webkit-slider-thumb {
        -webkit-appearance: none;
                appearance: none;
        width: 1rem; height: 1rem;              /* size-4 */
        margin-top: -0.3125rem;                 /* centres the thumb on the track */
        border-radius: 9999px;
        border: 1px solid var(--primary);
        background: #fff;
        box-shadow: var(--elevation-1, 0 1px 2px 0 rgb(0 0 0 / 0.05));
        -webkit-transition: box-shadow var(--duration-ui, 150ms) var(--ease-ui, ease);
        transition: box-shadow var(--duration-ui, 150ms) var(--ease-ui, ease);
    }
    input[type="range"][data-slot="slider"]::-moz-range-thumb,
    input[type="range"][data-slot="slider-input"]::-moz-range-thumb {
        width: 1rem; height: 1rem;
        border-radius: 9999px;
        border: 1px solid var(--primary);
        background: #fff;
        box-shadow: var(--elevation-1, 0 1px 2px 0 rgb(0 0 0 / 0.05));
    }
    input[type="range"][data-slot="slider"]:hover::-webkit-slider-thumb,
    input[type="range"][data-slot="slider-input"]:hover::-webkit-slider-thumb {
        box-shadow: 0 0 0 4px var(--ring);      /* hover:ring-4 */
    }
    input[type="range"][data-slot="slider"]:focus-visible::-webkit-slider-thumb,
    input[type="range"][data-slot="slider-input"]:focus-visible::-webkit-slider-thumb {
        box-shadow: 0 0 0 4px var(--ring);      /* focus-visible:ring-4 */
    }
    input[type="range"][data-slot="slider"]:hover::-moz-range-thumb,
    input[type="range"][data-slot="slider"]:focus-visible::-moz-range-thumb,
    input[type="range"][data-slot="slider-input"]:focus-visible::-moz-range-thumb {
        box-shadow: 0 0 0 4px var(--ring);
    }
    input[type="range"][data-slot="slider"]:focus-visible { outline: none; }
    input[type="range"][data-slot="slider"][data-orientation="vertical"] {
        writing-mode: vertical-lr;
        direction: rtl;
    }

    /* The fill is painted from the start, and in RTL the start is the right — the native input
       already runs its values right-to-left, so a left-anchored gradient coloured the EMPTY
       side. One flipped gradient per vendor pseudo, for the list-dropping reason above. */
    input[type="range"][data-slot="slider"]:where([dir="rtl"] *)::-webkit-slider-runnable-track {
        background: linear-gradient(to left,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }
    input[type="range"][data-slot="slider"]:where([dir="rtl"] *)::-moz-range-track {
        background: linear-gradient(to left,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }

    /* A vertical slider is the same input turned, and the track has to turn with it. The
       horizontal rules give it `height: 6px` and a gradient running `to right` — across the six
       pixels of WIDTH once the box is vertical, which painted the entire length in the filled
       colour and left the empty part nowhere. So: the six pixels become the width, the length
       comes from the element, and the gradient runs from the bottom, which is where a vertical
       range starts. These come after the RTL overrides on purpose — a vertical slider on an
       Arabic page is still filled from the bottom. */
    input[type="range"][data-slot="slider"][data-orientation="vertical"]::-webkit-slider-runnable-track {
        width: 0.375rem;
        height: 100%;
        background: linear-gradient(to top,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }
    input[type="range"][data-slot="slider"][data-orientation="vertical"]::-moz-range-track {
        width: 0.375rem;
        height: 100%;
        background: linear-gradient(to top,
            var(--primary) 0 var(--slider-fill, 0%),
            var(--muted) var(--slider-fill, 0%) 100%);
    }
    /* The thumb is centred on the CROSS axis, and the cross axis is horizontal now — the
       margin-top that centres it in a horizontal slider pushed it off the track here. */
    input[type="range"][data-slot="slider"][data-orientation="vertical"]::-webkit-slider-thumb {
        margin-top: 0;
        margin-left: -0.3125rem;
    }

    /* ---- Slider, several thumbs ------------------------------------------------------
       One native input per thumb, stacked in one frame. The frame paints the shared track and
       the band between the outermost thumbs from --slider-from / --slider-to — inline from the
       server so the first paint is right, kept current by ui.js while dragging. The inputs
       take no pointer anywhere except their thumb, which is how two of them share one strip. */
    [data-slot="slider"][data-range]::before,
    [data-slot="slider"][data-range]::after {
        content: "";
        position: absolute;
        inset-block-start: 50%;
        translate: 0 -50%;
        block-size: 0.375rem;
        border-radius: 9999px;
    }
    [data-slot="slider"][data-range]::before { inset-inline: 0; background: var(--muted); }
    [data-slot="slider"][data-range]::after {
        inset-inline-start: var(--slider-from, 0%);
        inline-size: calc(var(--slider-to, 0%) - var(--slider-from, 0%));
        background: var(--primary);
    }
    input[type="range"][data-slot="slider-input"] {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        position: absolute;
        inset: 0;
        /* Above the band. A parent's ::after paints after its children, so the filled range was
           drawn ON TOP of the thumbs -- the lower one vanished into it entirely, and the upper
           one survived only because it sits on the band's own edge. */
        z-index: 1;
        inline-size: 100%;
        block-size: 100%;
        margin: 0;
        background: transparent;
        cursor: pointer;
        pointer-events: none;               /* the thumb rules above turn the thumb back on */
    }
    input[type="range"][data-slot="slider-input"]:disabled { cursor: not-allowed; }
    input[type="range"][data-slot="slider-input"]:focus-visible { outline: none; }
    input[type="range"][data-slot="slider-input"]::-webkit-slider-runnable-track {
        height: 0.375rem;
        background: transparent;
    }
    input[type="range"][data-slot="slider-input"]::-moz-range-track {
        height: 0.375rem;
        background: transparent;
    }

    input[type="range"][data-slot="slider-input"]::-webkit-slider-thumb { pointer-events: auto; }
    input[type="range"][data-slot="slider-input"]::-moz-range-thumb { pointer-events: auto; }

    /* A date-picker button before anything is chosen. shadcn writes this as
       data-[empty=true]:text-muted-foreground on the trigger; here the placeholder is the label
       span itself, which is the thing that stops being a placeholder the moment a day is picked
       — so the attribute lives on it and ui.js removes it as it writes the date. */
    [data-date-label][data-empty] {
        color: var(--muted-foreground);
    }

    /* ---- Time and date fields ---------------------------------------------------------
       The browser draws its own little clock or calendar button inside these, and a group that
       already carries an icon then has two — one of them ours, one of them not, and neither
       aligned with the other. Upstream hides it with a pair of ::-webkit- rules on every time
       field it styles; here it belongs to the input-group, which is the place that knows it has
       supplied an icon of its own. The field still opens its picker from the keyboard.

       Written as two rules, not a list: an engine that does not know one of these selectors
       drops the whole list, and then nothing is hidden anywhere. */
    [data-slot="input-group"] :is(input[type="time"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="week"])::-webkit-calendar-picker-indicator {
        display: none;
    }
    [data-slot="input-group"] :is(input[type="time"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="week"]) {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
    }

    /* ---- Carousel --------------------------------------------------------------------
       Scroll-snap is the carousel. Embla exists because Safari's implementation was unusable in
       2019; it is fine now, and what remains in JavaScript is the two arrows. */
    [data-slot="carousel-content"] {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;                  /* the arrows and the swipe are the affordance */
        overscroll-behavior-x: contain;         /* stops a swipe becoming a back-navigation */
    }
    [data-slot="carousel-content"]::-webkit-scrollbar { display: none; }
    [data-slot="carousel-item"] { scroll-snap-align: start; }

    [data-orientation="vertical"] > [data-slot="carousel-content"] {
        overflow-x: hidden;
        overflow-y: auto;
        scroll-snap-type: y mandatory;
        max-height: 100%;
    }

    /* ---- Resizable -------------------------------------------------------------------
       The handle is the only moving part: its compiler writes flex-grow on the two panels it
       sits between. Everything else is ordinary flex. */
    [data-slot="resizable-panel-group"][data-orientation="vertical"] { flex-direction: column; }
    [data-slot="resizable-panel"] { overflow: hidden; }
    [data-slot="resizable-handle"] { cursor: col-resize; touch-action: none; }
    [data-slot="resizable-handle"][aria-orientation="horizontal"] { cursor: row-resize; }
    [data-slot="resizable-handle"]:hover, [data-slot="resizable-handle"][data-dragging] {
        background-color: var(--ring);
    }

    /* ---- Select ----------------------------------------------------------------------
       The bare <select>, before ui.js reaches it and after it if scripting is off. The OS draws
       its own arrow in its own colour, so that is suppressed and one is drawn to match. */
    select[data-slot="select"] {
        -moz-appearance: none;
             appearance: none;
        -webkit-appearance: none;
        background-image: var(--sh-chevron-down);
        background-position: right 0.7rem center;
        background-repeat: no-repeat;
        background-size: 1rem 1rem;
    }

    /* ---- Select, as built by ui.js --------------------------------------------------- */
    [data-slot="select-chevron"] {
        background: currentColor;
        -webkit-mask: var(--sh-chevron-down) center / 1rem 1rem no-repeat;
        mask: var(--sh-chevron-down) center / 1rem 1rem no-repeat;
    }
    [data-slot="select-item"][data-selected="true"]::after {
        content: "";
        position: absolute;
        right: 0.5rem;
        block-size: 0.875rem;
        inline-size: 0.875rem;
        background: currentColor;
        -webkit-mask: var(--sh-check) center / contain no-repeat;
        mask: var(--sh-check) center / contain no-repeat;
    }

    /* ---- native controls the design system still owns --------------------------------- */
    /* Chrome draws the search field's clear button as a grey X from another design system.
       The raw type=search inputs (list filters) are not wrapped in any component, so this
       has to be a rule rather than a class. */
    input[type="search"]::-webkit-search-cancel-button {
        -webkit-appearance: none;
        appearance: none;
        width: 14px;
        height: 14px;
        cursor: pointer;
        opacity: 0.5;
        background: var(--sh-clear-icon) center / contain no-repeat;
    }
    input[type="search"]::-webkit-search-cancel-button:hover { opacity: 0.9; }

    /* The option panel of a native <select> is drawn by the OS and cannot be themed; the most
       that can be reached is its ground, so it is not OS white on a themed page. */
    select option { background-color: var(--popover); color: var(--popover-foreground); }

    /* A column of figures reads digit over digit, and the spinner — a different shape in every
       engine, and money never needs it — is gone. */
    input[type="number"][data-slot="input"],
    [data-slot="date-picker"] { font-family: var(--font-numeric); }
    input[type="number"][data-slot="input"] { -moz-appearance: textfield; -webkit-appearance: textfield; appearance: textfield; }
    input[type="number"][data-slot="input"]::-webkit-outer-spin-button,
    input[type="number"][data-slot="input"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

    /* ---- LogoCloud marquee ------------------------------------------------------------
       The track holds the list twice and slides by half its own width, so the second copy
       arrives exactly where the first began and the loop has no seam. Edges fade through a
       mask rather than an overlay, so the fade works on any background. Pointer or focus inside
       pauses it. --logo-cloud-duration sets the speed; under right-to-left it runs the other
       way, or the second copy would be waiting off the wrong edge. */
    [data-slot="logo-cloud-viewport"] {
        -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
        mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
    }
    [data-slot="logo-cloud-track"] { animation: sh-marquee var(--logo-cloud-duration, 30s) linear infinite; }
    [dir="rtl"] [data-slot="logo-cloud-track"] { --sh-marquee-to: 50%; }
    [data-slot="logo-cloud-viewport"]:hover [data-slot="logo-cloud-track"],
    [data-slot="logo-cloud-viewport"]:focus-within [data-slot="logo-cloud-track"] { animation-play-state: paused; }
    @media (prefers-reduced-motion: reduce) {
        /* Nothing moves on its own: the copy goes, and the one list wraps into a still cloud. */
        [data-slot="logo-cloud-viewport"] { -webkit-mask-image: none; mask-image: none; }
        [data-slot="logo-cloud-track"] { animation: none; width: auto; justify-content: center; }
        [data-slot="logo-cloud-track"] > [aria-hidden="true"] { display: none; }
        [data-slot="logo-cloud-track"] > [data-slot="logo-cloud-list"] { flex-shrink: 1; flex-wrap: wrap; justify-content: center; row-gap: 2rem; padding-inline-end: 0; }
    }

    /* ---- monthly / yearly: PricingTable, GrowthBusiness, SubscriptionDetails ----------------
       A section that offers both billings writes every price twice, each marked data-billing,
       and its yearly control — a switch or a radio, value="yearly" — decides which shows. That
       is :has(), so the switch works with scripting off. Rules only ever hide: a rule that
       showed would have to restore a display value, and any utility on the element would lose
       to it. data-billing-scope names the billing the server checked, which is what an engine
       without :has() goes on showing, rather than both. */
    @supports not selector(:has(*)) {
        [data-billing-scope="monthly"] [data-billing="yearly"],
        [data-billing-scope="yearly"] [data-billing="monthly"] { display: none; }
    }
    [data-billing-scope]:has([data-billing-control] [value="yearly"]:checked) [data-billing="monthly"],
    [data-billing-scope]:has([data-billing-control] [value="yearly"]:not(:checked)) [data-billing="yearly"] { display: none; }
    /* What is left after the chrome was rebuilt out of the library: a page's own type, and the
       one thing Unpoly marks that the library has no opinion about — the current nav row.

       Everything that used to be here — .doc-nav a, .doc-example, .doc-preview, .doc-source —
       is now Item, Tabs, Card and CodeBlock. If something has to come back to this file, that is
       a component the library is missing, and worth noticing. */
    .doc-h1 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 600; letter-spacing: -0.025em; }
    .doc-lede { margin-top: 0.5rem; max-width: 42rem; --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); line-height: 1.5; }
    .doc-h2 { margin-top: 3rem; scroll-margin-top: 5rem; font-size: 1.125rem; line-height: 1.75rem; font-weight: 600; letter-spacing: -0.025em; }
    .doc-note { margin-top: 0.5rem; max-width: 42rem; font-size: 0.875rem; line-height: calc(1.25 / 0.875); --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
    /* An RTL sample wraps its component in <div dir="rtl">, and a flex item's minimum is its
       content's: the wrapper could not shrink below the w-[420px] inside it, and on a phone it
       pushed the whole page sideways. A component placed in the frame directly already shrinks;
       these let a wrapped one do the same. :where() keeps them at zero specificity, so a sample's
       own max-w-sm still wins — as a utility class it outranked them and stretched a capped
       FileUpload across the whole frame. */
    :where([data-example-frame] > [dir]) { min-width: 0; }
    :where([data-example-frame] > [dir] > *) { max-width: 100%; }

    /* break-words: a path like _content/Unpoly.Blazor.Shadcn.ECharts/echarts.js has nowhere to
       wrap, and on a phone it pushed the whole page sideways. */
    .doc-note code, .doc-lede code { overflow-wrap: break-word; border-radius: 0.25rem; --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); padding-left: 0.25rem; padding-right: 0.25rem; padding-top: 0.125rem; padding-bottom: 0.125rem; font-family: var(--font-mono); font-size: 0.85em; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }
.pointer-events-none { pointer-events: none; }
.visible { visibility: visible; }
.invisible { visibility: hidden; }
.collapse { visibility: collapse; }
.static { position: static; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }
.inset-0 { inset: 0px; }
.inset-x-0 { left: 0px; right: 0px; }
.inset-y-0 { top: 0px; bottom: 0px; }
.inset-y-1 { top: 0.25rem; bottom: 0.25rem; }
.-bottom-12 { bottom: -3rem; }
.-bottom-32 { bottom: -8rem; }
.-bottom-40 { bottom: -10rem; }
.-end-12 { inset-inline-end: -3rem; }
.-left-24 { left: -6rem; }
.-left-8 { left: -2rem; }
.-right-20 { right: -5rem; }
.-start-12 { inset-inline-start: -3rem; }
.-top-12 { top: -3rem; }
.-top-14 { top: -3.5rem; }
.-top-24 { top: -6rem; }
.-top-40 { top: -10rem; }
.-top-8 { top: -2rem; }
.bottom-0 { bottom: 0px; }
.bottom-2 { bottom: 0.5rem; }
.bottom-4 { bottom: 1rem; }
.bottom-full { bottom: 100%; }
.end-1 { inset-inline-end: 0.25rem; }
.end-2 { inset-inline-end: 0.5rem; }
.end-3 { inset-inline-end: 0.75rem; }
.end-4 { inset-inline-end: 1rem; }
.left-1\/2 { left: 50%; }
.left-1\/4 { left: 25%; }
.left-2 { left: 0.5rem; }
.left-7 { left: 1.75rem; }
.left-\[13px\] { left: 13px; }
.left-\[42\%\] { left: 42%; }
.left-\[55\%\] { left: 55%; }
.right-0 { right: 0px; }
.right-2 { right: 0.5rem; }
.right-4 { right: 1rem; }
.right-\[8\%\] { right: 8%; }
.start-0 { inset-inline-start: 0px; }
.start-1\/2 { inset-inline-start: 50%; }
.start-3 { inset-inline-start: 0.75rem; }
.start-5 { inset-inline-start: 1.25rem; }
.top-0 { top: 0px; }
.top-1 { top: 0.25rem; }
.top-1\.5 { top: 0.375rem; }
.top-1\/2 { top: 50%; }
.top-11 { top: 2.75rem; }
.top-16 { top: 4rem; }
.top-2 { top: 0.5rem; }
.top-3 { top: 0.75rem; }
.top-3\.5 { top: 0.875rem; }
.top-4 { top: 1rem; }
.top-7 { top: 1.75rem; }
.top-\[18\%\] { top: 18%; }
.top-\[1px\] { top: 1px; }
.top-\[58\%\] { top: 58%; }
.isolate { isolation: isolate; }
.-z-10 { z-index: -10; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }
.z-40 { z-index: 40; }
.z-50 { z-index: 50; }
.order-first { order: -9999; }
.order-last { order: 9999; }
.col-span-2 { grid-column: span 2 / span 2; }
.col-start-2 { grid-column-start: 2; }
.row-span-2 { grid-row: span 2 / span 2; }
.row-span-3 { grid-row: span 3 / span 3; }
.row-start-1 { grid-row-start: 1; }
.m-0\! { margin: 0px !important; }
.m-1 { margin: 0.25rem; }
.-mx-1 { margin-left: -0.25rem; margin-right: -0.25rem; }
.-mx-4 { margin-left: -1rem; margin-right: -1rem; }
.-mx-\(--card-spacing\) { margin-left: calc(var(--card-spacing) * -1); margin-right: calc(var(--card-spacing) * -1); }
.-my-2 { margin-top: -0.5rem; margin-bottom: -0.5rem; }
.mx-0 { margin-left: 0px; margin-right: 0px; }
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
.mx-3\.5 { margin-left: 0.875rem; margin-right: 0.875rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.my-0 { margin-top: 0px; margin-bottom: 0px; }
.my-0\.5 { margin-top: 0.125rem; margin-bottom: 0.125rem; }
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.my-8 { margin-top: 2rem; margin-bottom: 2rem; }
.-ms-1 { margin-inline-start: -0.25rem; }
.-ms-4 { margin-inline-start: -1rem; }
.-mt-1 { margin-top: -0.25rem; }
.-mt-10 { margin-top: -2.5rem; }
.-mt-4 { margin-top: -1rem; }
.mb-1\.5 { margin-bottom: 0.375rem; }
.mb-16 { margin-bottom: 4rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.me-2 { margin-inline-end: 0.5rem; }
.ml-1 { margin-left: 0.25rem; }
.ml-2 { margin-left: 0.5rem; }
.ml-6 { margin-left: 1.5rem; }
.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }
.ms-1 { margin-inline-start: 0.25rem; }
.ms-2 { margin-inline-start: 0.5rem; }
.ms-4 { margin-inline-start: 1rem; }
.ms-auto { margin-inline-start: auto; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-1\.5 { margin-top: 0.375rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-14 { margin-top: 3.5rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-auto { margin-top: auto; }
.line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.table { display: table; }
.inline-table { display: inline-table; }
.table-caption { display: table-caption; }
.table-cell { display: table-cell; }
.table-row { display: table-row; }
.grid { display: grid; }
.contents { display: contents; }
.\!hidden { display: none !important; }
.hidden { display: none; }
.aspect-\[4\/3\] { aspect-ratio: 4/3; }
.aspect-auto { aspect-ratio: auto; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.size-1\.5 { width: 0.375rem; height: 0.375rem; }
.size-10 { width: 2.5rem; height: 2.5rem; }
.size-12 { width: 3rem; height: 3rem; }
.size-14 { width: 3.5rem; height: 3.5rem; }
.size-16 { width: 4rem; height: 4rem; }
.size-2 { width: 0.5rem; height: 0.5rem; }
.size-2\.5 { width: 0.625rem; height: 0.625rem; }
.size-24 { width: 6rem; height: 6rem; }
.size-3 { width: 0.75rem; height: 0.75rem; }
.size-3\.5 { width: 0.875rem; height: 0.875rem; }
.size-4 { width: 1rem; height: 1rem; }
.size-5 { width: 1.25rem; height: 1.25rem; }
.size-6 { width: 1.5rem; height: 1.5rem; }
.size-7 { width: 1.75rem; height: 1.75rem; }
.size-8 { width: 2rem; height: 2rem; }
.size-9 { width: 2.25rem; height: 2.25rem; }
.size-\(--cell-size\) { width: var(--cell-size); height: var(--cell-size); }
.size-full { width: 100%; height: 100%; }
.h-0\.5 { height: 0.125rem; }
.h-1 { height: 0.25rem; }
.h-1\.5 { height: 0.375rem; }
.h-10 { height: 2.5rem; }
.h-12 { height: 3rem; }
.h-14 { height: 3.5rem; }
.h-16 { height: 4rem; }
.h-2 { height: 0.5rem; }
.h-2\.5 { height: 0.625rem; }
.h-24 { height: 6rem; }
.h-28 { height: 7rem; }
.h-3 { height: 0.75rem; }
.h-3\.5 { height: 0.875rem; }
.h-32 { height: 8rem; }
.h-4 { height: 1rem; }
.h-40 { height: 10rem; }
.h-48 { height: 12rem; }
.h-5 { height: 1.25rem; }
.h-52 { height: 13rem; }
.h-56 { height: 14rem; }
.h-6 { height: 1.5rem; }
.h-64 { height: 16rem; }
.h-7 { height: 1.75rem; }
.h-72 { height: 18rem; }
.h-8 { height: 2rem; }
.h-80 { height: 20rem; }
.h-9 { height: 2.25rem; }
.h-96 { height: 24rem; }
.h-\[1\.625rem\] { height: 1.625rem; }
.h-\[100dvh\] { height: 100dvh; }
.h-\[169\%\] { height: 169%; }
.h-\[220px\] { height: 220px; }
.h-\[240px\] { height: 240px; }
.h-\[270px\] { height: 270px; }
.h-\[520px\] { height: 520px; }
.h-\[52px\] { height: 52px; }
.h-\[540px\] { height: 540px; }
.h-\[560px\] { height: 560px; }
.h-\[calc\(--spacing\(5\.5\)\)\] { height: calc(calc(var(--spacing) * 5.5)); }
.h-\[calc\(100\%-1px\)\] { height: calc(100% - 1px); }
.h-\[calc\(100\%-8px\)\] { height: calc(100% - 8px); }
.h-auto { height: auto; }
.h-control { height: var(--control-h); }
.h-fit { height: -moz-fit-content; height: fit-content; }
.h-full { height: 100%; }
.h-max { height: -moz-max-content; height: max-content; }
.h-px { height: 1px; }
.h-svh { height: 100svh; }
.max-h-32 { max-height: 8rem; }
.max-h-40 { max-height: 10rem; }
.max-h-48 { max-height: 12rem; }
.max-h-60 { max-height: 15rem; }
.max-h-64 { max-height: 16rem; }
.max-h-96 { max-height: 24rem; }
.max-h-\[300px\] { max-height: 300px; }
.max-h-\[35vh\] { max-height: 35vh; }
.max-h-\[50vh\] { max-height: 50vh; }
.max-h-\[640px\] { max-height: 640px; }
.max-h-\[70vh\] { max-height: 70vh; }
.max-h-\[85vh\] { max-height: 85vh; }
.max-h-\[calc\(100dvh-5rem\)\] { max-height: calc(100dvh - 5rem); }
.max-h-\[min\(calc\(--spacing\(96\)---spacing\(9\)\)\2c calc\(var\(--available-height\)---spacing\(9\)\)\)\] { max-height: min(calc(calc(var(--spacing) * 96) - calc(var(--spacing) * 9)), calc(var(--available-height) - calc(var(--spacing) * 9))); }
.max-h-\(--available-height\) { max-height: var(--available-height); }
.max-h-\(--radix-context-menu-content-available-height\) { max-height: var(--radix-context-menu-content-available-height); }
.min-h-full\! { min-height: 100% !important; }
.min-h-0 { min-height: 0px; }
.min-h-16 { min-height: 4rem; }
.min-h-4 { min-height: 1rem; }
.min-h-48 { min-height: 12rem; }
.min-h-7 { min-height: 1.75rem; }
.min-h-9 { min-height: 2.25rem; }
.min-h-\[200px\] { min-height: 200px; }
.min-h-\[60vh\] { min-height: 60vh; }
.min-h-\[80px\] { min-height: 80px; }
.min-h-full { min-height: 100%; }
.min-h-screen { min-height: 100vh; }
.min-h-svh { min-height: 100svh; }
.w-0 { width: 0px; }
.w-1 { width: 0.25rem; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.w-14 { width: 3.5rem; }
.w-16 { width: 4rem; }
.w-2 { width: 0.5rem; }
.w-2\.5 { width: 0.625rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-28 { width: 7rem; }
.w-3 { width: 0.75rem; }
.w-3\/4 { width: 75%; }
.w-32 { width: 8rem; }
.w-36 { width: 9rem; }
.w-4 { width: 1rem; }
.w-40 { width: 10rem; }
.w-44 { width: 11rem; }
.w-48 { width: 12rem; }
.w-5 { width: 1.25rem; }
.w-52 { width: 13rem; }
.w-56 { width: 14rem; }
.w-6 { width: 1.5rem; }
.w-60 { width: 15rem; }
.w-64 { width: 16rem; }
.w-72 { width: 18rem; }
.w-8 { width: 2rem; }
.w-80 { width: 20rem; }
.w-9 { width: 2.25rem; }
.w-96 { width: 24rem; }
.w-\[100px\] { width: 100px; }
.w-\[104px\] { width: 104px; }
.w-\[120px\] { width: 120px; }
.w-\[130px\] { width: 130px; }
.w-\[140px\] { width: 140px; }
.w-\[150px\] { width: 150px; }
.w-\[160px\] { width: 160px; }
.w-\[170px\] { width: 170px; }
.w-\[180px\] { width: 180px; }
.w-\[200px\] { width: 200px; }
.w-\[220px\] { width: 220px; }
.w-\[240px\] { width: 240px; }
.w-\[280px\] { width: 280px; }
.w-\[320px\] { width: 320px; }
.w-\[340px\] { width: 340px; }
.w-\[360px\] { width: 360px; }
.w-\[380px\] { width: 380px; }
.w-\[400px\] { width: 400px; }
.w-\[420px\] { width: 420px; }
.w-\[440px\] { width: 440px; }
.w-\[460px\] { width: 460px; }
.w-\[480px\] { width: 480px; }
.w-\[520px\] { width: 520px; }
.w-\[560px\] { width: 560px; }
.w-\[60\%\] { width: 60%; }
.w-\[92\%\] { width: 92%; }
.w-\[97\%\] { width: 97%; }
.w-\[calc\(100\%-1\.75rem\)\] { width: calc(100% - 1.75rem); }
.w-\[min\(28rem\2c calc\(100vw-2rem\)\)\] { width: min(28rem, calc(100vw - 2rem)); }
.w-\(--anchor-width\) { width: var(--anchor-width); }
.w-\(--sidebar-width\) { width: var(--sidebar-width); }
.w-auto { width: auto; }
.w-fit { width: -moz-fit-content; width: fit-content; }
.w-full { width: 100%; }
.w-max { width: -moz-max-content; width: max-content; }
.w-px { width: 1px; }
.min-w-0 { min-width: 0px; }
.min-w-10 { min-width: 2.5rem; }
.min-w-11 { min-width: 2.75rem; }
.min-w-16 { min-width: 4rem; }
.min-w-40 { min-width: 10rem; }
.min-w-5 { min-width: 1.25rem; }
.min-w-52 { min-width: 13rem; }
.min-w-8 { min-width: 2rem; }
.min-w-9 { min-width: 2.25rem; }
.min-w-\[12rem\] { min-width: 12rem; }
.min-w-\[210px\] { min-width: 210px; }
.min-w-\[8rem\] { min-width: 8rem; }
.min-w-\[calc\(var\(--anchor-width\)\+--spacing\(7\)\)\] { min-width: calc(var(--anchor-width) + calc(var(--spacing) * 7)); }
.max-w-0 { max-width: 0px; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-48 { max-width: 12rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-56 { max-width: 14rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-64 { max-width: 16rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-\[12rem\] { max-width: 12rem; }
.max-w-\[1400px\] { max-width: 1400px; }
.max-w-\[170px\] { max-width: 170px; }
.max-w-\[180px\] { max-width: 180px; }
.max-w-\[280px\] { max-width: 280px; }
.max-w-\[320px\] { max-width: 320px; }
.max-w-\[75\%\] { max-width: 75%; }
.max-w-\[80\%\] { max-width: 80%; }
.max-w-\[95vw\] { max-width: 95vw; }
.max-w-\[calc\(100\%-2rem\)\] { max-width: calc(100% - 2rem); }
.max-w-\[calc\(100vw-2rem\)\] { max-width: calc(100vw - 2rem); }
.max-w-\(--available-width\) { max-width: var(--available-width); }
.max-w-\(--skeleton-width\) { max-width: var(--skeleton-width); }
.max-w-full { max-width: 100%; }
.max-w-lg { max-width: 32rem; }
.max-w-max { max-width: -moz-max-content; max-width: max-content; }
.max-w-md { max-width: 28rem; }
.max-w-prose { max-width: 65ch; }
.max-w-sm { max-width: 24rem; }
.max-w-xl { max-width: 36rem; }
.max-w-xs { max-width: 20rem; }
.flex-1 { flex: 1 1 0%; }
.flex-auto { flex: 1 1 auto; }
.flex-none { flex: none; }
.shrink { flex-shrink: 1; }
.shrink-0 { flex-shrink: 0; }
.flex-grow { flex-grow: 1; }
.grow { flex-grow: 1; }
.grow-0 { flex-grow: 0; }
.basis-1\/2 { flex-basis: 50%; }
.basis-full { flex-basis: 100%; }
.table-fixed { table-layout: fixed; }
.caption-bottom { caption-side: bottom; }
.border-collapse { border-collapse: collapse; }
.border-separate { border-collapse: separate; }
.border-spacing-1 { --tw-border-spacing-x: 0.25rem; --tw-border-spacing-y: 0.25rem; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); }
.border-spacing-y-1 { --tw-border-spacing-y: 0.25rem; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); }
.origin-\(--radix-context-menu-content-transform-origin\) { transform-origin: var(--radix-context-menu-content-transform-origin); }
.origin-\(--radix-dropdown-menu-content-transform-origin\) { transform-origin: var(--radix-dropdown-menu-content-transform-origin); }
.origin-\(--radix-hover-card-content-transform-origin\) { transform-origin: var(--radix-hover-card-content-transform-origin); }
.origin-\(--radix-menubar-content-transform-origin\) { transform-origin: var(--radix-menubar-content-transform-origin); }
.origin-\(--radix-popover-content-transform-origin\) { transform-origin: var(--radix-popover-content-transform-origin); }
.origin-\(--transform-origin\) { transform-origin: var(--transform-origin); }
.-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.-translate-x-px { --tw-translate-x: -1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.-translate-y-3\/4 { --tw-translate-y: -75%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.translate-x-px { --tw-translate-x: 1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.translate-y-0\.5 { --tw-translate-y: 0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.translate-y-2\.5 { --tw-translate-y: 0.625rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.translate-y-3\/4 { --tw-translate-y: 75%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-90 { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.animate-none { animation: none; }
@keyframes pulse {
 50% { opacity: .5; } }
.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes spin {
 to { transform: rotate(360deg); } }
.animate-spin { animation: spin 1s linear infinite; }
.cursor-default { cursor: default; }
.cursor-pointer { cursor: pointer; }
.cursor-text { cursor: text; }
.touch-none { touch-action: none; }
.select-none { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.resize-none { resize: none; }
.resize { resize: both; }
.snap-x { scroll-snap-type: x var(--tw-scroll-snap-strictness); }
.snap-mandatory { --tw-scroll-snap-strictness: mandatory; }
.scroll-px-1 { scroll-padding-left: 0.25rem; scroll-padding-right: 0.25rem; }
.scroll-py-1 { scroll-padding-top: 0.25rem; scroll-padding-bottom: 0.25rem; }
.list-none { list-style-type: none; }
.appearance-none { -webkit-appearance: none; -moz-appearance: none; appearance: none; }
.auto-rows-\[120px\] { grid-auto-rows: 120px; }
.auto-rows-\[180px\] { grid-auto-rows: 180px; }
.auto-rows-\[220px\] { grid-auto-rows: 220px; }
.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-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.grid-cols-\[0_1fr\] { grid-template-columns: 0 1fr; }
.grid-rows-\[1fr_auto\] { grid-template-rows: 1fr auto; }
.grid-rows-\[auto_1fr\] { grid-template-rows: auto 1fr; }
.grid-rows-\[auto_auto\] { grid-template-rows: auto auto; }
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-col { flex-direction: column; }
.flex-col-reverse { flex-direction: column-reverse; }
.flex-wrap { flex-wrap: wrap; }
.place-items-center { place-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.items-center { align-items: center; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }
.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-items-start { justify-items: start; }
.justify-items-center { justify-items: center; }
.gap-0 { gap: 0px; }
.gap-0\.5 { gap: 0.125rem; }
.gap-1 { gap: 0.25rem; }
.gap-1\.5 { gap: 0.375rem; }
.gap-10 { gap: 2.5rem; }
.gap-12 { gap: 3rem; }
.gap-2 { gap: 0.5rem; }
.gap-2\.5 { gap: 0.625rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-7 { gap: 1.75rem; }
.gap-8 { gap: 2rem; }
.gap-\[--spacing\(var\(--gap\)\)\] { gap: calc(var(--spacing) * var(--gap)); }
.gap-\(--card-spacing\) { gap: var(--card-spacing); }
.gap-x-1\.5 { -moz-column-gap: 0.375rem; column-gap: 0.375rem; }
.gap-x-12 { -moz-column-gap: 3rem; column-gap: 3rem; }
.gap-x-2 { -moz-column-gap: 0.5rem; column-gap: 0.5rem; }
.gap-x-20 { -moz-column-gap: 5rem; column-gap: 5rem; }
.gap-x-8 { -moz-column-gap: 2rem; column-gap: 2rem; }
.gap-y-0\.5 { row-gap: 0.125rem; }
.gap-y-1 { row-gap: 0.25rem; }
.gap-y-12 { row-gap: 3rem; }
.gap-y-3 { row-gap: 0.75rem; }
.gap-y-6 { row-gap: 1.5rem; }
.gap-y-8 { row-gap: 2rem; }
.-space-x-1\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-0.375rem * var(--tw-space-x-reverse)); margin-left: calc(-0.375rem * calc(1 - var(--tw-space-x-reverse))); }
:where(.-space-x-2 > :not(:last-child)) { margin-inline-end: -0.5rem; }
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.125rem * var(--tw-space-y-reverse)); }
.space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.375rem * var(--tw-space-y-reverse)); }
.space-y-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); }
.space-y-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(3rem * var(--tw-space-y-reverse)); }
.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }
.space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }
.space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * var(--tw-space-y-reverse)); }
.self-start { align-self: flex-start; }
.self-end { align-self: flex-end; }
.self-stretch { align-self: stretch; }
.justify-self-end { justify-self: end; }
.overflow-auto { overflow: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-x-auto { overflow-x: auto; }
.overflow-y-auto { overflow-y: auto; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-y-scroll { overflow-y: scroll; }
.overscroll-contain { overscroll-behavior: contain; }
.overscroll-x-contain { overscroll-behavior-x: contain; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whitespace-nowrap { white-space: nowrap; }
.whitespace-pre { white-space: pre; }
.whitespace-pre-wrap { white-space: pre-wrap; }
.text-balance { text-wrap: balance; }
.text-pretty { text-wrap: pretty; }
.break-words { overflow-wrap: break-word; }
.rounded { border-radius: 0.25rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.rounded-\[12px\] { border-radius: 12px; }
.rounded-\[16px\] { border-radius: 16px; }
.rounded-\[18px\] { border-radius: 18px; }
.rounded-\[2px\] { border-radius: 2px; }
.rounded-\[2rem\] { border-radius: 2rem; }
.rounded-\[4px\] { border-radius: 4px; }
.rounded-\[calc\(var\(--radius\)-3px\)\] { border-radius: calc(var(--radius) - 3px); }
.rounded-\[calc\(var\(--radius\)-5px\)\] { border-radius: calc(var(--radius) - 5px); }
.rounded-\[inherit\] { border-radius: inherit; }
.rounded-full { border-radius: 9999px; }
.rounded-lg { border-radius: var(--radius); }
.rounded-md { border-radius: var(--radius-control); }
.rounded-none { border-radius: 0px; }
.rounded-sm { border-radius: calc(var(--radius) - 4px); }
.rounded-xl { border-radius: calc(var(--radius) + 4px); }
.rounded-e { border-start-end-radius: 0.25rem; border-end-end-radius: 0.25rem; }
.rounded-e-md { border-start-end-radius: var(--radius-control); border-end-end-radius: var(--radius-control); }
.rounded-e-none { border-start-end-radius: 0px; border-end-end-radius: 0px; }
.rounded-l { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.rounded-s { border-start-start-radius: 0.25rem; border-end-start-radius: 0.25rem; }
.rounded-s-md { border-start-start-radius: var(--radius-control); border-end-start-radius: var(--radius-control); }
.rounded-s-none { border-start-start-radius: 0px; border-end-start-radius: 0px; }
.rounded-t-\[4px\] { border-top-left-radius: 4px; border-top-right-radius: 4px; }
.rounded-t-sm { border-top-left-radius: calc(var(--radius) - 4px); border-top-right-radius: calc(var(--radius) - 4px); }
.rounded-t-xl { border-top-left-radius: calc(var(--radius) + 4px); border-top-right-radius: calc(var(--radius) + 4px); }
.rounded-bl-sm { border-bottom-left-radius: calc(var(--radius) - 4px); }
.rounded-br-sm { border-bottom-right-radius: calc(var(--radius) - 4px); }
.border { border-width: 1px; }
.border-0 { border-width: 0px; }
.border-2 { border-width: 2px; }
.border-8 { border-width: 8px; }
.border-\[1\.5px\] { border-width: 1.5px; }
.border-y { border-top-width: 1px; border-bottom-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-e { border-inline-end-width: 1px; }
.border-l { border-left-width: 1px; }
.border-r { border-right-width: 1px; }
.border-s { border-inline-start-width: 1px; }
.border-s-0 { border-inline-start-width: 0px; }
.border-t { border-top-width: 1px; }
.border-dashed { border-style: dashed; }
.border-none { border-style: none; }
.border-amber-500\/40 { border-color: rgba(254, 154, 0, 0.4); border-color: color-mix(in oklab, var(--color-amber-500) 40%, transparent); }
.border-border { --tw-border-opacity: 1; border-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * var(--tw-border-opacity, 1))); }
.border-border\/50 { border-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * 0.5)); }
.border-destructive { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.border-destructive\/40 { border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
.border-foreground\/90 { border-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.9)); }
.border-gray-200 { --tw-border-opacity: 1; border-color: var(--color-gray-200); }
.border-input { --tw-border-opacity: 1; border-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-border-opacity, 1))); }
.border-lime-400 { --tw-border-opacity: 1; border-color: var(--color-lime-400); }
.border-neutral-200 { --tw-border-opacity: 1; border-color: var(--color-neutral-200); }
.border-neutral-300 { --tw-border-opacity: 1; border-color: var(--color-neutral-300); }
.border-neutral-700 { --tw-border-opacity: 1; border-color: var(--color-neutral-700); }
.border-primary { --tw-border-opacity: 1; border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-border-opacity, 1))); }
.border-primary\/30 { border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.3)); }
.border-primary\/40 { border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.4)); }
@supports (color: oklch(50% 0.1 180)) {
 .border-primary\/40 { border-color: color-mix(in oklab, var(--primary) 40%, transparent); } }
.border-sidebar-border { --tw-border-opacity: 1; border-color: rgba(var(--sidebar-border-rgb), calc(var(--sidebar-border-alpha, 1) * var(--tw-border-opacity, 1))); }
.border-transparent { border-color: transparent; }
.border-white\/10 { border-color: rgb(255 255 255 / 0.1); }
.border-white\/15 { border-color: rgb(255 255 255 / 0.15); }
.bg-\[\#00a1e0\] { --tw-bg-opacity: 1; background-color: rgb(0 161 224 / var(--tw-bg-opacity, 1)); }
.bg-\[\#0a0a0b\] { --tw-bg-opacity: 1; background-color: rgb(10 10 11 / var(--tw-bg-opacity, 1)); }
.bg-\[\#4a154b\] { --tw-bg-opacity: 1; background-color: rgb(74 21 75 / var(--tw-bg-opacity, 1)); }
.bg-\[\#632ca6\] { --tw-bg-opacity: 1; background-color: rgb(99 44 166 / var(--tw-bg-opacity, 1)); }
.bg-\[\#635bff\] { --tw-bg-opacity: 1; background-color: rgb(99 91 255 / var(--tw-bg-opacity, 1)); }
.bg-\[Canvas\] { background-color: Canvas; }
.bg-accent { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-accent\/60 { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.6)); }
.bg-amber-400\/15 { background-color: rgba(255, 185, 0, 0.15); background-color: color-mix(in oklab, var(--color-amber-400) 15%, transparent); }
.bg-amber-50 { --tw-bg-opacity: 1; background-color: var(--color-amber-50); }
.bg-amber-500 { --tw-bg-opacity: 1; background-color: var(--color-amber-500); }
.bg-background { --tw-bg-opacity: 1; background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-background\/80 { background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * 0.8)); }
.bg-background\/95 { background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * 0.95)); }
.bg-black { --tw-bg-opacity: 1; background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); }
.bg-black\/35 { background-color: rgb(0 0 0 / 0.35); }
.bg-black\/60 { background-color: rgb(0 0 0 / 0.6); }
.bg-border { --tw-bg-opacity: 1; background-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-card { --tw-bg-opacity: 1; background-color: rgba(var(--card-rgb), calc(var(--card-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-card\/30 { background-color: rgba(var(--card-rgb), calc(var(--card-alpha, 1) * 0.3)); }
.bg-current { background-color: currentColor; }
.bg-destructive { --tw-bg-opacity: 1; background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-destructive\/10 { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.1)); }
.bg-emerald-100 { --tw-bg-opacity: 1; background-color: var(--color-emerald-100); }
.bg-emerald-400 { --tw-bg-opacity: 1; background-color: var(--color-emerald-400); }
.bg-emerald-500 { --tw-bg-opacity: 1; background-color: var(--color-emerald-500); }
.bg-emerald-600 { --tw-bg-opacity: 1; background-color: var(--color-emerald-600); }
.bg-foreground { --tw-bg-opacity: 1; background-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-foreground\/10 { background-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.1)); }
.bg-gray-200 { --tw-bg-opacity: 1; background-color: var(--color-gray-200); }
.bg-gray-50 { --tw-bg-opacity: 1; background-color: var(--color-gray-50); }
.bg-input { --tw-bg-opacity: 1; background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-lime-100 { --tw-bg-opacity: 1; background-color: var(--color-lime-100); }
.bg-lime-500 { --tw-bg-opacity: 1; background-color: var(--color-lime-500); }
.bg-muted { --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-muted-foreground { --tw-bg-opacity: 1; background-color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-muted-foreground\/40 { background-color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * 0.4)); }
.bg-muted\/30 { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.3)); }
.bg-muted\/40 { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.4)); }
.bg-muted\/50 { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.bg-neutral-100 { --tw-bg-opacity: 1; background-color: var(--color-neutral-100); }
.bg-neutral-200 { --tw-bg-opacity: 1; background-color: var(--color-neutral-200); }
.bg-neutral-800 { --tw-bg-opacity: 1; background-color: var(--color-neutral-800); }
.bg-neutral-950 { --tw-bg-opacity: 1; background-color: var(--color-neutral-950); }
.bg-popover { --tw-bg-opacity: 1; background-color: rgba(var(--popover-rgb), calc(var(--popover-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-primary { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
@supports (color: oklch(50% 0.1 180)) {
 .bg-primary { background-color: var(--primary); } }
.bg-primary\/10 { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.1)); }
.bg-primary\/15 { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.15)); }
.bg-primary\/20 { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.2)); }
.bg-primary\/5 { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.05)); }
.bg-primary\/85 { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.85)); }
.bg-secondary { --tw-bg-opacity: 1; background-color: rgba(var(--secondary-rgb), calc(var(--secondary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-sidebar { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-rgb), calc(var(--sidebar-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-sidebar-border { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-border-rgb), calc(var(--sidebar-border-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-sidebar-primary { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-primary-rgb), calc(var(--sidebar-primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.bg-sky-100 { --tw-bg-opacity: 1; background-color: var(--color-sky-100); }
.bg-sky-400\/15 { background-color: rgba(0, 188, 255, 0.15); background-color: color-mix(in oklab, var(--color-sky-400) 15%, transparent); }
.bg-sky-500 { --tw-bg-opacity: 1; background-color: var(--color-sky-500); }
.bg-slate-100 { --tw-bg-opacity: 1; background-color: var(--color-slate-100); }
.bg-transparent { background-color: transparent; }
.bg-violet-100 { --tw-bg-opacity: 1; background-color: var(--color-violet-100); }
.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }
.bg-white\/10 { background-color: rgb(255 255 255 / 0.1); }
.bg-white\/40 { background-color: rgb(255 255 255 / 0.4); }
.bg-white\/\[0\.02\] { background-color: rgb(255 255 255 / 0.02); }
.bg-white\/\[0\.03\] { background-color: rgb(255 255 255 / 0.03); }
.bg-white\/\[0\.04\] { background-color: rgb(255 255 255 / 0.04); }
.bg-\[repeating-linear-gradient\(to_top\2c var\(--border\)_0_1px\2c transparent_1px_25\%\)\] { background-image: repeating-linear-gradient(to top,var(--border) 0 1px,transparent 1px 25%); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-tl { background-image: linear-gradient(to top left, var(--tw-gradient-stops)); }
.bg-gradient-to-tr { background-image: linear-gradient(to top right, var(--tw-gradient-stops)); }
.from-accent\/35 { --tw-gradient-from: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.35)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-destructive\/70 { --tw-gradient-from: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.7)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-muted\/50 { --tw-gradient-from: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-orange-500\/20 { --tw-gradient-from: color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-primary { --tw-gradient-from: var(--primary) var(--tw-gradient-from-position); --tw-gradient-to: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0)) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-primary\/25 { --tw-gradient-from: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.25)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-primary\/40 { --tw-gradient-from: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.4)) var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-accent { --tw-gradient-to: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0))  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--accent) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.via-accent\/20 { --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.2)) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.via-pink-500\/10 { --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), color-mix(in oklab, var(--color-pink-500) 10%, transparent) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.to-muted { --tw-gradient-to: var(--muted) var(--tw-gradient-to-position); }
.to-primary { --tw-gradient-to: var(--primary) var(--tw-gradient-to-position); }
.to-primary\/70 { --tw-gradient-to: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.7)) var(--tw-gradient-to-position); }
.to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position); }
.bg-clip-padding { background-clip: padding-box; }
.fill-black { fill: #000; }
.fill-emerald-500 { fill: var(--color-emerald-500); }
.fill-none { fill: none; }
.fill-white { fill: #fff; }
.stroke-black { stroke: #000; }
.stroke-white { stroke: #fff; }
.object-cover { -o-object-fit: cover; object-fit: cover; }
.object-fill { -o-object-fit: fill; object-fit: fill; }
.p-0 { padding: 0px; }
.p-0\.5 { padding: 0.125rem; }
.p-1 { padding: 0.25rem; }
.p-1\.5 { padding: 0.375rem; }
.p-10 { padding: 2.5rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.p-\[3px\] { padding: 3px; }
.p-\(--card-spacing\) { padding: var(--card-spacing); }
.p-px { padding: 1px; }
.px-0 { padding-left: 0px; padding-right: 0px; }
.px-0\.5 { padding-left: 0.125rem; padding-right: 0.125rem; }
.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
.px-12 { padding-left: 3rem; padding-right: 3rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.px-\(--card-spacing\) { padding-left: var(--card-spacing); padding-right: var(--card-spacing); }
.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-\(--card-spacing\) { padding-top: var(--card-spacing); padding-bottom: var(--card-spacing); }
.pb-1 { padding-bottom: 0.25rem; }
.pb-10 { padding-bottom: 2.5rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-24 { padding-bottom: 6rem; }
.pb-3 { padding-bottom: 0.75rem; }
.pb-4 { padding-bottom: 1rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-\[env\(safe-area-inset-bottom\)\] { padding-bottom: env(safe-area-inset-bottom); }
.pe-1 { padding-inline-end: 0.25rem; }
.pe-10 { padding-inline-end: 2.5rem; }
.pe-12 { padding-inline-end: 3rem; }
.pe-2\.5 { padding-inline-end: 0.625rem; }
.pe-3 { padding-inline-end: 0.75rem; }
.pe-8 { padding-inline-end: 2rem; }
.pe-9 { padding-inline-end: 2.25rem; }
.pl-2 { padding-left: 0.5rem; }
.pl-6 { padding-left: 1.5rem; }
.pl-8 { padding-left: 2rem; }
.pr-2 { padding-right: 0.5rem; }
.pr-8 { padding-right: 2rem; }
.pr-9 { padding-right: 2.25rem; }
.ps-1 { padding-inline-start: 0.25rem; }
.ps-2 { padding-inline-start: 0.5rem; }
.ps-3 { padding-inline-start: 0.75rem; }
.ps-4 { padding-inline-start: 1rem; }
.ps-7 { padding-inline-start: 1.75rem; }
.pt-0 { padding-top: 0px; }
.pt-1 { padding-top: 0.25rem; }
.pt-2\.5 { padding-top: 0.625rem; }
.pt-3 { padding-top: 0.75rem; }
.pt-4 { padding-top: 1rem; }
.pt-6 { padding-top: 1.5rem; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }
.text-start { text-align: start; }
.text-end { text-align: end; }
.align-top { vertical-align: top; }
.align-middle { vertical-align: middle; }
.font-mono { font-family: var(--font-mono); }
.font-sans { font-family: var(--font-sans); }
.font-serif { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-8xl { font-size: 6rem; line-height: 1; }
.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-\[15px\] { font-size: 15px; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-control { font-size: var(--control-text); }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-sm\/relaxed { font-size: 0.875rem; line-height: 1.625; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-xs { font-size: 0.75rem; line-height: calc(1 / 0.75); }
.font-black { font-weight: 900; }
.font-bold { font-weight: 700; }
.font-light { font-weight: 300; }
.font-medium { font-weight: 500; }
.font-normal { font-weight: 400; }
.font-semibold { font-weight: 600; }
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }
.italic { font-style: italic; }
.ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); }
.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); }
.leading-none { line-height: 1; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-snug { line-height: 1.375; }
.leading-tight { line-height: 1.25; }
.-tracking-normal { letter-spacing: -0em; }
.tracking-tight { letter-spacing: -0.025em; }
.tracking-tighter { letter-spacing: -0.05em; }
.tracking-wide { letter-spacing: 0.025em; }
.tracking-wider { letter-spacing: 0.05em; }
.tracking-widest { letter-spacing: 0.1em; }
.text-\[CanvasText\] { color: CanvasText; }
.text-amber-300 { --tw-text-opacity: 1; color: var(--color-amber-300); }
.text-amber-500 { --tw-text-opacity: 1; color: var(--color-amber-500); }
.text-amber-900 { --tw-text-opacity: 1; color: var(--color-amber-900); }
.text-amber-950 { --tw-text-opacity: 1; color: var(--color-amber-950); }
.text-background { --tw-text-opacity: 1; color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-black { --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity, 1)); }
.text-card-foreground { --tw-text-opacity: 1; color: rgba(var(--card-foreground-rgb), calc(var(--card-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-destructive { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-emerald-500 { --tw-text-opacity: 1; color: var(--color-emerald-500); }
.text-emerald-600 { --tw-text-opacity: 1; color: var(--color-emerald-600); }
.text-emerald-700 { --tw-text-opacity: 1; color: var(--color-emerald-700); }
.text-foreground { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-foreground\/60 { color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.6)); }
.text-gray-600 { --tw-text-opacity: 1; color: var(--color-gray-600); }
.text-green-400 { --tw-text-opacity: 1; color: var(--color-green-400); }
.text-muted-foreground { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-muted-foreground\/50 { color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * 0.5)); }
.text-neutral-200 { --tw-text-opacity: 1; color: var(--color-neutral-200); }
.text-neutral-300 { --tw-text-opacity: 1; color: var(--color-neutral-300); }
.text-neutral-400 { --tw-text-opacity: 1; color: var(--color-neutral-400); }
.text-neutral-500 { --tw-text-opacity: 1; color: var(--color-neutral-500); }
.text-neutral-600 { --tw-text-opacity: 1; color: var(--color-neutral-600); }
.text-neutral-700 { --tw-text-opacity: 1; color: var(--color-neutral-700); }
.text-neutral-800 { --tw-text-opacity: 1; color: var(--color-neutral-800); }
.text-neutral-900 { --tw-text-opacity: 1; color: var(--color-neutral-900); }
.text-popover-foreground { --tw-text-opacity: 1; color: rgba(var(--popover-foreground-rgb), calc(var(--popover-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-primary { --tw-text-opacity: 1; color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-text-opacity, 1))); }
@supports (color: oklch(50% 0.1 180)) {
 .text-primary { color: var(--primary); } }
.text-primary-foreground { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-rose-300 { --tw-text-opacity: 1; color: var(--color-rose-300); }
.text-secondary-foreground { --tw-text-opacity: 1; color: rgba(var(--secondary-foreground-rgb), calc(var(--secondary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-sidebar-foreground { --tw-text-opacity: 1; color: rgba(var(--sidebar-foreground-rgb), calc(var(--sidebar-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-sidebar-foreground\/70 { color: rgba(var(--sidebar-foreground-rgb), calc(var(--sidebar-foreground-alpha, 1) * 0.7)); }
.text-sidebar-primary-foreground { --tw-text-opacity: 1; color: rgba(var(--sidebar-primary-foreground-rgb), calc(var(--sidebar-primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.text-sky-300 { --tw-text-opacity: 1; color: var(--color-sky-300); }
.text-sky-700 { --tw-text-opacity: 1; color: var(--color-sky-700); }
.text-violet-500 { --tw-text-opacity: 1; color: var(--color-violet-500); }
.text-violet-700 { --tw-text-opacity: 1; color: var(--color-violet-700); }
.text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
.text-white\/25 { color: rgb(255 255 255 / 0.25); }
.text-white\/35 { color: rgb(255 255 255 / 0.35); }
.text-white\/40 { color: rgb(255 255 255 / 0.4); }
.text-white\/45 { color: rgb(255 255 255 / 0.45); }
.text-white\/50 { color: rgb(255 255 255 / 0.5); }
.text-white\/55 { color: rgb(255 255 255 / 0.55); }
.text-white\/70 { color: rgb(255 255 255 / 0.7); }
.text-white\/80 { color: rgb(255 255 255 / 0.8); }
.underline { text-decoration-line: underline; }
.overline { text-decoration-line: overline; }
.line-through { text-decoration-line: line-through; }
.no-underline { text-decoration-line: none; }
.underline-offset-4 { text-underline-offset: 4px; }
.accent-primary { accent-color: var(--primary); }
.opacity-0 { opacity: 0; }
.opacity-40 { opacity: 0.4; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-80 { opacity: 0.8; }
.shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-\[0_0_0_1px_var\(--sidebar-border\)\] { --tw-shadow: 0 0 0 1px var(--sidebar-border); --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-lg { --tw-shadow: var(--elevation-4); --tw-shadow-colored: var(--elevation-4); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-md { --tw-shadow: var(--elevation-3); --tw-shadow-colored: var(--elevation-3); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-none { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-sm { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-xs { --tw-shadow: var(--elevation-1); --tw-shadow-colored: var(--elevation-1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.outline-none { outline-style: none; }
.outline { outline-style: solid; }
.ring { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.ring-2 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.ring-4 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.ring-background { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-ring-opacity, 1))); }
.ring-card { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--card-rgb), calc(var(--card-alpha, 1) * var(--tw-ring-opacity, 1))); }
.ring-destructive\/20 { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.ring-emerald-500\/20 { --tw-ring-color: rgba(0, 188, 125, 0.2); --tw-ring-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent); }
.ring-foreground\/10 { --tw-ring-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.1)); }
.ring-primary { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-ring-opacity, 1))); }
.ring-sidebar-ring { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--sidebar-ring-rgb), calc(var(--sidebar-ring-alpha, 1) * var(--tw-ring-opacity, 1))); }
.ring-sky-500\/20 { --tw-ring-color: rgba(0, 166, 244, 0.2); --tw-ring-color: color-mix(in oklab, var(--color-sky-500) 20%, transparent); }
.ring-offset-background { --tw-ring-offset-color: var(--background); }
.blur { --tw-blur: blur(8px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.blur-3xl { --tw-blur: blur(64px); 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); }
.blur-\[2px\] { --tw-blur: blur(2px); 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); }
.brightness-60 { --tw-brightness: brightness(0.6); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.drop-shadow { --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06)); 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 { --tw-grayscale: grayscale(100%); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.invert { --tw-invert: invert(100%); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.sepia { --tw-sepia: sepia(100%); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.filter { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.backdrop-blur { --tw-backdrop-blur: blur(8px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.backdrop-blur-md { --tw-backdrop-blur: blur(12px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.backdrop-blur-xl { --tw-backdrop-blur: blur(24px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[color\2c box-shadow\] { transition-property: color,box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[height\] { transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[left\2c right\2c width\] { transition-property: left,right,width; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[margin\2c opacity\] { transition-property: margin,opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[opacity\2c color\2c background-color\] { transition-property: opacity,color,background-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[translate\2c scale\2c opacity\] { transition-property: translate,scale,opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[width\2c height\2c padding\] { transition-property: width,height,padding; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-\[width\] { transition-property: width; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.duration-100 { transition-duration: 100ms; }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-75 { transition-duration: 75ms; }
.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
.ease-linear { transition-timing-function: linear; }
.ease-out { transition-timing-function: var(--ease-ui); }
.contain-content { contain: content; }
.\@container { container-type: inline-size; }
.\@container\/card-header { container-type: inline-size; container-name: card-header; }
.\@container\/field-group { container-type: inline-size; container-name: field-group; }
.size-control { width: var(--control-h); height: var(--control-h); }
.ring-3 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.outline-hidden { outline-style: none; }
.wrap-break-word { overflow-wrap: break-word; }
.scrollbar-gutter-stable { scrollbar-gutter: stable; }
.scrollbar-none { scrollbar-width: none; }
.scrollbar-none::-webkit-scrollbar { display: none; }
.scrollbar-thin { scrollbar-width: thin; }
.field-sizing-content { field-sizing: content; }
.bg-linear-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
.size-6\.5 { width: 1.625rem; height: 1.625rem; }
.h-140 { height: 35rem; }
.rounded-xs { border-radius: 0.125rem; }
.inset-s-1\/2 { inset-inline-start: 50%; }
    /* [up-nav] adds .up-current to whichever nav row matches the address bar. Utilities on
       purpose: the row is an Item, and Item's own bg-transparent sits in this same layer -
       a rule in @layer components lost that one property to the layer order while the other
       two won on specificity, which is a highlight with a missing background. */
    .doc-nav-item.up-current { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); font-weight: 500; --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }

    /* A route opened in an Unpoly layer arrives as the whole .doc-main, page padding included.
       The overlay box already pads its content (ui.behavior.css), so the page's py-8 would be
       a second, larger margin inside the dialog. One element more specific than .py-8. */
    :is(up-modal-content, up-drawer-content) > .doc-main {
        padding-block: 0;
    }
.\[--background\:white\] { --background: white; --background-rgb: 255, 255, 255; --background-alpha: 1; }
.\[--cell-size\:--spacing\(10\)\] { --cell-size: calc(var(--spacing) * 10); }
.\[--cell-size\:--spacing\(9\)\] { --cell-size: calc(var(--spacing) * 9); }
.\[--cell-size\:\.\.\.\] { --cell-size: ...; }
.\[--cell-size\:\2026\] { --cell-size: …; }
.\[-0-\:A-Za-z\] { -0-: A-Za-z; }
.\[-0-\:A-Za-\{\}\] { -0-: A-Za-{}; }
.\[-0-\:\\\\\\\\w\] { -0-: \\\\w; }
.\[-\:\?\] { -: ?; }
.\[-\:\@\] { -: @; }
.\[-\:A-Za-z\] { -: A-Za-z; }
.\!\[-\:\\\\\\\\\\\\\\\\w\] { -: \\\\\\\\w !important; }
.\!\[-\:\\\\\\\\w\] { -: \\\\w !important; }
.\[-\:\\\\\\\\w\] { -: \\\\w; }
.\[-\:a-z\] { -: a-z; }
.\[contain-intrinsic-size\:auto_10rem\] { contain-intrinsic-size: auto 10rem; }
.\[content-visibility\:auto\] { content-visibility: auto; }
.\[mask-image\:radial-gradient\(ellipse_at_center\2c black\2c transparent\)\] { -webkit-mask-image: radial-gradient(ellipse at center,black,transparent); mask-image: radial-gradient(ellipse at center,black,transparent); }
/* The CLI does not scan .razor on its own — without these every utility written in markup is
    silently dropped. ui.js is here because it builds the Select panel, the dropdown and the
    confirm dialog out of class strings that exist nowhere else. */
.selection\:bg-primary *::-moz-selection { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.selection\:bg-primary *::selection { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.selection\:text-primary-foreground *::-moz-selection { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.selection\:text-primary-foreground *::selection { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.selection\:bg-primary::-moz-selection { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.selection\:bg-primary::selection { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.selection\:text-primary-foreground::-moz-selection { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.selection\:text-primary-foreground::selection { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.file\:inline-flex::file-selector-button { display: inline-flex; }
.file\:h-7::file-selector-button { height: 1.75rem; }
.file\:border-0::file-selector-button { border-width: 0px; }
.file\:bg-transparent::file-selector-button { background-color: transparent; }
.file\:text-sm::file-selector-button { font-size: 0.875rem; line-height: 1.25rem; }
.file\:font-medium::file-selector-button { font-weight: 500; }
.file\:text-foreground::file-selector-button { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.placeholder\:text-muted-foreground::-moz-placeholder { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.placeholder\:text-muted-foreground::placeholder { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.before\:me-1::before { content: var(--tw-content); margin-inline-end: 0.25rem; }
.before\:h-px::before { content: var(--tw-content); height: 1px; }
.before\:min-w-0::before { content: var(--tw-content); min-width: 0px; }
.before\:flex-1::before { content: var(--tw-content); flex: 1 1 0%; }
.before\:bg-border::before { content: var(--tw-content); --tw-bg-opacity: 1; background-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * var(--tw-bg-opacity, 1))); }
.after\:absolute::after { content: var(--tw-content); position: absolute; }
.after\:-inset-2::after { content: var(--tw-content); inset: -0.5rem; }
.after\:inset-y-0::after { content: var(--tw-content); top: 0px; bottom: 0px; }
.after\:left-1\/2::after { content: var(--tw-content); left: 50%; }
.after\:ms-1::after { content: var(--tw-content); margin-inline-start: 0.25rem; }
.after\:h-px::after { content: var(--tw-content); height: 1px; }
.after\:w-1::after { content: var(--tw-content); width: 0.25rem; }
.after\:w-\[2px\]::after { content: var(--tw-content); width: 2px; }
.after\:min-w-0::after { content: var(--tw-content); min-width: 0px; }
.after\:flex-1::after { content: var(--tw-content); flex: 1 1 0%; }
.after\:-translate-x-1\/2::after { content: var(--tw-content); --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.after\:bg-border::after { content: var(--tw-content); --tw-bg-opacity: 1; background-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * var(--tw-bg-opacity, 1))); }
.after\:bg-foreground::after { content: var(--tw-content); --tw-bg-opacity: 1; background-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-bg-opacity, 1))); }
.after\:opacity-0::after { content: var(--tw-content); opacity: 0; }
.after\:transition-opacity::after { content: var(--tw-content); transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.first\:rounded-s-md:first-child { border-start-start-radius: var(--radius-control); border-end-start-radius: var(--radius-control); }
.first\:border-s:first-child { border-inline-start-width: 1px; }
.last\:mt-0:last-child { margin-top: 0px; }
.last\:rounded-e-md:last-child { border-start-end-radius: var(--radius-control); border-end-end-radius: var(--radius-control); }
.last\:border-b:last-child { border-bottom-width: 1px; }
.last\:border-b-0:last-child { border-bottom-width: 0px; }
.checked\:border-primary:checked { --tw-border-opacity: 1; border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-border-opacity, 1))); }
.checked\:bg-lime-500:checked { --tw-bg-opacity: 1; background-color: var(--color-lime-500); }
.checked\:bg-primary:checked { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.checked\:text-primary-foreground:checked { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.empty\:hidden:empty { display: none; }
.focus-within\:border-ring:focus-within { --tw-border-opacity: 1; border-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-border-opacity, 1))); }
.focus-within\:ring-1:focus-within { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-within\:ring-\[3px\]:focus-within { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-within\:ring-ring\/50:focus-within { --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5)); }
.hover\:border-foreground\/30:hover { border-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.3)); }
.hover\:border-primary:hover { --tw-border-opacity: 1; border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-border-opacity, 1))); }
.hover\:bg-accent:hover { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.hover\:bg-accent\/30:hover { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.3)); }
.hover\:bg-accent\/40:hover { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.4)); }
.hover\:bg-accent\/50:hover { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.hover\:bg-destructive\/10:hover { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.1)); }
.hover\:bg-destructive\/90:hover { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.9)); }
.hover\:bg-muted:hover { --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); }
.hover\:bg-muted\/50:hover { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.hover\:bg-muted\/80:hover { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.8)); }
.hover\:bg-neutral-100:hover { --tw-bg-opacity: 1; background-color: var(--color-neutral-100); }
.hover\:bg-neutral-100\/80:hover { background-color: rgba(245, 245, 245, 0.8); background-color: color-mix(in oklab, var(--color-neutral-100) 80%, transparent); }
.hover\:bg-primary\/5:hover { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.05)); }
.hover\:bg-primary\/90:hover { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.9)); }
@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: rgba(var(--secondary-rgb), calc(var(--secondary-alpha, 1) * 0.8)); }
.hover\:bg-sidebar-accent:hover { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-accent-rgb), calc(var(--sidebar-accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.hover\:bg-white:hover { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }
.hover\:text-accent-foreground:hover { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.hover\:text-foreground:hover { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.hover\:text-muted-foreground:hover { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.hover\:text-neutral-900:hover { --tw-text-opacity: 1; color: var(--color-neutral-900); }
.hover\:text-sidebar-accent-foreground:hover { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.hover\:text-white:hover { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
.hover\:underline:hover { text-decoration-line: underline; }
.hover\:opacity-100:hover { opacity: 1; }
.hover\:opacity-80:hover { opacity: 0.8; }
.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover { --tw-shadow: 0 0 0 1px var(--sidebar-accent); --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:shadow-lg:hover { --tw-shadow: var(--elevation-4); --tw-shadow-colored: var(--elevation-4); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:shadow-sm:hover { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:shadow-neutral-200:hover { --tw-shadow-color: var(--color-neutral-200); --tw-shadow: var(--tw-shadow-colored); }
.hover\:after\:bg-sidebar-border:hover::after { content: var(--tw-content); --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-border-rgb), calc(var(--sidebar-border-alpha, 1) * var(--tw-bg-opacity, 1))); }
.focus\:z-10:focus { z-index: 10; }
.focus\:bg-accent:focus { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.focus\:text-accent-foreground:focus { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.focus\:shadow-md:focus { --tw-shadow: var(--elevation-3); --tw-shadow-colored: var(--elevation-3); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus\:ring-ring:focus { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-ring-opacity, 1))); }
.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; }
.focus\:outline-hidden:focus { outline-style: none; }
.focus-visible\:z-10:focus-visible { z-index: 10; }
.focus-visible\:border-ring:focus-visible { --tw-border-opacity: 1; border-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-border-opacity, 1))); }
.focus-visible\:bg-accent:focus-visible { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.focus-visible\:text-accent-foreground:focus-visible { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.focus-visible\:opacity-100:focus-visible { opacity: 1; }
.focus-visible\:outline-none:focus-visible { outline: 2px solid transparent; outline-offset: 2px; }
.focus-visible\:outline-1:focus-visible { outline-width: 1px; }
.focus-visible\:outline-ring:focus-visible { outline-color: var(--ring); }
.focus-visible\:ring-0:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-visible\:ring-1:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-visible\:ring-2:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-visible\:ring-\[3px\]:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-visible\:ring-destructive\/20:focus-visible { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.focus-visible\:ring-ring:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-ring-opacity, 1))); }
.focus-visible\:ring-ring\/50:focus-visible { --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5)); }
.focus-visible\:ring-offset-1:focus-visible { --tw-ring-offset-width: 1px; }
.focus-visible\:ring-3:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus-visible\:outline-hidden:focus-visible { outline-style: none; }
.active\:scale-95:active { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.active\:scale-\[0\.97\]:active { --tw-scale-x: 0.97; --tw-scale-y: 0.97; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.active\:bg-sidebar-accent:active { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-accent-rgb), calc(var(--sidebar-accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.active\:text-sidebar-accent-foreground:active { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.disabled\:pointer-events-none:disabled { pointer-events: none; }
.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }
.disabled\:opacity-50:disabled { opacity: 0.5; }
.group\/more[open] .group-open\/more\:hidden { display: none; }
.group\/collapsible[open] .group-open\/collapsible\:rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100 { opacity: 1; }
.group:hover .group-hover\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group:hover .group-hover\:bg-muted\/40 { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.4)); }
.group:hover .group-hover\:bg-primary { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.group:hover .group-hover\:underline { text-decoration-line: underline; }
.group\/file-upload:hover .group-hover\/file-upload\:opacity-100 { opacity: 1; }
.group\/menu-item:hover .group-hover\/menu-item\:opacity-100 { opacity: 1; }
.group:hover .group-hover\:opacity-100 { opacity: 1; }
.group:focus-visible .group-focus-visible\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group:focus-visible .group-focus-visible\:opacity-100 { opacity: 1; }
.peer:checked ~ .peer-checked\:opacity-100 { opacity: 1; }
.peer\/menu-button:hover ~ .peer-hover\/menu-button\:text-sidebar-accent-foreground { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.peer:disabled ~ .peer-disabled\:cursor-not-allowed { cursor: not-allowed; }
.peer:disabled ~ .peer-disabled\:opacity-50 { opacity: 0.5; }
.has-\[\:disabled\]\:pointer-events-none:has(:disabled) { pointer-events: none; }
.has-\[\>button\]\:me-\[-0\.45rem\]:has(>button) { margin-inline-end: -0.45rem; }
.has-\[\>button\]\:ms-\[-0\.45rem\]:has(>button) { margin-inline-start: -0.45rem; }
.has-\[\>kbd\]\:me-\[-0\.35rem\]:has(>kbd) { margin-inline-end: -0.35rem; }
.has-\[\>kbd\]\:ms-\[-0\.35rem\]:has(>kbd) { margin-inline-start: -0.35rem; }
.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]) { height: auto; }
.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]) { height: auto; }
.has-\[\>textarea\]\:h-auto:has(>textarea) { height: auto; }
.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]) { width: 100%; }
.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg) { grid-template-columns: calc(var(--spacing) * 4) 1fr; }
.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]) { flex-direction: column; }
.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]) { flex-direction: column; }
.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]) { flex-direction: column; }
.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]) { align-items: flex-start; }
.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]) { gap: 0.5rem; }
.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]) { gap: 0.75rem; }
.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]) { gap: 0.75rem; }
.has-\[\>svg\]\:gap-x-3:has(>svg) { -moz-column-gap: 0.75rem; column-gap: 0.75rem; }
.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]) { border-radius: var(--radius-control); }
.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]) { border-width: 1px; }
.has-\[\:checked\]\:border-primary:has(:checked) { --tw-border-opacity: 1; border-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-border-opacity, 1))); }
.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible) { --tw-border-opacity: 1; border-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-border-opacity, 1))); }
.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]) { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.has-\[\:checked\]\:bg-accent:has(:checked) { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.has-\[\:checked\]\:bg-background:has(:checked) { --tw-bg-opacity: 1; background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-bg-opacity, 1))); }
.has-\[\:checked\]\:bg-primary:has(:checked) { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.has-\[\:checked\]\:bg-primary\/5:has(:checked) { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.05)); }
.has-\[\:checked\]\:bg-white:has(:checked) { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }
.has-\[\>svg\]\:p-0:has(>svg) { padding: 0px; }
.has-\[button\]\:p-0:has(button) { padding: 0px; }
.has-\[\>svg\]\:px-1\.5:has(>svg) { padding-left: 0.375rem; padding-right: 0.375rem; }
.has-\[\>svg\]\:px-2:has(>svg) { padding-left: 0.5rem; padding-right: 0.5rem; }
.has-\[\>svg\]\:px-2\.5:has(>svg) { padding-left: 0.625rem; padding-right: 0.625rem; }
.has-\[\>svg\]\:px-3:has(>svg) { padding-left: 0.75rem; padding-right: 0.75rem; }
.has-\[\>svg\]\:px-4:has(>svg) { padding-left: 1rem; padding-right: 1rem; }
.has-\[\:checked\]\:text-accent-foreground:has(:checked) { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.has-\[\:checked\]\:text-black:has(:checked) { --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity, 1)); }
.has-\[\:checked\]\:text-foreground:has(:checked) { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.has-\[\:checked\]\:text-primary-foreground:has(:checked) { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.has-\[\:checked\]\:line-through:has(:checked) { text-decoration-line: line-through; }
.has-\[\:checked\]\:opacity-60:has(:checked) { opacity: 0.6; }
.has-\[\:disabled\]\:opacity-50:has(:disabled) { opacity: 0.5; }
.has-\[select\:disabled\]\:opacity-50:has(select:disabled) { opacity: 0.5; }
.has-\[\:checked\]\:shadow-sm:has(:checked) { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.has-\[\:focus-visible\]\:ring-\[3px\]:has(:focus-visible) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]:focus-visible) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.has-\[button\]\:ring-0:has(button) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.has-\[\:focus-visible\]\:ring-ring\/50:has(:focus-visible) { --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5)); }
.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible) { --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5)); }
.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.has-\[\>a\]\:hover\:bg-muted\/50:hover:has(>a) { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.has-\[\>button\]\:hover\:bg-muted\/50:hover:has(>button) { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.group\/field:has(input[value=bold]:checked) .group-has-\[input\[value\=bold\]\:checked\]\/field\:inline { display: inline; }
.group\/field:has(input[value=light]:checked) .group-has-\[input\[value\=light\]\:checked\]\/field\:inline { display: inline; }
.group\/field:has(input[value=medium]:checked) .group-has-\[input\[value\=medium\]\:checked\]\/field\:inline { display: inline; }
.group\/field:has(input[value=normal]:checked) .group-has-\[input\[value\=normal\]\:checked\]\/field\:inline { display: inline; }
.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5 { --tw-translate-y: 0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start { align-self: flex-start; }
.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance { text-wrap: balance; }
.group\/toggle:has(:checked) .group-has-\[\:checked\]\/toggle\:fill-foreground { fill: var(--foreground); }
.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5 { padding-bottom: 0.625rem; }
.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5 { padding-top: 0.625rem; }
.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-black { --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity, 1)); }
.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-lime-600 { --tw-text-opacity: 1; color: var(--color-lime-600); }
.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-neutral-400 { --tw-text-opacity: 1; color: var(--color-neutral-400); }
.aria-disabled\:pointer-events-none[aria-disabled="true"] { pointer-events: none; }
.aria-disabled\:opacity-50[aria-disabled="true"] { opacity: 0.5; }
.aria-expanded\:bg-accent[aria-expanded="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.aria-expanded\:text-destructive[aria-expanded="true"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.aria-expanded\:text-foreground[aria-expanded="true"] { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.aria-pressed\:border-foreground[aria-pressed="true"] { --tw-border-opacity: 1; border-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-border-opacity, 1))); }
.aria-pressed\:bg-accent[aria-pressed="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.aria-\[orientation\=horizontal\]\:h-px[aria-orientation="horizontal"] { height: 1px; }
.aria-\[orientation\=horizontal\]\:w-full[aria-orientation="horizontal"] { width: 100%; }
.aria-\[orientation\=vertical\]\:flex-col[aria-orientation="vertical"] { flex-direction: column; }
.aria-\[orientation\=horizontal\]\:after\:left-0[aria-orientation="horizontal"]::after { content: var(--tw-content); left: 0px; }
.aria-\[orientation\=horizontal\]\:after\:h-1[aria-orientation="horizontal"]::after { content: var(--tw-content); height: 0.25rem; }
.aria-\[orientation\=horizontal\]\:after\:w-full[aria-orientation="horizontal"]::after { content: var(--tw-content); width: 100%; }
.aria-\[orientation\=horizontal\]\:after\:-translate-y-1\/2[aria-orientation="horizontal"]::after { content: var(--tw-content); --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.aria-\[orientation\=horizontal\]\:after\:translate-x-0[aria-orientation="horizontal"]::after { content: var(--tw-content); --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[active\=false\]\:pointer-events-none[data-active="false"] { pointer-events: none; }
.data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] { pointer-events: none; }
.data-\[disabled\]\:pointer-events-none[data-disabled] { pointer-events: none; }
.data-\[uploading\=true\]\:pointer-events-none[data-uploading="true"] { pointer-events: none; }
.data-\[direction\=end\]\:bottom-4[data-direction="end"] { bottom: 1rem; }
.data-\[direction\=start\]\:top-4[data-direction="start"] { top: 1rem; }
.data-\[size\=lg\]\:size-10[data-size="lg"] { width: 2.5rem; height: 2.5rem; }
.data-\[size\=sm\]\:size-6[data-size="sm"] { width: 1.5rem; height: 1.5rem; }
.data-\[orientation\=horizontal\]\:h-px[data-orientation="horizontal"] { height: 1px; }
.data-\[orientation\=vertical\]\:h-auto[data-orientation="vertical"] { height: auto; }
.data-\[orientation\=vertical\]\:h-full[data-orientation="vertical"] { height: 100%; }
.data-\[size\=default\]\:h-\[1\.15rem\][data-size="default"] { height: 1.15rem; }
.data-\[size\=sm\]\:h-3\.5[data-size="sm"] { height: 0.875rem; }
.data-\[size\=sm\]\:h-8[data-size="sm"] { height: 2rem; }
.data-\[orientation\=vertical\]\:min-h-44[data-orientation="vertical"] { min-height: 11rem; }
.data-\[orientation\=horizontal\]\:w-full[data-orientation="horizontal"] { width: 100%; }
.data-\[orientation\=vertical\]\:w-4[data-orientation="vertical"] { width: 1rem; }
.data-\[orientation\=vertical\]\:w-px[data-orientation="vertical"] { width: 1px; }
.data-\[size\=default\]\:w-8[data-size="default"] { width: 2rem; }
.data-\[size\=sm\]\:w-6[data-size="sm"] { width: 1.5rem; }
.data-\[chips\=true\]\:min-w-\(--anchor-width\)[data-chips="true"] { min-width: var(--anchor-width); }
.data-\[size\=sm\]\:max-w-xs[data-size="sm"] { max-width: 20rem; }
.data-\[variant\=ghost\]\:max-w-full[data-variant="ghost"] { max-width: 100%; }
.data-\[active\=true\]\:translate-y-0[data-active="true"] { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-active="false"][data-direction="end"] { --tw-translate-y: 100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-active="false"][data-direction="start"] { --tw-translate-y: -100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[active\=false\]\:scale-95[data-active="false"] { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[active\=true\]\:scale-100[data-active="true"] { --tw-scale-x: 1; --tw-scale-y: 1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.data-\[clickable\=true\]\:cursor-pointer[data-clickable="true"] { cursor: pointer; }
.data-\[orientation\=horizontal\]\:flex-row[data-orientation="horizontal"] { flex-direction: row; }
.data-\[align\=end\]\:flex-row-reverse[data-align="end"] { flex-direction: row-reverse; }
.data-\[orientation\=horizontal\]\:flex-col[data-orientation="horizontal"] { flex-direction: column; }
.data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"] { flex-direction: column; }
.data-\[orientation\=horizontal\]\:items-start[data-orientation="horizontal"] { align-items: flex-start; }
.data-\[orientation\=vertical\]\:items-stretch[data-orientation="vertical"] { align-items: stretch; }
.data-\[slot\=checkbox-group\]\:gap-3[data-slot="checkbox-group"] { gap: 0.75rem; }
.data-\[align\=end\]\:self-end[data-align="end"] { align-self: flex-end; }
.data-\[spacing\=0\]\:rounded-none[data-spacing="0"] { border-radius: 0px; }
.data-\[variant\=line\]\:rounded-none[data-variant="line"] { border-radius: 0px; }
.data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-s-0[data-variant="outline"][data-spacing="0"] { border-inline-start-width: 0px; }
.data-\[filled\=true\]\:border-solid[data-filled="true"] { border-style: solid; }
.data-\[state\=idle\]\:border-dashed[data-state="idle"] { border-style: dashed; }
.data-\[dragging\=true\]\:border-ring[data-dragging="true"] { --tw-border-opacity: 1; border-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-border-opacity, 1))); }
.data-\[filled\=true\]\:border-transparent[data-filled="true"] { border-color: transparent; }
.data-\[state\=error\]\:border-destructive\/30[data-state="error"] { border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.3)); }
.data-\[status\=error\]\:border-destructive[data-status="error"] { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.data-\[active\=true\]\:bg-accent\/50[data-active="true"] { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.data-\[active\=true\]\:bg-primary\/10[data-active="true"] { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.1)); }
.data-\[active\=true\]\:bg-sidebar-accent[data-active="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-accent-rgb), calc(var(--sidebar-accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[active\]\:bg-accent[data-active] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[current\=true\]\:bg-accent[data-current="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[current\=true\]\:bg-foreground[data-current="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[dragging\=true\]\:bg-accent\/60[data-dragging="true"] { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.6)); }
.data-\[selected\=true\]\:bg-accent[data-selected="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[selected\=true\]\:bg-primary\/5[data-selected="true"] { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.05)); }
.data-\[state\=active\]\:bg-accent\/30[data-state="active"] { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.3)); }
.data-\[state\=active\]\:bg-background[data-state="active"] { --tw-bg-opacity: 1; background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[state\=open\]\:bg-accent[data-state="open"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[state\=open\]\:bg-accent\/50[data-state="open"] { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.data-\[state\=selected\]\:bg-muted[data-state="selected"] { --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[size\=sm\]\:py-1[data-size="sm"] { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.data-\[inset\]\:ps-8[data-inset] { padding-inline-start: 2rem; }
.data-\[variant\=label\]\:text-sm[data-variant="label"] { font-size: 0.875rem; line-height: 1.25rem; }
.data-\[variant\=legend\]\:text-base[data-variant="legend"] { font-size: 1rem; line-height: 1.5rem; }
.data-\[active\=true\]\:font-medium[data-active="true"] { font-weight: 500; }
.data-\[active\=true\]\:text-accent-foreground[data-active="true"] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[active\=true\]\:text-primary[data-active="true"] { --tw-text-opacity: 1; color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active="true"] { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[active\]\:text-accent-foreground[data-active] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[current\=true\]\:text-accent-foreground[data-current="true"] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[error\=true\]\:text-destructive[data-error="true"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[invalid\=true\]\:text-destructive[data-invalid="true"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[placeholder\]\:text-muted-foreground[data-placeholder] { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[selected\=true\]\:text-accent-foreground[data-selected="true"] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[selected\=true\]\:text-primary[data-selected="true"] { --tw-text-opacity: 1; color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[state\=active\]\:text-foreground[data-state="active"] { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[state\=open\]\:text-accent-foreground[data-state="open"] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[state\=open\]\:text-muted-foreground[data-state="open"] { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[status\=error\]\:text-destructive[data-status="error"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[active\=false\]\:opacity-0[data-active="false"] { opacity: 0; }
.data-\[active\=true\]\:opacity-100[data-active="true"] { opacity: 1; }
.data-\[disabled\=true\]\:opacity-50[data-disabled="true"] { opacity: 0.5; }
.data-\[disabled\]\:opacity-50[data-disabled] { opacity: 0.5; }
.data-\[state\=open\]\:opacity-100[data-state="open"] { opacity: 1; }
.data-\[uploading\=true\]\:opacity-60[data-uploading="true"] { opacity: 0.6; }
.data-\[spacing\=0\]\:shadow-none[data-spacing="0"] { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.data-\[spacing\=default\]\:data-\[variant\=outline\]\:shadow-xs[data-variant="outline"][data-spacing="default"] { --tw-shadow: var(--elevation-1); --tw-shadow-colored: var(--elevation-1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.data-\[active\=false\]\:duration-400[data-active="false"] { transition-duration: 400ms; }
.data-\[state\=closed\]\:duration-300[data-state="closed"] { transition-duration: 300ms; }
.data-\[state\=open\]\:duration-500[data-state="open"] { transition-duration: 500ms; }
.data-\[active\=false\]\:ease-\[cubic-bezier\(0\.7\2c 0\2c 0\.84\2c 0\)\][data-active="false"] { transition-timing-function: cubic-bezier(0.7,0,0.84,0); }
.data-\[active\=true\]\:ease-\[cubic-bezier\(0\.23\2c 1\2c 0\.32\2c 1\)\][data-active="true"] { transition-timing-function: cubic-bezier(0.23,1,0.32,1); }
.data-\[spacing\=0\]\:first\:rounded-s-md:first-child[data-spacing="0"] { border-start-start-radius: var(--radius-control); border-end-start-radius: var(--radius-control); }
.data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-s:first-child[data-variant="outline"][data-spacing="0"] { border-inline-start-width: 1px; }
.data-\[spacing\=0\]\:last\:rounded-e-md:last-child[data-spacing="0"] { border-start-end-radius: var(--radius-control); border-end-end-radius: var(--radius-control); }
.data-\[active\=true\]\:hover\:bg-accent:hover[data-active="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[clickable\=true\]\:hover\:bg-accent\/50:hover[data-clickable="true"] { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.data-\[state\=open\]\:hover\:bg-accent:hover[data-state="open"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state="open"] { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-accent-rgb), calc(var(--sidebar-accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state="open"] { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-\[active\=true\]\:focus\:bg-accent:focus[data-active="true"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[state\=open\]\:focus\:bg-accent:focus[data-state="open"] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant="destructive"] { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.1)); }
.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant="destructive"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.group[data-disabled="true"] .group-data-\[disabled\=true\]\:pointer-events-none { pointer-events: none; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:absolute { position: absolute; }
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\] { left: calc(var(--sidebar-width) * -1); }
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\] { right: calc(var(--sidebar-width) * -1); }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:end-3 { inset-inline-end: 0.75rem; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:top-3 { top: 0.75rem; }
.group[data-side="left"] .group-data-\[side\=left\]\:-right-4 { right: -1rem; }
.group[data-side="right"] .group-data-\[side\=right\]\:left-0 { left: 0px; }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:top-full { top: 100%; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:-mt-8 { margin-top: -2rem; }
.group\/field-group[data-variant="outline"] .group-data-\[variant\=outline\]\/field-group\:-mb-2 { margin-bottom: -0.5rem; }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5 { margin-top: 0.375rem; }
.group\/message-scroller[data-can-scroll-start="false"][data-can-scroll-end="false"] .group-data-\[can-scroll-start\=false\]\/message-scroller\:group-data-\[can-scroll-end\=false\]\/message-scroller\:block { display: block; }
.group\/message-scroller[data-can-scroll-start="false"][data-can-scroll-end="true"] .group-data-\[can-scroll-start\=false\]\/message-scroller\:group-data-\[can-scroll-end\=true\]\/message-scroller\:block { display: block; }
.group\/message-scroller[data-can-scroll-start="true"][data-can-scroll-end="false"] .group-data-\[can-scroll-start\=true\]\/message-scroller\:group-data-\[can-scroll-end\=false\]\/message-scroller\:block { display: block; }
.group\/message-scroller[data-can-scroll-start="true"][data-can-scroll-end="true"] .group-data-\[can-scroll-start\=true\]\/message-scroller\:group-data-\[can-scroll-end\=true\]\/message-scroller\:block { display: block; }
.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block { display: block; }
.group\/alert-dialog-content[data-size="sm"] .group-data-\[size\=sm\]\/alert-dialog-content\:grid { display: grid; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:hidden { display: none; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:size-8\! { width: 2rem !important; height: 2rem !important; }
.group\/avatar[data-size="default"] .group-data-\[size\=default\]\/avatar\:size-2\.5 { width: 0.625rem; height: 0.625rem; }
.group\/avatar[data-size="lg"] .group-data-\[size\=lg\]\/avatar\:size-3 { width: 0.75rem; height: 0.75rem; }
.group\/avatar[data-size="sm"] .group-data-\[size\=sm\]\/avatar\:size-2 { width: 0.5rem; height: 0.5rem; }
.group\/tabs[data-orientation="horizontal"] .group-data-\[orientation\=horizontal\]\/tabs\:h-9 { height: 2.25rem; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:h-fit { height: -moz-fit-content; height: fit-content; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\] { width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4))); }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\] { width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px); }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\) { width: var(--sidebar-width-icon); }
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:w-0 { width: 0px; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:w-full { width: 100%; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:w-full { width: 100%; }
.group\/attachment[data-size="sm"] .group-data-\[size\=sm\]\/attachment\:w-8 { width: 2rem; }
.group\/attachment[data-size="xs"] .group-data-\[size\=xs\]\/attachment\:w-7 { width: 1.75rem; }
.group\/bottom-nav-bar-item[data-active="true"] .group-data-\[active\=true\]\/bottom-nav-bar-item\:max-w-none { max-width: none; }
.group\/marker[data-variant="separator"] .group-data-\[variant\=separator\]\/marker\:flex-none { flex: none; }
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group[data-side="right"] .group-data-\[side\=right\]\:rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group[data-state="open"] .group-data-\[state\=open\]\:rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group\/alert-dialog-content[data-size="sm"] .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:flex-col { flex-direction: column; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:justify-start { justify-content: flex-start; }
.group\/message[data-align="end"] .group-data-\[align\=end\]\/message\:justify-end { justify-content: flex-end; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:gap-1 { gap: 0.25rem; }
.group\/bubble[data-align="end"] .group-data-\[align\=end\]\/bubble\:self-end { align-self: flex-end; }
.group\/message[data-align="end"] .group-data-\[align\=end\]\/message\:self-end { align-self: flex-end; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:overflow-hidden { overflow: hidden; }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden { overflow: hidden; }
.group\/attachment[data-size="xs"] .group-data-\[size\=xs\]\/attachment\:rounded-md { border-radius: var(--radius-control); }
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:rounded-lg { border-radius: var(--radius); }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md { border-radius: var(--radius-control); }
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:border { border-width: 1px; }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:border { border-width: 1px; }
.group[data-side="left"] .group-data-\[side\=left\]\:border-r { border-right-width: 1px; }
.group[data-side="right"] .group-data-\[side\=right\]\:border-l { border-left-width: 1px; }
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:border-sidebar-border { --tw-border-opacity: 1; border-color: rgba(var(--sidebar-border-rgb), calc(var(--sidebar-border-alpha, 1) * var(--tw-border-opacity, 1))); }
.group\/attachment[data-state="error"] .group-data-\[state\=error\]\/attachment\:bg-destructive\/10 { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.1)); }
.group\/tabs-list[data-variant="line"] .group-data-\[variant\=line\]\/tabs-list\:bg-transparent { background-color: transparent; }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover { --tw-bg-opacity: 1; background-color: rgba(var(--popover-rgb), calc(var(--popover-alpha, 1) * var(--tw-bg-opacity, 1))); }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:p-0\! { padding: 0px !important; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:p-2\! { padding: 0.5rem !important; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.group\/marker[data-variant="separator"] .group-data-\[variant\=separator\]\/marker\:text-center { text-align: center; }
.group\/drawer-content[data-vaul-drawer-direction="bottom"] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center { text-align: center; }
.group\/drawer-content[data-vaul-drawer-direction="top"] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center { text-align: center; }
.group\/avatar[data-size="sm"] .group-data-\[size\=sm\]\/avatar\:text-xs { font-size: 0.75rem; line-height: calc(1 / 0.75); }
.group\/attachment[data-state="error"] .group-data-\[state\=error\]\/attachment\:text-destructive { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
.group\/attachment[data-state="error"] .group-data-\[state\=error\]\/attachment\:text-destructive\/80 { color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.8)); }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground { --tw-text-opacity: 1; color: rgba(var(--popover-foreground-rgb), calc(var(--popover-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.group\/bottom-nav-bar-item[data-active="true"] .group-data-\[active\=true\]\/bottom-nav-bar-item\:opacity-100 { opacity: 1; }
.group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:opacity-0 { opacity: 0; }
.group\/field[data-disabled="true"] .group-data-\[disabled\=true\]\/field\:opacity-50 { opacity: 0.5; }
.group\/input-group[data-disabled="true"] .group-data-\[disabled\=true\]\/input-group\:opacity-50 { opacity: 0.5; }
.group[data-disabled="true"] .group-data-\[disabled\=true\]\:opacity-50 { opacity: 0.5; }
.group\/attachment[data-state="done"] .group-data-\[state\=done\]\/attachment\:opacity-100 { opacity: 1; }
.group\/attachment[data-state="idle"] .group-data-\[state\=idle\]\/attachment\:opacity-100 { opacity: 1; }
.group[data-variant="floating"] .group-data-\[variant\=floating\]\:shadow-sm { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200 { transition-duration: 200ms; }
.group\/tabs[data-orientation="horizontal"] .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0::after { content: var(--tw-content); left: 0px; right: 0px; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0::after { content: var(--tw-content); top: 0px; bottom: 0px; }
.group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:after\:left-full::after { content: var(--tw-content); left: 100%; }
.group\/tabs[data-orientation="horizontal"] .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]::after { content: var(--tw-content); bottom: -5px; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:after\:-end-1::after { content: var(--tw-content); inset-inline-end: -0.25rem; }
.group\/tabs[data-orientation="horizontal"] .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5::after { content: var(--tw-content); height: 0.125rem; }
.group\/tabs[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5::after { content: var(--tw-content); width: 0.125rem; }
.group[data-collapsible="offcanvas"] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-rgb), calc(var(--sidebar-alpha, 1) * var(--tw-bg-opacity, 1))); }
.group\/tabs-list[data-variant="line"] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state="active"] { background-color: transparent; }
.group\/tabs-list[data-variant="default"] .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm[data-state="active"] { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.group\/tabs-list[data-variant="line"] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none[data-state="active"] { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.group\/tabs-list[data-variant="line"] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100[data-state="active"]::after { content: var(--tw-content); opacity: 1; }
.peer\/menu-button[data-size="default"] ~ .peer-data-\[size\=default\]\/menu-button\:top-1\.5 { top: 0.375rem; }
.peer\/menu-button[data-size="lg"] ~ .peer-data-\[size\=lg\]\/menu-button\:top-2\.5 { top: 0.625rem; }
.peer\/menu-button[data-size="sm"] ~ .peer-data-\[size\=sm\]\/menu-button\:top-1 { top: 0.25rem; }
.peer\/menu-button[data-active="true"] ~ .peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
@container card-header (min-width: 28rem) {
 .\@md\/card-header\:flex { display: flex; } }
@container field-group (min-width: 28rem) {
 .\@md\/field-group\:flex-row { flex-direction: row; }
 .\@md\/field-group\:items-center { align-items: center; }
 .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]) { align-items: flex-start; } }
:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\] > *) { svg: not([class*='size-']); }
:is(.\*\:disabled\:cursor-not-allowed:disabled > *) { cursor: not-allowed; }
:is(.\*\:data-\[slot\=input-group\]\:m-1[data-slot="input-group"] > *) { margin: 0.25rem; }
:is(.\*\:data-\[slot\=input-group\]\:mb-0[data-slot="input-group"] > *) { margin-bottom: 0px; }
:is(.\*\:data-\[slot\=input-group\]\:h-8[data-slot="input-group"] > *) { height: 2rem; }
:is(.\*\:data-\[slot\=input-group\]\:w-auto[data-slot="input-group"] > *) { width: auto; }
:is(.\*\:data-\[slot\=attachment\]\:flex-none[data-slot="attachment"] > *) { flex: none; }
:is(.\*\:data-\[slot\=attachment\]\:snap-start[data-slot="attachment"] > *) { scroll-snap-align: start; }
:is(.\*\:data-\[slot\=bubble-content\]\:rounded-none > *)[data-slot="bubble-content"] { border-radius: 0px; }
:is(.\*\:data-\[slot\=bubble-content\]\:border-border > *)[data-slot="bubble-content"] { --tw-border-opacity: 1; border-color: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * var(--tw-border-opacity, 1))); }
:is(.\*\:data-\[slot\=input-group\]\:border-input\/30[data-slot="input-group"] > *) { border-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.3)); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.93_calc\(c\*0\.4\)_h\)\] > *)[data-slot="bubble-content"] { background-color: var(--bubble-tint-light); background-color: oklch(from var(--primary) 0.93 calc(c * 0.4) h); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-background > *)[data-slot="bubble-content"] { --tw-bg-opacity: 1; background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-bg-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10 > *)[data-slot="bubble-content"] { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.1)); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-muted > *)[data-slot="bubble-content"] { --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-primary > *)[data-slot="bubble-content"] { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-secondary > *)[data-slot="bubble-content"] { --tw-bg-opacity: 1; background-color: rgba(var(--secondary-rgb), calc(var(--secondary-alpha, 1) * var(--tw-bg-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:bg-transparent > *)[data-slot="bubble-content"] { background-color: transparent; }
:is(.\*\:data-\[slot\=input-group\]\:bg-input\/30[data-slot="input-group"] > *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.3)); }
:is(.\*\:data-\[slot\=bubble-content\]\:p-0 > *)[data-slot="bubble-content"] { padding: 0px; }
:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90 > *[data-slot="alert-description"]) { color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.9)); }
:is(.\*\:data-\[slot\=bubble-content\]\:text-destructive > *)[data-slot="bubble-content"] { --tw-text-opacity: 1; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:text-foreground > *)[data-slot="bubble-content"] { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:text-primary-foreground > *)[data-slot="bubble-content"] { --tw-text-opacity: 1; color: rgba(var(--primary-foreground-rgb), calc(var(--primary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
:is(.\*\:data-\[slot\=bubble-content\]\:text-secondary-foreground > *)[data-slot="bubble-content"] { --tw-text-opacity: 1; color: rgba(var(--secondary-foreground-rgb), calc(var(--secondary-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
:is(.\*\:data-\[slot\=input-group\]\:shadow-none[data-slot="input-group"] > *) { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
:is(.\*\:data-\[slot\=avatar\]\:ring-2[data-slot="avatar"] > *) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
:is(.\*\:data-\[slot\=avatar\]\:ring-background[data-slot="avatar"] > *) { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-ring-opacity, 1))); }
:is(.group-data-\[orientation\=vertical\]\/attachment\:\*\:data-\[slot\=spinner\]\:size-6\!:is(:where(.group\/attachment)[data-orientation="vertical"] *) > *)[data-slot="spinner"] { width: 1.5rem !important; height: 1.5rem !important; }
.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none:focus[data-slot="navigation-menu-link"] * { outline: 2px solid transparent; outline-offset: 2px; }
.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0:focus[data-slot="navigation-menu-link"] * { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.aria-invalid\:border-destructive[aria-invalid="true"] { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.aria-invalid\:ring-destructive\/20[aria-invalid="true"] { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.focus-visible\:aria-invalid\:border-destructive[aria-invalid="true"]:focus-visible { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.focus-visible\:aria-invalid\:ring-destructive\/20[aria-invalid="true"]:focus-visible { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.data-highlighted\:bg-accent[data-highlighted] { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.data-highlighted\:text-accent-foreground[data-highlighted] { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.data-autoscrolling\:scrollbar-none[data-autoscrolling] { scrollbar-width: none; }
.data-autoscrolling\:scrollbar-none[data-autoscrolling]::-webkit-scrollbar { display: none; }
.data-empty\:p-0[data-empty] { padding: 0px; }
:is(.group-data-\[align\=end\]\/message\:\*\:data-slot\:self-end:is(:where(.group\/message)[data-align="end"] *) > *)[data-slot] { align-self: flex-end; }
.not-checked\:bg-input:not(:checked) { --tw-bg-opacity: 1; background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-bg-opacity, 1))); }
.not-checked\:bg-neutral-300:not(:checked) { --tw-bg-opacity: 1; background-color: var(--color-neutral-300); }
.has-aria-invalid\:border-destructive:has([aria-invalid="true"]) { --tw-border-opacity: 1; border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-border-opacity, 1))); }
.has-aria-invalid\:ring-\[3px\]:has([aria-invalid="true"]) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.has-aria-invalid\:ring-destructive\/20:has([aria-invalid="true"]) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.has-aria-expanded\:bg-muted\/50:has([aria-expanded="true"]) { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.group-data-empty\/combobox-content\:flex:is(:where(.group\/combobox-content)[data-empty] *) { display: flex; }
.has-data-\[slot\=attachment-content\]\:w-30:has([data-slot=attachment-content]) { width: 7.5rem; }
.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]) { grid-template-columns: 1fr auto; }
.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]) { grid-template-rows: auto auto 1fr; }
.has-data-\[slot\=alert-dialog-media\]\:gap-x-6:has([data-slot=alert-dialog-media]) { -moz-column-gap: 1.5rem; column-gap: 1.5rem; }
.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]) { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-rgb), calc(var(--sidebar-alpha, 1) * var(--tw-bg-opacity, 1))); }
.has-data-\[slot\=attachment-content\]\:px-1\.5:has([data-slot=attachment-content]) { padding-left: 0.375rem; padding-right: 0.375rem; }
.has-data-\[slot\=attachment-content\]\:px-2:has([data-slot=attachment-content]) { padding-left: 0.5rem; padding-right: 0.5rem; }
.has-data-\[slot\=attachment-content\]\:px-2\.5:has([data-slot=attachment-content]) { padding-left: 0.625rem; padding-right: 0.625rem; }
.has-data-\[slot\=attachment-content\]\:py-1:has([data-slot=attachment-content]) { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.has-data-\[slot\=attachment-content\]\:py-1\.5:has([data-slot=attachment-content]) { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.has-data-\[slot\=attachment-content\]\:py-2:has([data-slot=attachment-content]) { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.has-data-\[slot\=attachment-media\]\:p-1:has([data-slot=attachment-media]) { padding: 0.25rem; }
.has-data-\[slot\=attachment-media\]\:p-1\.5:has([data-slot=attachment-media]) { padding: 0.375rem; }
.has-data-\[slot\=attachment-media\]\:p-2:has([data-slot=attachment-media]) { padding: 0.5rem; }
.has-data-\[slot\=combobox-chip\]\:px-1\.5:has([data-slot=combobox-chip]) { padding-left: 0.375rem; padding-right: 0.375rem; }
.has-data-\[slot\=alert-action\]\:pe-20:has([data-slot=alert-action]) { padding-inline-end: 5rem; }
.has-data-\[slot\=alert-action\]\:pr-18:has([data-slot=alert-action]) { padding-right: 4.5rem; }
.has-data-\[slot\=combobox-chip-remove\]\:pe-0:has([data-slot=combobox-chip-remove]) { padding-inline-end: 0px; }
.group-has-data-\[size\=lg\]\/avatar-group\:size-10:is(:where(.group\/avatar-group):has([data-size="lg"]) *) { width: 2.5rem; height: 2.5rem; }
.group-has-data-\[size\=sm\]\/avatar-group\:size-6:is(:where(.group\/avatar-group):has([data-size="sm"]) *) { width: 1.5rem; height: 1.5rem; }
.group-has-data-\[slot\=message-footer\]\/message\:-translate-y-8:is(:where(.group\/message):has([data-slot="message-footer"]) *) { --tw-translate-y: -2rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.group-has-data-\[variant\=ghost\]\/message\:px-0:is(:where(.group\/message):has([data-variant="ghost"]) *) { padding-left: 0px; padding-right: 0px; }
.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pe-8:is(:where(.group\/menu-item):has([data-sidebar="menu-action"]) *) { padding-inline-end: 2rem; }
.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content] { flex: none; }
.\[\&\.up-current\]\:bg-accent\/50.up-current { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.\[\&\.up-current\]\:bg-sidebar-accent.up-current { --tw-bg-opacity: 1; background-color: rgba(var(--sidebar-accent-rgb), calc(var(--sidebar-accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.\[\&\.up-current\]\:font-medium.up-current { font-weight: 500; }
.\[\&\.up-current\]\:text-accent-foreground.up-current { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\.up-current\]\:text-foreground.up-current { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\.up-current\]\:text-sidebar-accent-foreground.up-current { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\.up-current\]\:hover\:bg-accent:hover.up-current { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.\[\&\.up-current\]\:focus\:bg-accent:focus.up-current { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator { display: none; }
.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker { display: none; }
.\[\&\:has\(\>li\:focus-within\)\>li\:not\(\:focus-within\)\]\:opacity-40:has(>li:focus-within)>li:not(:focus-within) { opacity: 0.4; }
.\[\&\:has\(\>li\:hover\)\>li\:not\(\:hover\)\]\:opacity-40:has(>li:hover)>li:not(:hover) { opacity: 0.4; }
.\[\&\:has\(\>li\:hover\)\>li\:not\(\:hover\)\]\:blur-\[1px\]:has(>li:hover)>li:not(:hover) { --tw-blur: blur(1px); 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); }
.\[\&\:has\(\[role\=checkbox\]\)\]\:pe-0:has([role=checkbox]) { padding-inline-end: 0px; }
.\[\&\:has\(input\[value\=\'4\'\]\:checked\)_\[data-slot\=card\]\]\:\[--card-spacing\:calc\(var\(--spacing\)\*4\)\]:has(input[value='4']:checked) [data-slot=card] { --card-spacing: calc(var(--spacing) * 4); }
.has-disabled\:pointer-events-none:has(:disabled) { pointer-events: none; }
.has-disabled\:cursor-not-allowed:has(:disabled) { cursor: not-allowed; }
.has-disabled\:opacity-50:has(:disabled) { opacity: 0.5; }
.not-first\:border-s-0:not(:first-child) { border-inline-start-width: 0px; }
.nth-last-2\:-mt-1:nth-last-child(2) { margin-top: -0.25rem; }
@media (pointer: coarse) {
 .pointer-coarse\:px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
 .pointer-coarse\:py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
 .pointer-coarse\:text-sm { font-size: 0.875rem; line-height: 1.25rem; } }
:is([data-side=left] .in-data-\[side\=left\]\:cursor-w-resize) { cursor: w-resize; }
:is([data-side=right] .in-data-\[side\=right\]\:cursor-e-resize) { cursor: e-resize; }
@media (prefers-reduced-motion: reduce) {
 .motion-reduce\:animate-none { animation: none; } }
.dark\:border-input:where(.dark, .dark *) { --tw-border-opacity: 1; border-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-border-opacity, 1))); }
.dark\:bg-amber-950\/40:is(.dark *) { background-color: rgba(70, 25, 1, 0.4); background-color: color-mix(in oklab, var(--color-amber-950) 40%, transparent); }
.dark\:bg-destructive\/20:is(.dark *) { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.dark\:bg-destructive\/60:where(.dark, .dark *) { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.6)); }
.dark\:bg-emerald-500:is(.dark *) { --tw-bg-opacity: 1; background-color: var(--color-emerald-500); }
.dark\:bg-input\/30:is(.dark *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.3)); }
.dark\:bg-neutral-800:is(.dark *) { --tw-bg-opacity: 1; background-color: var(--color-neutral-800); }
.dark\:bg-neutral-900:is(.dark *) { --tw-bg-opacity: 1; background-color: var(--color-neutral-900); }
.dark\:bg-primary\/20:is(.dark *) { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.2)); }
.dark\:bg-transparent:is(.dark *) { background-color: transparent; }
.dark\:text-amber-200:is(.dark *) { --tw-text-opacity: 1; color: var(--color-amber-200); }
.dark\:text-gray-300:is(.dark *) { --tw-text-opacity: 1; color: var(--color-gray-300); }
.dark\:text-muted-foreground:is(.dark *) { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.dark\:checked\:bg-primary:checked:is(.dark *) { --tw-bg-opacity: 1; background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-bg-opacity, 1))); }
.dark\:hover\:bg-accent\/50:hover:is(.dark *) { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.dark\:hover\:bg-input\/50:hover:is(.dark *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.5)); }
.dark\:hover\:text-foreground:hover:is(.dark *) { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
.dark\:has-\[\:checked\]\:bg-primary\/10:has(:checked):is(.dark *) { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.1)); }
.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
.dark\:data-\[state\=active\]\:border-input[data-state="active"]:is(.dark *) { --tw-border-opacity: 1; border-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-border-opacity, 1))); }
.dark\:data-\[active\=true\]\:bg-primary\/15[data-active="true"]:is(.dark *) { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.15)); }
.dark\:data-\[selected\=true\]\:bg-primary\/10[data-selected="true"]:is(.dark *) { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.1)); }
.dark\:data-\[state\=active\]\:bg-input\/30[data-state="active"]:is(.dark *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.3)); }
.dark\:data-\[state\=active\]\:text-foreground[data-state="active"]:is(.dark *) { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant="destructive"]:is(.dark *) { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.group\/tabs-list[data-variant="line"] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state="active"]:is(.dark *) { border-color: transparent; }
.group\/tabs-list[data-variant="line"] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state="active"]:is(.dark *) { background-color: transparent; }
:is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.3_calc\(c\*0\.4\)_h\)\]:where(.dark, .dark *) > *)[data-slot="bubble-content"] { background-color: var(--bubble-tint-dark); background-color: oklch(from var(--primary) 0.3 calc(c * 0.4) h); }
:is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20:where(.dark, .dark *) > *)[data-slot="bubble-content"] { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.dark\:aria-invalid\:ring-destructive\/40[aria-invalid="true"]:is(.dark *) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
.dark\:focus-visible\:aria-invalid\:ring-destructive\/40[aria-invalid="true"]:focus-visible:is(.dark *) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
.dark\:not-checked\:bg-input\/80:not(:checked):is(.dark *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.8)); }
.dark\:not-checked\:bg-neutral-300:not(:checked):is(.dark *) { --tw-bg-opacity: 1; background-color: var(--color-neutral-300); }
.dark\:has-aria-invalid\:border-destructive\/50:has([aria-invalid="true"]):is(.dark *) { border-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.5)); }
.dark\:has-aria-invalid\:ring-destructive\/40:has([aria-invalid="true"]):is(.dark *) { --tw-ring-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.4)); }
@media (min-width: 640px) {
 .sm\:\!inset-auto { inset: auto !important; }
 .sm\:\!left-1\/2 { left: 50% !important; }
 .sm\:\!top-1\/2 { top: 50% !important; }
 .sm\:col-span-2 { grid-column: span 2 / span 2; }
 .sm\:block { display: block; }
 .sm\:inline { display: inline; }
 .sm\:flex { display: flex; }
 .sm\:inline-flex { display: inline-flex; }
 .sm\:table-cell { display: table-cell; }
 .sm\:hidden { display: none; }
 .sm\:w-2\/5 { width: 40%; }
 .sm\:w-40 { width: 10rem; }
 .sm\:w-56 { width: 14rem; }
 .sm\:w-\[180px\] { width: 180px; }
 .sm\:w-auto { width: auto; }
 .sm\:\!max-w-lg { max-width: 32rem !important; }
 .sm\:max-w-lg { max-width: 32rem; }
 .sm\:max-w-md { max-width: 28rem; }
 .sm\:max-w-sm { max-width: 24rem; }
 .sm\:max-w-xs { max-width: 20rem; }
 .sm\:table-fixed { table-layout: fixed; }
 .sm\:\!-translate-x-1\/2 { --tw-translate-x: -50% !important; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; }
 .sm\:\!-translate-y-1\/2 { --tw-translate-y: -50% !important; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important; }
 .sm\:auto-cols-fr { grid-auto-columns: minmax(0, 1fr); }
 .sm\:grid-flow-col { grid-auto-flow: column; }
 .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\:flex-row { flex-direction: row; }
 .sm\:justify-start { justify-content: flex-start; }
 .sm\:justify-end { justify-content: flex-end; }
 .sm\:justify-between { justify-content: space-between; }
 .sm\:gap-2\.5 { gap: 0.625rem; }
 .sm\:\!rounded-lg { border-radius: var(--radius) !important; }
 .sm\:p-4 { padding: 1rem; }
 .sm\:px-16 { padding-left: 4rem; padding-right: 4rem; }
 .sm\:px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
 .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
 .sm\:px-8 { padding-left: 2rem; padding-right: 2rem; }
 .sm\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
 .sm\:pe-2\.5 { padding-inline-end: 0.625rem; }
 .sm\:ps-2\.5 { padding-inline-start: 0.625rem; }
 .sm\:text-left { text-align: left; }
 .sm\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
 .sm\:text-5xl { font-size: 3rem; line-height: 1; }
 .data-\[size\=default\]\:sm\:max-w-lg[data-size="default"] { max-width: 32rem; }
 .group\/alert-dialog-content[data-size="default"] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2 { grid-row: span 2 / span 2; }
 .group\/alert-dialog-content[data-size="default"] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start { place-items: start; }
 .group\/alert-dialog-content[data-size="default"] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left { text-align: left; }
 .group\/alert-dialog-content[data-size="default"] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:has([data-slot=alert-dialog-media]) { grid-template-rows: auto 1fr; }
 .sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size="default"] *):is(:where(.group\/alert-dialog-content):has([data-slot="alert-dialog-media"]) *) { grid-column-start: 2; } }
@media (min-width: 768px) {
 .md\:col-span-2 { grid-column: span 2 / span 2; }
 .md\:ml-0 { margin-left: 0px; }
 .md\:block { display: block; }
 .md\:flex { display: flex; }
 .md\:hidden { display: none; }
 .md\:w-\[400px\] { width: 400px; }
 .md\:w-\[500px\] { width: 500px; }
 .md\:w-auto { width: auto; }
 .md\:min-w-\[230px\] { min-width: 230px; }
 .md\:min-w-\[270px\] { min-width: 270px; }
 .md\:max-w-44 { max-width: 11rem; }
 .md\:max-w-sm { max-width: 24rem; }
 .md\:basis-1\/3 { flex-basis: 33.333333%; }
 .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
 .md\:grid-cols-\[240px_1fr\] { grid-template-columns: 240px 1fr; }
 .md\:grid-cols-\[300px_1fr\] { grid-template-columns: 300px 1fr; }
 .md\:flex-row { flex-direction: row; }
 .md\:justify-between { justify-content: space-between; }
 .md\:gap-1\.5 { gap: 0.375rem; }
 .md\:gap-10 { gap: 2.5rem; }
 .md\:gap-4 { gap: 1rem; }
 .md\:border-e { border-inline-end-width: 1px; }
 .md\:p-12 { padding: 3rem; }
 .md\:p-4 { padding: 1rem; }
 .md\:px-0 { padding-left: 0px; padding-right: 0px; }
 .md\:px-16 { padding-left: 4rem; padding-right: 4rem; }
 .md\:pe-10 { padding-inline-end: 2.5rem; }
 .md\:text-start { text-align: start; }
 .md\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
 .md\:text-5xl { font-size: 3rem; line-height: 1; }
 .md\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
 .md\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
 .md\:opacity-0 { opacity: 0; }
 .md\:\[--cell-size\:--spacing\(12\)\] { --cell-size: calc(var(--spacing) * 12); }
 .md\:after\:hidden::after { content: var(--tw-content); display: none; }
 .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:m-2 { margin: 0.5rem; }
 .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:ms-0 { margin-inline-start: 0px; }
 .peer[data-variant="inset"][data-state="collapsed"] ~ .md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ms-2 { margin-inline-start: 0.5rem; }
 .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:rounded-xl { border-radius: calc(var(--radius) + 4px); }
 .peer[data-variant="inset"] ~ .md\:peer-data-\[variant\=inset\]\:shadow-sm { --tw-shadow: var(--elevation-2); --tw-shadow-colored: var(--elevation-2); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } }
@media (min-width: 1024px) {
 .lg\:sticky { position: sticky; }
 .lg\:order-last { order: 9999; }
 .lg\:col-span-2 { grid-column: span 2 / span 2; }
 .lg\:col-span-3 { grid-column: span 3 / span 3; }
 .lg\:row-span-2 { grid-row: span 2 / span 2; }
 .lg\:h-\[calc\(100dvh-4rem\)\] { height: calc(100dvh - 4rem); }
 .lg\:w-56 { width: 14rem; }
 .lg\:w-\[500px\] { width: 500px; }
 .lg\:w-\[600px\] { width: 600px; }
 .lg\:w-auto { width: auto; }
 .lg\:basis-1\/3 { flex-basis: 33.333333%; }
 .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
 .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
 .lg\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
 .lg\:grid-cols-\[\.75fr_1fr\] { grid-template-columns: .75fr 1fr; }
 .lg\:grid-cols-\[1\.4fr_1fr_1fr_1fr\] { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
 .lg\:grid-cols-\[1fr_320px\] { grid-template-columns: 1fr 320px; }
 .lg\:grid-cols-\[1fr_360px\] { grid-template-columns: 1fr 360px; }
 .lg\:grid-cols-\[320px_1fr\] { grid-template-columns: 320px 1fr; }
 .lg\:flex-row { flex-direction: row; }
 .lg\:py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
 .lg\:text-6xl { font-size: 3.75rem; line-height: 1; } }
@media (min-width: 1280px) {
 .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
 .xl\:p-8 { padding: 2rem; } }
.rtl\:left-2:where([dir="rtl"], [dir="rtl"] *) { left: 0.5rem; }
.rtl\:right-auto:where([dir="rtl"], [dir="rtl"] *) { right: auto; }
.rtl\:-translate-x-px:where([dir="rtl"], [dir="rtl"] *) { --tw-translate-x: -1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rtl\:translate-x-1\/2:where([dir="rtl"], [dir="rtl"] *) { --tw-translate-x: 50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rtl\:translate-x-px:where([dir="rtl"], [dir="rtl"] *) { --tw-translate-x: 1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rtl\:rotate-180:where([dir="rtl"], [dir="rtl"] *) { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&\:has\(input\[value\=\'5\'\]\:checked\)_\[data-slot\=card\]\]\:\[--card-spacing\:calc\(var\(--spacing\)\*5\)\]:has(input[value='5']:checked) [data-slot=card] { --card-spacing: calc(var(--spacing) * 5); }
.\[\&\:has\(input\[value\=\'6\'\]\:checked\)_\[data-slot\=card\]\]\:\[--card-spacing\:calc\(var\(--spacing\)\*6\)\]:has(input[value='6']:checked) [data-slot=card] { --card-spacing: calc(var(--spacing) * 6); }
.\[\&\:has\(input\[value\=\'8\'\]\:checked\)_\[data-slot\=card\]\]\:\[--card-spacing\:calc\(var\(--spacing\)\*8\)\]:has(input[value='8']:checked) [data-slot=card] { --card-spacing: calc(var(--spacing) * 8); }
.\[\&\:not\(\:popover-open\)\]\:hidden:not(:popover-open) { display: none; }
.\[\&\>\*\:not\(\:first-child\)\]\:rounded-s-none>*:not(:first-child) { border-start-start-radius: 0px; border-end-start-radius: 0px; }
.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child) { border-top-left-radius: 0px; border-top-right-radius: 0px; }
.\[\&\>\*\:not\(\:first-child\)\]\:border-s-0>*:not(:first-child) { border-inline-start-width: 0px; }
.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child) { border-top-width: 0px; }
.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child) { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }
.\[\&\>\*\:not\(\:last-child\)\]\:rounded-e-none>*:not(:last-child) { border-start-end-radius: 0px; border-end-end-radius: 0px; }
.\[\&\>\*\:not\(\[popover\]\)\]\:w-full>*:not([popover]) { width: 100%; }
@container field-group (min-width: 28rem) {
 .\@md\/field-group\:\[\&\>\*\:not\(\[popover\]\)\]\:w-auto>*:not([popover]) { width: auto; } }
.\[\&\>\*\]\:w-full>* { width: 100%; }
.\[\&\>\*\]\:focus-visible\:relative:focus-visible>* { position: relative; }
.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>* { z-index: 10; }
.\[\&\>\*\]\:data-\[slot\=field\]\:p-4 > *[data-slot="field"] { padding: 1rem; }
.\[\&\>\.sr-only\]\:w-auto>.sr-only { width: auto; }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[color-mix\(in_oklch\2c var\(--muted\)\2c var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover { background-color: var(--bubble-muted-hover); background-color: color-mix(in oklch,var(--muted),var(--foreground) 5%); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[color-mix\(in_oklch\2c var\(--secondary\)\2c var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover { background-color: var(--bubble-secondary-hover); background-color: color-mix(in oklch,var(--secondary),var(--foreground) 5%); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.88_calc\(c\*0\.5\)_h\)\]>[data-slot=bubble-content]:is(button,a):hover { background-color: var(--bubble-tint-hover-light); background-color: oklch(from var(--primary) 0.88 calc(c * 0.5) h); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-destructive\/20>[data-slot=bubble-content]:is(button,a):hover { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.2)); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-muted>[data-slot=bubble-content]:is(button,a):hover { --tw-bg-opacity: 1; background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * var(--tw-bg-opacity, 1))); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-primary\/80>[data-slot=bubble-content]:is(button,a):hover { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.8)); }
.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:text-foreground>[data-slot=bubble-content]:is(button,a):hover { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.35_calc\(c\*0\.5\)_h\)\]>[data-slot=bubble-content]:is(button,a):hover:is(.dark *) { background-color: var(--bubble-tint-hover-dark); background-color: oklch(from var(--primary) 0.35 calc(c * 0.5) h); }
.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-destructive\/30>[data-slot=bubble-content]:is(button,a):hover:is(.dark *) { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.3)); }
.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-input\/30>[data-slot=bubble-content]:is(button,a):hover:is(.dark *) { background-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * 0.3)); }
.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-muted\/50>[data-slot=bubble-content]:is(button,a):hover:is(.dark *) { background-color: rgba(var(--muted-rgb), calc(var(--muted-alpha, 1) * 0.5)); }
.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group] { gap: 1rem; }
.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label] { flex: 1 1 auto; }
@container field-group (min-width: 28rem) {
 .\@md\/field-group\:\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label] { flex: 1 1 auto; } }
.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-e-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child) { border-start-end-radius: var(--radius-control); border-end-end-radius: var(--radius-control); }
.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*='w-']) { width: -moz-fit-content; width: fit-content; }
.\[\&\>\[data-slot\=steps\]\]\:overflow-x-auto>[data-slot=steps] { overflow-x: auto; }
.data-\[alternate\=true\]\:\[\&\>\[data-slot\=timeline-item\]\:nth-child\(even\)\]\:flex-row-reverse[data-alternate="true"] > [data-slot=timeline-item]:nth-child(even) { flex-direction: row-reverse; }
.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox] { --tw-translate-y: 2px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&\>a\:hover\]\:text-primary>a:hover { --tw-text-opacity: 1; color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\>a\]\:underline>a { text-decoration-line: underline; }
.\[\&\>a\]\:underline-offset-4>a { text-underline-offset: 4px; }
.\[\&\>button\:disabled\]\:cursor-not-allowed>button:disabled { cursor: not-allowed; }
.\[\&\>button\:disabled\]\:opacity-40>button:disabled { opacity: 0.4; }
.\[\&\>button\:hover\]\:bg-accent>button:hover { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
.\[\&\>button\:hover\]\:text-accent-foreground>button:hover { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\>button\]\:grid>button { display: grid; }
.\[\&\>button\]\:w-9>button { width: 2.25rem; }
.\[\&\>button\]\:place-items-center>button { place-items: center; }
.\[\&\>button\]\:rounded-full>button { border-radius: 9999px; }
.\[\&\>button\]\:text-base>button { font-size: 1rem; line-height: 1.5rem; }
.\[\&\>button\]\:leading-none>button { line-height: 1; }
.\[\&\>button\]\:text-muted-foreground>button { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\>button\]\:ring-card>button { --tw-ring-opacity: 1; --tw-ring-color: rgba(var(--card-rgb), calc(var(--card-alpha, 1) * var(--tw-ring-opacity, 1))); }
.\[\&\>button\]\:transition-colors>button { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.\[\&\>button\]\:ring-3>button { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.\[\&\>button\]\:hover\:bg-foreground\/10:hover>button { background-color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * 0.1)); }
.data-\[orientation\=vertical\]\:\[\&\>img-comparison-slider\]\:h-\[400px\][data-orientation="vertical"]>img-comparison-slider { height: 400px; }
.\[\&\>input\:\:-webkit-inner-spin-button\]\:appearance-none>input::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; }
.\[\&\>input\:\:-webkit-outer-spin-button\]\:appearance-none>input::-webkit-outer-spin-button { -webkit-appearance: none; appearance: none; }
.\[\&\>input\]\:w-12>input { width: 3rem; }
.\[\&\>input\]\:flex-1>input { flex: 1 1 0%; }
.\[\&\>input\]\:border-x>input { border-left-width: 1px; border-right-width: 1px; }
.\[\&\>input\]\:border-input>input { --tw-border-opacity: 1; border-color: rgba(var(--input-rgb), calc(var(--input-alpha, 1) * var(--tw-border-opacity, 1))); }
.\[\&\>input\]\:bg-transparent>input { background-color: transparent; }
.\[\&\>input\]\:text-center>input { text-align: center; }
.\[\&\>input\]\:text-control>input { font-size: var(--control-text); }
.\[\&\>input\]\:outline-none>input { outline: 2px solid transparent; outline-offset: 2px; }
.\[\&\>input\]\:\[appearance\:textfield\]>input { -webkit-appearance: textfield; -moz-appearance: textfield; appearance: textfield; }
.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3:has(>[data-align=block-end])>input { padding-top: 0.75rem; }
.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3:has(>[data-align=block-start])>input { padding-bottom: 0.75rem; }
.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2:has(>[data-align=inline-end])>input { padding-right: 0.5rem; }
.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2:has(>[data-align=inline-start])>input { padding-left: 0.5rem; }
.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd { border-radius: calc(var(--radius) - 5px); }
.\[\&\>li\]\:transition-\[opacity\2c filter\]>li { transition-property: opacity,filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.\[\&\>li\]\:duration-300>li { transition-duration: 300ms; }
.\[\&\>span\:last-child\]\:truncate>span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*='size-']) { width: 0.875rem; height: 0.875rem; }
.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*='size-']) { width: 1rem; height: 1rem; }
.\[\&\>svg\]\:pointer-events-none>svg { pointer-events: none; }
.\[\&\>svg\]\:size-3>svg { width: 0.75rem; height: 0.75rem; }
.\[\&\>svg\]\:size-3\.5>svg { width: 0.875rem; height: 0.875rem; }
.\[\&\>svg\]\:size-4>svg { width: 1rem; height: 1rem; }
.\[\&\>svg\]\:h-3>svg { height: 0.75rem; }
.\[\&\>svg\]\:w-3>svg { width: 0.75rem; }
.\[\&\>svg\]\:shrink-0>svg { flex-shrink: 0; }
.\[\&\>svg\]\:translate-y-0\.5>svg { --tw-translate-y: 0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&\>svg\]\:text-current>svg { color: currentColor; }
.\[\&\>svg\]\:text-muted-foreground>svg { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&\>svg\]\:text-sidebar-accent-foreground>svg { --tw-text-opacity: 1; color: rgba(var(--sidebar-accent-foreground-rgb), calc(var(--sidebar-accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.group\/avatar[data-size="sm"] .group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden>svg { display: none; }
.group\/avatar[data-size="default"] .group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2>svg { width: 0.5rem; height: 0.5rem; }
.group\/avatar[data-size="lg"] .group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2>svg { width: 0.5rem; height: 0.5rem; }
.group-has-data-\[size\=lg\]\/avatar-group\:\[\&\>svg\]\:size-5:is(:where(.group\/avatar-group):has([data-size="lg"]) *) > svg { width: 1.25rem; height: 1.25rem; }
.group-has-data-\[size\=sm\]\/avatar-group\:\[\&\>svg\]\:size-3:is(:where(.group\/avatar-group):has([data-size="sm"]) *) > svg { width: 0.75rem; height: 0.75rem; }
.\[\&\>tr\]\:last\:border-b-0:last-child>tr { border-bottom-width: 0px; }
.\[\&\[aria-orientation\=horizontal\]\>div\]\:rotate-90[aria-orientation=horizontal]>div { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&\[hidden\]\]\:hidden[hidden] { display: none; }
.\[\&_\.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: rgba(var(--border-rgb), calc(var(--border-alpha, 1) * 0.5)); }
.\[\&_\.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: transparent; }
.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer { outline-style: none; }
.\[\&_\.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 { fill: var(--muted); }
.\[\&_\.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\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke='#fff'] { stroke: transparent; }
.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector { outline-style: none; }
.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface { outline-style: none; }
.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading] { padding-left: 0.5rem; padding-right: 0.5rem; }
.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading] { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading] { font-size: 0.75rem; line-height: calc(1 / 0.75); }
.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading] { font-weight: 500; }
.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading] { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&_\[data-chart-tooltip-indicator\]\]\:hidden [data-chart-tooltip-indicator] { display: none; }
.\[\&_\[data-chart-tooltip-label\]\]\:hidden [data-chart-tooltip-label] { display: none; }
.\[\&_\[data-slot\=sidebar-container\]\]\:absolute\! [data-slot=sidebar-container] { position: absolute !important; }
.\[\&_\[data-slot\=sidebar-container\]\]\:absolute [data-slot=sidebar-container] { position: absolute; }
.\[\&_\[data-slot\=sidebar-container\]\]\:flex\! [data-slot=sidebar-container] { display: flex !important; }
.\[\&_\[data-slot\=sidebar-container\]\]\:flex [data-slot=sidebar-container] { display: flex; }
.\[\&_\[data-slot\=sidebar-container\]\]\:h-full\! [data-slot=sidebar-container] { height: 100% !important; }
.\[\&_\[data-slot\=sidebar-wrapper\]\]\:min-h-full\! [data-slot=sidebar-wrapper] { min-height: 100% !important; }
.\[\&_img\]\:size-full img { width: 100%; height: 100%; }
.\[\&_img\]\:object-cover img { -o-object-fit: cover; object-fit: cover; }
.\[\&_p\]\:leading-relaxed p { line-height: 1.625; }
.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*='size-']) { width: 0.75rem; height: 0.75rem; }
.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*='size-']) { width: 1rem; height: 1rem; }
.group\/attachment[data-orientation="vertical"] .group-data-\[orientation\=vertical\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*='size-']) { width: 1.5rem; height: 1.5rem; }
.group\/attachment[data-size="xs"] .group-data-\[size\=xs\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*='size-']) { width: 0.875rem; height: 0.875rem; }
.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*='text-']) { --tw-text-opacity: 1; color: rgba(var(--muted-foreground-rgb), calc(var(--muted-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[\&_svg\]\:pointer-events-none svg { pointer-events: none; }
.\[\&_svg\]\:size-6 svg { width: 1.5rem; height: 1.5rem; }
.\[\&_svg\]\:size-\[22px\] svg { width: 22px; height: 22px; }
.\[\&_svg\]\:size-full svg { width: 100%; height: 100%; }
.\[\&_svg\]\:shrink-0 svg { flex-shrink: 0; }
.data-\[direction\=start\]\:\[\&_svg\]\:rotate-180[data-direction="start"] svg { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rtl\:data-\[orientation\=horizontal\]\:\[\&_svg\]\:rotate-180[data-orientation="horizontal"] svg:where([dir="rtl"], [dir="rtl"] *) { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.\[\&_tr\:last-child\]\:border-0 tr:last-child { border-width: 0px; }
.\[\&_tr\]\:border-b tr { border-bottom-width: 1px; }
.\[\.border-b\]\:pb-\(--card-spacing\):is(.border-b) { padding-bottom: var(--card-spacing); }
.\[\.border-b\]\:pb-3:is(.border-b) { padding-bottom: 0.75rem; }
.\[\.border-t\]\:pt-\(--card-spacing\):is(.border-t) { padding-top: var(--card-spacing); }
.\[\.border-t\]\:pt-3:is(.border-t) { padding-top: 0.75rem; }
[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2 { right: -0.5rem; }
[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize { cursor: e-resize; }
[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2 { left: -0.5rem; }
[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize { cursor: w-resize; }
[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20 { background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * 0.2)); }
[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background { --tw-text-opacity: 1; color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * var(--tw-text-opacity, 1))); }
[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:is(.dark *) { background-color: rgba(var(--background-rgb), calc(var(--background-alpha, 1) * 0.1)); }
[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5 { margin-top: -0.375rem; }
[open]>*>.\[\[open\]\>\*\>\&\]\:rotate-90 { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
[open]>*>.rtl\:\[\[open\]\>\*\>\&\]\:-rotate-90:where([dir="rtl"], [dir="rtl"] *) { --tw-rotate: -90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
a.\[a\&\]\:hover\:bg-accent:hover { --tw-bg-opacity: 1; background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * var(--tw-bg-opacity, 1))); }
a.\[a\&\]\:hover\:bg-destructive\/90:hover { background-color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * 0.9)); }
a.\[a\&\]\:hover\:bg-primary\/90:hover { background-color: rgba(var(--primary-rgb), calc(var(--primary-alpha, 1) * 0.9)); }
@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: rgba(var(--secondary-rgb), calc(var(--secondary-alpha, 1) * 0.9)); }
a.\[a\&\]\:hover\:text-accent-foreground:hover { --tw-text-opacity: 1; color: rgba(var(--accent-foreground-rgb), calc(var(--accent-foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
a.\[a\&\]\:hover\:underline:hover { text-decoration-line: underline; }
.\[a\]\:underline:is(a) { text-decoration-line: underline; }
.\[a\]\:underline-offset-3:is(a) { text-underline-offset: 3px; }
.\[a\]\:transition-colors:is(a) { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.\[a\]\:hover\:bg-accent\/50:hover:is(a) { background-color: rgba(var(--accent-rgb), calc(var(--accent-alpha, 1) * 0.5)); }
.\[a\]\:hover\:text-foreground:hover:is(a) { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
:is(.\*\:\[a\]\:underline:is(a) > *) { text-decoration-line: underline; }
:is(.\*\:\[a\]\:underline-offset-3 > *):is(a) { text-underline-offset: 3px; }
:is(.\*\:\[a\]\:hover\:text-foreground:hover:is(a) > *) { --tw-text-opacity: 1; color: rgba(var(--foreground-rgb), calc(var(--foreground-alpha, 1) * var(--tw-text-opacity, 1))); }
.\[button\2c a\]\:outline-none:is(button,a) { outline: 2px solid transparent; outline-offset: 2px; }
.\[button\2c a\]\:transition-colors:is(button,a) { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.\[button\2c a\]\:focus-visible\:border-ring:focus-visible:is(button,a) { --tw-border-opacity: 1; border-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * var(--tw-border-opacity, 1))); }
.\[button\2c a\]\:focus-visible\:ring-ring\/50:focus-visible:is(button,a) { --tw-ring-color: rgba(var(--ring-rgb), calc(var(--ring-alpha, 1) * 0.5)); }
.\[button\2c a\]\:focus-visible\:ring-3:focus-visible:is(button,a) { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.\[button\]\:text-start:is(button) { text-align: start; }
form:has(:checked)>.\[form\:has\(\:checked\)\>\&\]\:flex { display: flex; }
:is(.\*\:\[img\]\:aspect-square > *):is(img) { aspect-ratio: 1 / 1; }
:is(.\*\:\[img\]\:w-full > *):is(img) { width: 100%; }
:is(.\*\:\[img\]\:object-cover > *):is(img) { -o-object-fit: cover; object-fit: cover; }
:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-8:is(svg:not([class*='size-'])) > *) { width: 2rem; height: 2rem; }
:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant="destructive"] > *):is(svg) { --tw-text-opacity: 1 !important; color: rgba(var(--destructive-rgb), calc(var(--destructive-alpha, 1) * var(--tw-text-opacity, 1))) !important; }
@container field-group (min-width: 28rem) {
 .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot=field-content]) > [role=checkbox] { margin-top: 1px; }
 .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot=field-content]) [role=radio] { margin-top: 1px; } }
.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot=field-content]) > [role=checkbox] { margin-top: 1px; }
.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot=field-content]) [role=radio] { margin-top: 1px; }
input[type="range"][data-slot="slider"][data-orientation="vertical"].data-\[orientation\=vertical\]\:w-4[data-orientation="vertical"] { block-size: 1rem; }
input[type="range"][data-slot="slider"][data-orientation="vertical"].data-\[orientation\=vertical\]\:h-full[data-orientation="vertical"] { inline-size: 100%; }
select[data-slot="native-select"]:disabled { opacity: 1; }
select[data-slot="select"] { background-color: transparent; }
select[data-slot="select"]:disabled { opacity: 1; }
input[data-slot="combobox-chip-input"], input[data-slot="input-otp-slot"] { background-color: transparent; }
input::-moz-placeholder, textarea::-moz-placeholder { color: currentColor; opacity: 0.5; }
input::placeholder, textarea::placeholder { color: currentColor; opacity: 0.5; }
@supports (color: color-mix(in oklab, red, transparent)) {
 input::-moz-placeholder, textarea::-moz-placeholder { color: color-mix(in oklab, currentcolor 50%, transparent); opacity: 1; }
 input::placeholder, textarea::placeholder { color: color-mix(in oklab, currentcolor 50%, transparent); opacity: 1; } }
::file-selector-button { margin-inline-end: 4px; }
[data-slot="input-group-button"][data-size="xs"] > svg:not([class*="size-"]) { width: 0.875rem; height: 0.875rem; }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-1{top:.25rem;bottom:.25rem}.-bottom-12{bottom:-3rem}.-bottom-32{bottom:-8rem}.-bottom-40{bottom:-10rem}.-end-12{inset-inline-end:-3rem}.-left-24{left:-6rem}.-right-20{right:-5rem}.-start-12{inset-inline-start:-3rem}.-top-12{top:-3rem}.-top-24{top:-6rem}.-top-40{top:-10rem}.-top-8{top:-2rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.end-1{inset-inline-end:.25rem}.end-2{inset-inline-end:.5rem}.end-3{inset-inline-end:.75rem}.end-4{inset-inline-end:1rem}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-7{left:1.75rem}.left-\[13px\]{left:13px}.left-\[42\%\]{left:42%}.left-\[55\%\]{left:55%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.right-\[8\%\]{right:8%}.start-0{inset-inline-start:0}.start-1\/2{inset-inline-start:50%}.start-3{inset-inline-start:.75rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-7{top:1.75rem}.top-\[18\%\]{top:18%}.top-\[1px\]{top:1px}.top-\[58\%\]{top:58%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.order-first{order:-9999}.order-last{order:9999}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ms-1{margin-inline-start:-.25rem}.-ms-4{margin-inline-start:-1rem}.-mt-1{margin-top:-.25rem}.-mt-4{margin-top:-1rem}.mb-1\.5{margin-bottom:.375rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.me-2{margin-inline-end:.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.ms-1{margin-inline-start:.25rem}.ms-auto{margin-inline-start:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.size-10{width:2.5rem;height:2.5rem}.size-16{width:4rem;height:4rem}.size-2{width:.5rem;height:.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-20{width:5rem;height:5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-full{width:100%;height:100%}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[1\.625rem\]{height:1.625rem}.h-\[169\%\]{height:169%}.h-\[52px\]{height:52px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100\%-8px\)\]{height:calc(100% - 8px)}.h-auto{height:auto}.h-control{height:var(--control-h)}.h-full{height:100%}.h-max{height:-moz-max-content;height:max-content}.h-px{height:1px}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[85dvh\]{max-height:85dvh}.min-h-0{min-height:0}.min-h-16{min-height:4rem}.min-h-4{min-height:1rem}.min-h-9{min-height:2.25rem}.min-h-\[65px\]{min-height:65px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-10{width:2.5rem}.w-2{width:.5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[calc\(100\%-1\.75rem\)\]{width:calc(100% - 1.75rem)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-16{min-width:4rem}.min-w-40{min-width:10rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.max-w-0{max-width:0}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[170px\]{max-width:170px}.max-w-\[80\%\]{max-width:80%}.max-w-\[95vw\]{max-width:95vw}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-prose{max-width:65ch}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-separate{border-collapse:separate}.border-spacing-y-1{--tw-border-spacing-y:0.25rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-x-px{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x:-1px}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.-translate-y-3\/4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-3\/4{--tw-translate-y:-75%}.translate-x-px{--tw-translate-x:1px}.translate-x-px,.translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y:0.125rem}.translate-y-2\.5{--tw-translate-y:0.625rem}.translate-y-2\.5,.translate-y-3\/4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-3\/4{--tw-translate-y:75%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-none{animation:none}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.scroll-mt-20{scroll-margin-top:5rem}.scroll-px-1{scroll-padding-left:.25rem;scroll-padding-right:.25rem}.scroll-py-1{scroll-padding-top:.25rem;scroll-padding-bottom:.25rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.columns-2{-moz-columns:2;column-count:2}.auto-rows-\[180px\]{grid-auto-rows:180px}.auto-rows-\[220px\]{grid-auto-rows:220px}.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-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-12{row-gap:3rem}.gap-y-2{row-gap:.5rem}.gap-y-6{row-gap:1.5rem}.gap-y-8{row-gap:2rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem*var(--tw-space-x-reverse));margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(var\(--radius\)-3px\)\]{border-radius:calc(var(--radius) - 3px)}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-control)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-e-md{border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-s-md{border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control)}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x-0{border-left-width:0;border-right-width:0}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-e{border-inline-end-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-border{--tw-border-opacity:1;border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-border-opacity, 1)))}.border-border\/50{border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*.5))}.border-border\/60{border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*.6))}.border-border\/70{border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*.7))}.border-border\/80{border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*.8))}.border-current{border-color:currentColor}.border-destructive{--tw-border-opacity:1;border-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-border-opacity, 1)))}.border-emerald-500\/40{border-color:rgba(16,185,129,.4)}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{--tw-border-opacity:1;border-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*var(--tw-border-opacity, 1)))}.border-lime-400{--tw-border-opacity:1;border-color:rgb(163 230 53/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-neutral-300{--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1))}.border-neutral-700{--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.border-primary\/30{border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.3))}.border-primary\/40{border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.4))}.border-sidebar-border{--tw-border-opacity:1;border-color:rgba(var(--sidebar-border-rgb),calc(var(--sidebar-border-alpha, 1)*var(--tw-border-opacity, 1)))}.border-transparent{border-color:transparent}.bg-\[Canvas\]{background-color:Canvas}.bg-accent{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-background{--tw-bg-opacity:1;background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-background\/60{background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*.6))}.bg-background\/70{background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*.7))}.bg-background\/95{background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*.95))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-border{background-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-border,.bg-card{--tw-bg-opacity:1}.bg-card{background-color:rgba(var(--card-rgb),calc(var(--card-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-current{background-color:currentColor}.bg-destructive{--tw-bg-opacity:1;background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}.bg-foreground{--tw-bg-opacity:1;background-color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-foreground\/10{background-color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*.1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-50,.bg-input{--tw-bg-opacity:1}.bg-input{background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity,1))}.bg-lime-500{--tw-bg-opacity:1;background-color:rgb(132 204 22/var(--tw-bg-opacity,1))}.bg-muted{--tw-bg-opacity:1;background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-muted\/15{background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.15))}.bg-muted\/20{background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.2))}.bg-muted\/30{background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.3))}.bg-muted\/50{background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.5))}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-neutral-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.bg-neutral-950{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.bg-popover{--tw-bg-opacity:1;background-color:rgba(var(--popover-rgb),calc(var(--popover-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-primary{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-primary\/10{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.1))}.bg-primary\/15{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.15))}.bg-primary\/20{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.2))}.bg-secondary{--tw-bg-opacity:1;background-color:rgba(var(--secondary-rgb),calc(var(--secondary-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-sidebar{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-rgb),calc(var(--sidebar-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-sidebar-border{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-border-rgb),calc(var(--sidebar-border-alpha, 1)*var(--tw-bg-opacity, 1)))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.from-accent\/35{--tw-gradient-from:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*0.35)) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from:rgba(0,0,0,.8) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/85{--tw-gradient-from:rgba(0,0,0,.85) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/90{--tw-gradient-from:rgba(0,0,0,.9) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500\/20{--tw-gradient-from:rgba(249,115,22,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary{--tw-gradient-from:var(--primary) var(--tw-gradient-from-position);--tw-gradient-to:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0)) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary\/25{--tw-gradient-from:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0.25)) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary\/40{--tw-gradient-from:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0.4)) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-accent{--tw-gradient-to:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*0)) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--accent) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-accent\/20{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*0.2)) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-black\/45{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.45) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-black\/60{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.6) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-pink-500\/10{--tw-gradient-to:rgba(236,72,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(236,72,153,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-primary{--tw-gradient-to:var(--primary) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-clip-padding{background-clip:padding-box}.fill-black{fill:#000}.fill-none{fill:none}.fill-white{fill:#fff}.stroke-black{stroke:#000}.stroke-white{stroke:#fff}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-1{padding-inline-end:.25rem}.pe-12{padding-inline-end:3rem}.pe-2\.5{padding-inline-end:.625rem}.pe-3{padding-inline-end:.75rem}.pe-8{padding-inline-end:2rem}.pe-9{padding-inline-end:2.25rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pr-2\.5{padding-right:.625rem}.pr-9{padding-right:2.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-control{font-size:var(--control-text)}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/relaxed{font-size:.875rem;line-height:1.625}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.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)}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[CanvasText\]{color:CanvasText}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-background{--tw-text-opacity:1;color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-text-opacity, 1)))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-border{--tw-text-opacity:1;color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-text-opacity, 1)))}.text-card-foreground{--tw-text-opacity:1;color:rgba(var(--card-foreground-rgb),calc(var(--card-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-destructive{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.text-emerald-200{--tw-text-opacity:1;color:rgb(167 243 208/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-400\/90{color:rgba(52,211,153,.9)}.text-foreground{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-foreground\/60{color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*.6))}.text-foreground\/90{color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*.9))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-muted-foreground\/50{color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*.5))}.text-muted-foreground\/80{color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*.8))}.text-neutral-200{--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.text-neutral-300{--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-popover-foreground{--tw-text-opacity:1;color:rgba(var(--popover-foreground-rgb),calc(var(--popover-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-primary{--tw-text-opacity:1;color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-text-opacity, 1)))}.text-primary-foreground{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-secondary-foreground{--tw-text-opacity:1;color:rgba(var(--secondary-foreground-rgb),calc(var(--secondary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-sidebar-foreground{--tw-text-opacity:1;color:rgba(var(--sidebar-foreground-rgb),calc(var(--sidebar-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.text-sidebar-foreground\/70{color:rgba(var(--sidebar-foreground-rgb),calc(var(--sidebar-foreground-alpha, 1)*.7))}.text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/75{color:hsla(0,0%,100%,.75)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\]{--tw-shadow:0 0 0 1px var(--sidebar-border);--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:var(--elevation-4);--tw-shadow-colored:var(--elevation-4)}.shadow-md{--tw-shadow:var(--elevation-3);--tw-shadow-colored:var(--elevation-3)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow-xs{--tw-shadow:var(--elevation-1);--tw-shadow-colored:var(--elevation-1);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-background{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-ring-opacity, 1)))}.ring-card{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--card-rgb),calc(var(--card-alpha, 1)*var(--tw-ring-opacity, 1)))}.ring-foreground\/10{--tw-ring-color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*0.1))}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-ring-opacity, 1)))}.ring-sidebar-ring{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--sidebar-ring-rgb),calc(var(--sidebar-ring-alpha, 1)*var(--tw-ring-opacity, 1)))}.ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.blur{--tw-blur:blur(8px)}.blur,.blur-3xl{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)}.blur-3xl{--tw-blur:blur(64px)}.blur-\[2px\]{--tw-blur:blur(2px)}.blur-\[2px\],.grayscale{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{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-xl{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\2c box-shadow\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\2c right\2c width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\2c opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[opacity\2c color\2c background-color\]{transition-property:opacity,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[translate\2c scale\2c opacity\]{transition-property:translate,scale,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\2c height\2c padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.contain-content{contain:content}.\[--background\:white\]{--background:#fff}.\[--cell-size\:\.\.\.\]{--cell-size:...}.\[--cell-size\:\2026\]{--cell-size:…}.\[contain-intrinsic-size\:auto_10rem\]{contain-intrinsic-size:auto 10rem}.\[content-visibility\:auto\]{content-visibility:auto}.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]>*{svg:not([class*="size-"])}.selection\:bg-primary ::-moz-selection{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.selection\:bg-primary ::selection{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.selection\:text-primary-foreground ::-moz-selection{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.selection\:text-primary-foreground ::selection{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.selection\:bg-primary::-moz-selection{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.selection\:bg-primary::selection{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.selection\:text-primary-foreground::-moz-selection{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.selection\:text-primary-foreground::selection{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:1.75rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.placeholder\:text-muted-foreground::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.before\:me-1:before{content:var(--tw-content);margin-inline-end:.25rem}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:min-w-0:before{content:var(--tw-content);min-width:0}.before\:flex-1:before{content:var(--tw-content);flex:1 1 0%}.before\:bg-border:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-bg-opacity, 1)))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:ms-1:after{content:var(--tw-content);margin-inline-start:.25rem}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:min-w-0:after{content:var(--tw-content);min-width:0}.after\:flex-1:after{content:var(--tw-content);flex:1 1 0%}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:bg-border:after{background-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-bg-opacity, 1)))}.after\:bg-border:after,.after\:bg-foreground:after{content:var(--tw-content);--tw-bg-opacity:1}.after\:bg-foreground:after{background-color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-bg-opacity, 1)))}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.first\:rounded-s-md:first-child{border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control)}.first\:border-s:first-child{border-inline-start-width:1px}.last\:mt-0:last-child{margin-top:0}.last\:rounded-e-md:last-child{border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.last\:border-b:last-child{border-bottom-width:1px}.last\:border-b-0:last-child{border-bottom-width:0}.checked\:border-primary:checked{--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.checked\:bg-lime-500:checked{--tw-bg-opacity:1;background-color:rgb(132 204 22/var(--tw-bg-opacity,1))}.checked\:bg-primary:checked{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.checked\:text-primary-foreground:checked{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.empty\:hidden:empty{display:none}.focus-within\:border-ring:focus-within{--tw-border-opacity:1;border-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-border-opacity, 1)))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-\[3px\]:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*0.5))}.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.hover\:border-primary\/50:hover{border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.5))}.hover\:border-primary\/60:hover{border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.6))}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.hover\:bg-accent\/30:hover{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.3))}.hover\:bg-accent\/40:hover{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.4))}.hover\:bg-muted:hover{--tw-bg-opacity:1;background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*var(--tw-bg-opacity, 1)))}.hover\:bg-muted\/50:hover{background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.5))}.hover\:bg-neutral-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.hover\:bg-neutral-100\/80:hover{background-color:hsla(0,0%,96%,.8)}.hover\:bg-primary\/10:hover{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.1))}.hover\:bg-primary\/5:hover{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.05))}.hover\:bg-secondary\/80:hover{background-color:rgba(var(--secondary-rgb),calc(var(--secondary-alpha, 1)*.8))}.hover\:bg-sidebar-accent:hover{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-accent-rgb),calc(var(--sidebar-accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/30:hover{background-color:hsla(0,0%,100%,.3)}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.hover\:text-destructive:hover{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.hover\:text-foreground:hover{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.hover\:text-muted-foreground:hover{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.hover\:text-neutral-900:hover{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.hover\:text-sidebar-accent-foreground:hover{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover{--tw-shadow:0 0 0 1px var(--sidebar-accent);--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:var(--elevation-4);--tw-shadow-colored:var(--elevation-4)}.hover\:shadow-md:hover{--tw-shadow:var(--elevation-3);--tw-shadow-colored:var(--elevation-3);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-neutral-200:hover{--tw-shadow-color:#e5e5e5;--tw-shadow:var(--tw-shadow-colored)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgba(var(--sidebar-border-rgb),calc(var(--sidebar-border-alpha, 1)*var(--tw-bg-opacity, 1)))}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:fixed:focus{position:fixed}.focus\:left-3:focus{left:.75rem}.focus\:top-3:focus{top:.75rem}.focus\:z-10:focus{z-index:10}.focus\:z-50:focus{z-index:50}.focus\:bg-accent:focus{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.focus\:text-accent-foreground:focus{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-ring-opacity, 1)))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{--tw-border-opacity:1;border-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-border-opacity, 1)))}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*0.2))}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-ring-opacity, 1)))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*0.5))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}.active\:scale-95:active,.active\:scale-\[0\.97\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.97\]:active{--tw-scale-x:0.97;--tw-scale-y:0.97}.active\:bg-sidebar-accent:active{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-accent-rgb),calc(var(--sidebar-accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.active\:text-sidebar-accent-foreground:active{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.\*\:disabled\:cursor-not-allowed:disabled>*{cursor:not-allowed}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.group:hover .group-hover\:translate-x-1,.group:hover .group-hover\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-0{--tw-translate-y:0px}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.group:hover .group-hover\:border-primary\/60{border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.6))}.group:hover .group-hover\:opacity-100,.group\/file-upload:hover .group-hover\/file-upload\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group:focus-visible .group-focus-visible\:translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-visible .group-focus-visible\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-primary{--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.peer:checked~.peer-checked\:bg-primary\/15{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.15))}.peer:checked~.peer-checked\:text-foreground{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.peer:checked~.peer-checked\:opacity-100{opacity:1}.peer:checked~.peer-checked\:shadow-\[0_0_18px\]{--tw-shadow:0 0 18px;--tw-shadow-colored:0 0 18px var(--tw-shadow-color)}.peer:checked~.peer-checked\:shadow-\[0_0_18px\],.peer:checked~.peer-checked\:shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.peer:checked~.peer-checked\:shadow-sm{--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2)}.peer:checked~.peer-checked\:shadow-primary\/60{--tw-shadow-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0.6));--tw-shadow:var(--tw-shadow-colored)}.peer:checked~.peer-checked\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:checked~.peer-checked\:ring-primary\/40{--tw-ring-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0.4))}.peer:checked~.peer-checked\:ring-offset-1{--tw-ring-offset-width:1px}.peer:checked~.peer-checked\:grayscale-0{--tw-grayscale:grayscale(0)}.peer:checked~.peer-checked\:grayscale-0,.peer:checked~.peer-checked\:saturate-150{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)}.peer:checked~.peer-checked\:saturate-150{--tw-saturate:saturate(1.5)}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.has-\[\:disabled\]\:pointer-events-none:has(:disabled){pointer-events:none}.has-\[\>button\]\:me-\[-0\.45rem\]:has(>button){margin-inline-end:-.45rem}.has-\[\>button\]\:ms-\[-0\.45rem\]:has(>button){margin-inline-start:-.45rem}.has-\[\>kbd\]\:me-\[-0\.35rem\]:has(>kbd){margin-inline-end:-.35rem}.has-\[\>kbd\]\:ms-\[-0\.35rem\]:has(>kbd){margin-inline-start:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4) 1fr}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>svg\]\:gap-x-3:has(>svg){-moz-column-gap:.75rem;column-gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:var(--radius-control)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\:checked\]\:border-primary:has(:checked){--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){--tw-border-opacity:1;border-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-border-opacity, 1)))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){--tw-border-opacity:1;border-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-border-opacity, 1)))}.has-\[\:checked\]\:bg-accent:has(:checked){--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.has-\[\:checked\]\:bg-background:has(:checked){--tw-bg-opacity:1;background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-bg-opacity, 1)))}.has-\[\:checked\]\:bg-primary:has(:checked){--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.has-\[\:checked\]\:bg-primary\/5:has(:checked){background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.05))}.has-\[\:checked\]\:bg-white:has(:checked){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[button\]\:p-0:has(button){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\:checked\]\:text-accent-foreground:has(:checked){--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.has-\[\:checked\]\:text-black:has(:checked){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.has-\[\:checked\]\:text-foreground:has(:checked){--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.has-\[\:checked\]\:text-primary-foreground:has(:checked){--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[select\:disabled\]\:opacity-50:has(select:disabled){opacity:.5}.has-\[\:checked\]\:shadow-sm:has(:checked){--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.has-\[\:focus-visible\]\:ring-\[3px\]:has(:focus-visible){--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]:focus-visible){--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.has-\[button\]\:ring-0:has(button){--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.has-\[\:focus-visible\]\:ring-ring\/50:has(:focus-visible){--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*0.5))}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*0.5))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*0.2))}.has-\[\>a\]\:hover\:bg-muted\/50:hover:has(>a){background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.5))}.has-\[\>button\]\:hover\:bg-muted\/50:hover:has(>button){background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.5))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5{--tw-translate-y:0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start{align-self:flex-start}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.group\/growth-business:has(:checked) .group-has-\[\:checked\]\/growth-business\:text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.group:has(:checked) .group-has-\[\:checked\]\:opacity-100{opacity:1}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-accent[aria-expanded=true]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.aria-expanded\:text-foreground[aria-expanded=true]{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.aria-\[orientation\=horizontal\]\:h-px[aria-orientation=horizontal]{height:1px}.aria-\[orientation\=horizontal\]\:w-full[aria-orientation=horizontal]{width:100%}.aria-\[orientation\=vertical\]\:flex-col[aria-orientation=vertical]{flex-direction:column}.aria-\[orientation\=horizontal\]\:after\:left-0[aria-orientation=horizontal]:after{content:var(--tw-content);left:0}.aria-\[orientation\=horizontal\]\:after\:h-1[aria-orientation=horizontal]:after{content:var(--tw-content);height:.25rem}.aria-\[orientation\=horizontal\]\:after\:w-full[aria-orientation=horizontal]:after{content:var(--tw-content);width:100%}.aria-\[orientation\=horizontal\]\:after\:-translate-y-1\/2[aria-orientation=horizontal]:after{--tw-translate-y:-50%}.aria-\[orientation\=horizontal\]\:after\:-translate-y-1\/2[aria-orientation=horizontal]:after,.aria-\[orientation\=horizontal\]\:after\:translate-x-0[aria-orientation=horizontal]:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aria-\[orientation\=horizontal\]\:after\:translate-x-0[aria-orientation=horizontal]:after{--tw-translate-x:0px}.data-\[active\=false\]\:pointer-events-none[data-active=false],.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled],.data-\[uploading\=true\]\:pointer-events-none[data-uploading=true]{pointer-events:none}.data-\[direction\=end\]\:bottom-4[data-direction=end]{bottom:1rem}.data-\[direction\=start\]\:top-4[data-direction=start]{top:1rem}.data-\[size\=lg\]\:size-10[data-size=lg]{width:2.5rem;height:2.5rem}.data-\[size\=sm\]\:size-6[data-size=sm]{width:1.5rem;height:1.5rem}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[size\=default\]\:h-\[1\.15rem\][data-size=default]{height:1.15rem}.data-\[size\=sm\]\:h-3\.5[data-size=sm]{height:.875rem}.data-\[size\=sm\]\:h-8[data-size=sm]{height:2rem}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:11rem}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-4[data-orientation=vertical]{width:1rem}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[size\=default\]\:w-8[data-size=default]{width:2rem}.data-\[size\=sm\]\:w-6[data-size=sm]{width:1.5rem}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:20rem}.data-\[variant\=ghost\]\:max-w-full[data-variant=ghost]{max-width:100%}.data-\[active\=true\]\:translate-y-0[data-active=true]{--tw-translate-y:0px}.data-\[active\=true\]\:translate-y-0[data-active=true],.data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-active=false][data-direction=end]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-active=false][data-direction=end]{--tw-translate-y:100%}.data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-active=false][data-direction=start]{--tw-translate-y:-100%}.data-\[active\=false\]\:scale-95[data-active=false],.data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-active=false][data-direction=start]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=false\]\:scale-95[data-active=false]{--tw-scale-x:.95;--tw-scale-y:.95}.data-\[active\=true\]\:scale-100[data-active=true]{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[clickable\=true\]\:cursor-pointer[data-clickable=true]{cursor:pointer}.data-\[orientation\=horizontal\]\:flex-row[data-orientation=horizontal]{flex-direction:row}.data-\[align\=end\]\:flex-row-reverse[data-align=end]{flex-direction:row-reverse}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal],.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=horizontal\]\:items-start[data-orientation=horizontal]{align-items:flex-start}.data-\[orientation\=vertical\]\:items-stretch[data-orientation=vertical]{align-items:stretch}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[align\=end\]\:self-end[data-align=end]{align-self:flex-end}.data-\[spacing\=0\]\:rounded-none[data-spacing="0"],.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-s-0[data-variant=outline][data-spacing="0"]{border-inline-start-width:0}.data-\[filled\=true\]\:border-solid[data-filled=true]{border-style:solid}.data-\[state\=idle\]\:border-dashed[data-state=idle]{border-style:dashed}.data-\[active\=true\]\:border-primary[data-active=true]{--tw-border-opacity:1;border-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-border-opacity, 1)))}.data-\[dragging\=true\]\:border-ring[data-dragging=true]{--tw-border-opacity:1;border-color:rgba(var(--ring-rgb),calc(var(--ring-alpha, 1)*var(--tw-border-opacity, 1)))}.data-\[filled\=true\]\:border-transparent[data-filled=true]{border-color:transparent}.data-\[state\=error\]\:border-destructive\/30[data-state=error]{border-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.3))}.data-\[status\=error\]\:border-destructive[data-status=error]{--tw-border-opacity:1;border-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-border-opacity, 1)))}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.5))}.data-\[active\=true\]\:bg-primary\/10[data-active=true]{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.1))}.data-\[active\=true\]\:bg-primary\/15[data-active=true]{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.15))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-accent-rgb),calc(var(--sidebar-accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[dragging\=true\]\:bg-accent\/60[data-dragging=true]{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.6))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[selected\=true\]\:bg-primary\/5[data-selected=true]{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.05))}.data-\[state\=active\]\:bg-accent\/30[data-state=active]{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.3))}.data-\[state\=active\]\:bg-background[data-state=active]{--tw-bg-opacity:1;background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[state\=open\]\:bg-accent[data-state=open]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.5))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{--tw-bg-opacity:1;background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[size\=sm\]\:py-1[data-size=sm]{padding-top:.25rem;padding-bottom:.25rem}.data-\[inset\]\:ps-8[data-inset]{padding-inline-start:2rem}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[active\=true\]\:text-primary[data-active=true]{--tw-text-opacity:1;color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[error\=true\]\:text-destructive[data-error=true],.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[selected\=true\]\:text-primary[data-selected=true]{--tw-text-opacity:1;color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[state\=active\]\:text-foreground[data-state=active]{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[status\=error\]\:text-destructive[data-status=error],.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[active\=false\]\:opacity-0[data-active=false]{opacity:0}.data-\[active\=true\]\:opacity-100[data-active=true]{opacity:1}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[uploading\=true\]\:opacity-60[data-uploading=true]{opacity:.6}.data-\[spacing\=0\]\:shadow-none[data-spacing="0"]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[spacing\=default\]\:data-\[variant\=outline\]\:shadow-xs[data-variant=outline][data-spacing=default]{--tw-shadow:var(--elevation-1);--tw-shadow-colored:var(--elevation-1);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[active\=true\]\:ring-1[data-active=true]{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.data-\[active\=true\]\:ring-primary\/40[data-active=true]{--tw-ring-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*0.4))}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[active\=false\]\:ease-\[cubic-bezier\(0\.7\2c 0\2c 0\.84\2c 0\)\][data-active=false]{transition-timing-function:cubic-bezier(.7,0,.84,0)}.data-\[active\=true\]\:ease-\[cubic-bezier\(0\.23\2c 1\2c 0\.32\2c 1\)\][data-active=true]{transition-timing-function:cubic-bezier(.23,1,.32,1)}.\*\:data-\[slot\=input-group\]\:m-1[data-slot=input-group]>*{margin:.25rem}.\*\:data-\[slot\=input-group\]\:mb-0[data-slot=input-group]>*{margin-bottom:0}.\*\:data-\[slot\=input-group\]\:h-8[data-slot=input-group]>*{height:2rem}.\*\:data-\[slot\=input-group\]\:w-auto[data-slot=input-group]>*{width:auto}.\*\:data-\[slot\=attachment\]\:flex-none[data-slot=attachment]>*{flex:none}.\*\:data-\[slot\=attachment\]\:snap-start[data-slot=attachment]>*{scroll-snap-align:start}.\*\:data-\[slot\=bubble-content\]\:rounded-none[data-slot=bubble-content]>*{border-radius:0}.\*\:data-\[slot\=bubble-content\]\:border-border[data-slot=bubble-content]>*{--tw-border-opacity:1;border-color:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*var(--tw-border-opacity, 1)))}.\*\:data-\[slot\=input-group\]\:border-input\/30[data-slot=input-group]>*{border-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.3))}.\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.93_calc\(c\*0\.4\)_h\)\][data-slot=bubble-content]>*{background-color:oklch(from var(--primary) .93 calc(c * .4) h)}.\*\:data-\[slot\=bubble-content\]\:bg-background[data-slot=bubble-content]>*{--tw-bg-opacity:1;background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-bg-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10[data-slot=bubble-content]>*{background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.1))}.\*\:data-\[slot\=bubble-content\]\:bg-muted[data-slot=bubble-content]>*{--tw-bg-opacity:1;background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*var(--tw-bg-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:bg-primary[data-slot=bubble-content]>*{--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:bg-secondary[data-slot=bubble-content]>*{--tw-bg-opacity:1;background-color:rgba(var(--secondary-rgb),calc(var(--secondary-alpha, 1)*var(--tw-bg-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:bg-transparent[data-slot=bubble-content]>*{background-color:transparent}.\*\:data-\[slot\=input-group\]\:bg-input\/30[data-slot=input-group]>*{background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.3))}.\*\:data-\[slot\=bubble-content\]\:p-0[data-slot=bubble-content]>*{padding:0}.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot=alert-description]>*{color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.9))}.\*\:data-\[slot\=bubble-content\]\:text-destructive[data-slot=bubble-content]>*{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:text-foreground[data-slot=bubble-content]>*{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:text-primary-foreground[data-slot=bubble-content]>*{--tw-text-opacity:1;color:rgba(var(--primary-foreground-rgb),calc(var(--primary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\*\:data-\[slot\=bubble-content\]\:text-secondary-foreground[data-slot=bubble-content]>*{--tw-text-opacity:1;color:rgba(var(--secondary-foreground-rgb),calc(var(--secondary-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\*\:data-\[slot\=input-group\]\:shadow-none[data-slot=input-group]>*{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.\*\:data-\[slot\=avatar\]\:ring-2[data-slot=avatar]>*{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.\*\:data-\[slot\=avatar\]\:ring-background[data-slot=avatar]>*{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-ring-opacity, 1)))}.data-\[spacing\=0\]\:first\:rounded-s-md:first-child[data-spacing="0"]{border-start-start-radius:var(--radius-control);border-end-start-radius:var(--radius-control)}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-s:first-child[data-variant=outline][data-spacing="0"]{border-inline-start-width:1px}.data-\[spacing\=0\]\:last\:rounded-e-md:last-child[data-spacing="0"]{border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.data-\[active\=true\]\:hover\:bg-accent:hover[data-active=true]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[clickable\=true\]\:hover\:bg-accent\/50:hover[data-clickable=true]{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.5))}.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-accent-rgb),calc(var(--sidebar-accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.data-\[active\=true\]\:focus\:bg-accent:focus[data-active=true],.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant=destructive]{background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.1))}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:absolute{position:absolute}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width)*-1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width)*-1)}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:end-3{inset-inline-end:.75rem}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:top-3{top:.75rem}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{top:100%}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{margin-top:.375rem}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block{display:block}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:inline{display:inline}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid{display:grid}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:size-2\.5{width:.625rem;height:.625rem}.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:size-3{width:.75rem;height:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:size-2{width:.5rem;height:.5rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:h-9{height:2.25rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:h-fit{height:-moz-fit-content;height:fit-content}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:w-full,.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:w-full{width:100%}.group\/attachment[data-size=sm] .group-data-\[size\=sm\]\/attachment\:w-8{width:2rem}.group\/attachment[data-size=xs] .group-data-\[size\=xs\]\/attachment\:w-7{width:1.75rem}.group\/bottom-nav-bar-item[data-active=true] .group-data-\[active\=true\]\/bottom-nav-bar-item\:max-w-none{max-width:none}.group\/marker[data-variant=separator] .group-data-\[variant\=separator\]\/marker\:flex-none{flex:none}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:flex-col{flex-direction:column}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:justify-start{justify-content:flex-start}.group\/message[data-align=end] .group-data-\[align\=end\]\/message\:justify-end{justify-content:flex-end}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:gap-1{gap:.25rem}.group\/bubble[data-align=end] .group-data-\[align\=end\]\/bubble\:self-end,.group\/message[data-align=end] .group-data-\[align\=end\]\/message\:self-end{align-self:flex-end}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{overflow:hidden}.group\/attachment[data-size=xs] .group-data-\[size\=xs\]\/attachment\:rounded-md{border-radius:var(--radius-control)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{border-radius:var(--radius-control)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{--tw-border-opacity:1;border-color:rgba(var(--sidebar-border-rgb),calc(var(--sidebar-border-alpha, 1)*var(--tw-border-opacity, 1)))}.group\/attachment[data-state=error] .group-data-\[state\=error\]\/attachment\:bg-destructive\/10{background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.1))}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:bg-transparent{background-color:transparent}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{--tw-bg-opacity:1;background-color:rgba(var(--popover-rgb),calc(var(--popover-alpha, 1)*var(--tw-bg-opacity, 1)))}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:px-1{padding-left:.25rem;padding-right:.25rem}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center,.group\/drawer-content[data-vaul-drawer-direction=top] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center,.group\/marker[data-variant=separator] .group-data-\[variant\=separator\]\/marker\:text-center{text-align:center}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:text-xs{font-size:.75rem;line-height:1rem}.group[data-active=true] .group-data-\[active\=true\]\:text-primary{--tw-text-opacity:1;color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-text-opacity, 1)))}.group\/attachment[data-state=error] .group-data-\[state\=error\]\/attachment\:text-destructive{--tw-text-opacity:1;color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*var(--tw-text-opacity, 1)))}.group\/attachment[data-state=error] .group-data-\[state\=error\]\/attachment\:text-destructive\/80{color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.8))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{--tw-text-opacity:1;color:rgba(var(--popover-foreground-rgb),calc(var(--popover-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.group\/bottom-nav-bar-item[data-active=true] .group-data-\[active\=true\]\/bottom-nav-bar-item\:opacity-100{opacity:1}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50,.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50{opacity:.5}.group\/attachment[data-state=done] .group-data-\[state\=done\]\/attachment\:opacity-100,.group\/attachment[data-state=idle] .group-data-\[state\=idle\]\/attachment\:opacity-100{opacity:1}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow-sm{--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{transition-duration:.2s}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:after{content:var(--tw-content);bottom:-5px}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:-end-1:after{content:var(--tw-content);inset-inline-end:-.25rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:after{content:var(--tw-content);height:.125rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:after{content:var(--tw-content);width:.125rem}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-rgb),calc(var(--sidebar-alpha, 1)*var(--tw-bg-opacity, 1)))}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:transparent}.group\/tabs-list[data-variant=default] .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}.dark\:bg-destructive\/60:is(.dark *){background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.6))}.dark\:bg-input\/30:is(.dark *){background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.3))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.dark\:bg-primary\/20:is(.dark *){background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.2))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-muted-foreground:is(.dark *){--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.dark\:checked\:bg-primary:checked:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-bg-opacity, 1)))}.dark\:hover\:bg-input\/50:hover:is(.dark *){background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.5))}.dark\:hover\:text-foreground:hover:is(.dark *){--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){--tw-ring-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*0.4))}.dark\:has-\[\:checked\]\:bg-primary\/10:has(:checked):is(.dark *){background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.1))}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*0.4))}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){--tw-border-opacity:1;border-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*var(--tw-border-opacity, 1)))}.dark\:data-\[active\=true\]\:bg-primary\/15[data-active=true]:is(.dark *){background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.15))}.dark\:data-\[selected\=true\]\:bg-primary\/10[data-selected=true]:is(.dark *){background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.1))}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]:is(.dark *){background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.3))}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.dark\:\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.3_calc\(c\*0\.4\)_h\)\][data-slot=bubble-content]>:is(.dark *){background-color:oklch(from var(--primary) .3 calc(c * .4) h)}.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20[data-slot=bubble-content]>:is(.dark *){background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.2))}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant=destructive]:is(.dark *){background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.2))}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state=active]:is(.dark *){border-color:transparent}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]:is(.dark *){background-color:transparent}@media (min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:table-cell{display:table-cell}.sm\:hidden{display:none}.sm\:w-2\/5{width:40%}.sm\:w-40{width:10rem}.sm\:w-auto{width:auto}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:table-fixed{table-layout:fixed}.sm\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.sm\:grid-flow-col{grid-auto-flow:column}.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\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:whitespace-nowrap{white-space:nowrap}.sm\:p-4{padding:1rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:pe-2\.5{padding-inline-end:.625rem}.sm\:ps-2\.5{padding-inline-start:.625rem}.sm\:text-left{text-align:left}.data-\[size\=default\]\:sm\:max-w-lg[data-size=default]{max-width:32rem}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2{grid-row:span 2/span 2}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start{place-items:start}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left{text-align:left}}@media (min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:w-auto{width:auto}.md\:max-w-44{max-width:11rem}.md\:max-w-sm{max-width:24rem}.md\:flex-none{flex:none}.md\:basis-80{flex-basis:20rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:justify-between{justify-content:space-between}.md\:gap-1\.5{gap:.375rem}.md\:gap-10{gap:2.5rem}.md\:gap-4{gap:1rem}.md\:border-e{border-inline-end-width:1px}.md\:p-12{padding:3rem}.md\:p-4{padding:1rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pe-10{padding-inline-end:2.5rem}.md\:pt-24{padding-top:6rem}.md\:text-start{text-align:start}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ms-0{margin-inline-start:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ms-2{margin-inline-start:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:calc(var(--radius) + 4px)}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow-sm{--tw-shadow:var(--elevation-2);--tw-shadow-colored:var(--elevation-2);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:row-span-2{grid-row:span 2/span 2}.lg\:table-cell{display:table-cell}.lg\:hidden{display:none}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1280px){.xl\:table-cell{display:table-cell}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:p-8{padding:2rem}}.rtl\:-translate-x-px:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-1\/2:where([dir=rtl],[dir=rtl] *){--tw-translate-x:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-px:where([dir=rtl],[dir=rtl] *){--tw-translate-x:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\.up-current\]\:bg-accent\/50.up-current{background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*.5))}.\[\&\.up-current\]\:bg-sidebar-accent.up-current{--tw-bg-opacity:1;background-color:rgba(var(--sidebar-accent-rgb),calc(var(--sidebar-accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.\[\&\.up-current\]\:font-medium.up-current{font-weight:500}.\[\&\.up-current\]\:text-accent-foreground.up-current{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\.up-current\]\:text-sidebar-accent-foreground.up-current{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\.up-current\]\:focus\:bg-accent:focus.up-current,.\[\&\.up-current\]\:hover\:bg-accent:hover.up-current{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:has\(\>li\:focus-within\)\>li\:not\(\:focus-within\)\]\:opacity-40:has(>li:focus-within)>li:not(:focus-within){opacity:.4}.\[\&\:has\(\>li\:hover\)\>li\:not\(\:hover\)\]\:opacity-40:has(>li:hover)>li:not(:hover){opacity:.4}.\[\&\:has\(\>li\:hover\)\>li\:not\(\:hover\)\]\:blur-\[1px\]:has(>li:hover)>li:not(:hover){--tw-blur:blur(1px);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)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pe-0:has([role=checkbox]){padding-inline-end:0}.\[\&\:not\(\:popover-open\)\]\:hidden:not(:popover-open){display:none}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-s-none>:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-s-0>:not(:first-child){border-inline-start-width:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>:not(:first-child){border-top-width:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-e-none>:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.\[\&\>\*\:not\(\[popover\]\)\]\:w-full>:not([popover]){width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\*\]\:data-\[slot\=field\]\:p-4[data-slot=field]>*{padding:1rem}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[color-mix\(in_oklch\2c var\(--muted\)\2c var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklch,var(--muted),var(--foreground) 5%)}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[color-mix\(in_oklch\2c var\(--secondary\)\2c var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.88_calc\(c\*0\.5\)_h\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:oklch(from var(--primary) .88 calc(c * .5) h)}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-destructive\/20>[data-slot=bubble-content]:is(button,a):hover{background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.2))}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-muted>[data-slot=bubble-content]:is(button,a):hover{--tw-bg-opacity:1;background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*var(--tw-bg-opacity, 1)))}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-primary\/80>[data-slot=bubble-content]:is(button,a):hover{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.8))}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:text-foreground>[data-slot=bubble-content]:is(button,a):hover{--tw-text-opacity:1;color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.35_calc\(c\*0\.5\)_h\)\]>[data-slot=bubble-content]:is(button,a):hover:is(.dark *){background-color:oklch(from var(--primary) .35 calc(c * .5) h)}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-destructive\/30>[data-slot=bubble-content]:is(button,a):hover:is(.dark *){background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.3))}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-input\/30>[data-slot=bubble-content]:is(button,a):hover:is(.dark *){background-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*.3))}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\2c a\)\:hover\]\:bg-muted\/50>[data-slot=bubble-content]:is(button,a):hover:is(.dark *){background-color:rgba(var(--muted-rgb),calc(var(--muted-alpha, 1)*.5))}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.\[\&\>\[data-slot\=progress-indicator\]\]\:duration-500>[data-slot=progress-indicator]{transition-duration:.5s}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-e-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-start-end-radius:var(--radius-control);border-end-end-radius:var(--radius-control)}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.data-\[alternate\=true\]\:\[\&\>\[data-slot\=timeline-item\]\:nth-child\(even\)\]\:flex-row-reverse>[data-slot=timeline-item]:nth-child(2n)[data-alternate=true]{flex-direction:row-reverse}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>a\:hover\]\:text-primary>a:hover{--tw-text-opacity:1;color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>button\:disabled\]\:cursor-not-allowed>button:disabled{cursor:not-allowed}.\[\&\>button\:disabled\]\:opacity-40>button:disabled{opacity:.4}.\[\&\>button\:hover\]\:bg-accent>button:hover{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}.\[\&\>button\:hover\]\:text-accent-foreground>button:hover{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\>button\]\:grid>button{display:grid}.\[\&\>button\]\:w-9>button{width:2.25rem}.\[\&\>button\]\:place-items-center>button{place-items:center}.\[\&\>button\]\:rounded-full>button{border-radius:9999px}.\[\&\>button\]\:text-base>button{font-size:1rem;line-height:1.5rem}.\[\&\>button\]\:leading-none>button{line-height:1}.\[\&\>button\]\:text-muted-foreground>button{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\>button\]\:ring-card>button{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--card-rgb),calc(var(--card-alpha, 1)*var(--tw-ring-opacity, 1)))}.\[\&\>button\]\:transition-colors>button{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\>button\]\:hover\:bg-foreground\/10:hover>button{background-color:rgba(var(--foreground-rgb),calc(var(--foreground-alpha, 1)*.1))}.data-\[orientation\=vertical\]\:\[\&\>img-comparison-slider\]\:h-\[400px\]>img-comparison-slider[data-orientation=vertical]{height:400px}.\[\&\>input\:\:-webkit-inner-spin-button\]\:appearance-none>input::-webkit-inner-spin-button,.\[\&\>input\:\:-webkit-outer-spin-button\]\:appearance-none>input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.\[\&\>input\]\:w-12>input{width:3rem}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.\[\&\>input\]\:border-x>input{border-left-width:1px;border-right-width:1px}.\[\&\>input\]\:border-input>input{--tw-border-opacity:1;border-color:rgba(var(--input-rgb),calc(var(--input-alpha, 1)*var(--tw-border-opacity, 1)))}.\[\&\>input\]\:bg-transparent>input{background-color:transparent}.\[\&\>input\]\:text-center>input{text-align:center}.\[\&\>input\]\:text-control>input{font-size:var(--control-text)}.\[\&\>input\]\:outline-none>input{outline:2px solid transparent;outline-offset:2px}.\[\&\>input\]\:\[appearance\:textfield\]>input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>li\]\:transition-\[opacity\2c filter\]>li{transition-property:opacity,filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\>li\]\:duration-300>li{transition-duration:.3s}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:.75rem;height:.75rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{--tw-text-opacity:1;color:rgba(var(--sidebar-accent-foreground-rgb),calc(var(--sidebar-accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden>svg{display:none}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2>svg,.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2>svg{width:.5rem;height:.5rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[aria-orientation\=horizontal\]\>div\]\:rotate-90[aria-orientation=horizontal]>div{--tw-rotate:90deg}.\[\&\[aria-orientation\=horizontal\]\>div\]\:rotate-90[aria-orientation=horizontal]>div,.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg}.\[\&\[hidden\]\]\:hidden[hidden]{display:none}.\[\&_\.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:rgba(var(--border-rgb),calc(var(--border-alpha, 1)*.5))}.\[\&_\.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:transparent}.\[\&_\.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\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&_\[data-chart-tooltip-indicator\]\]\:hidden [data-chart-tooltip-indicator],.\[\&_\[data-chart-tooltip-label\]\]\:hidden [data-chart-tooltip-label]{display:none}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.group\/attachment[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:1.5rem;height:1.5rem}.group\/attachment[data-size=xs] .group-data-\[size\=xs\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){--tw-text-opacity:1;color:rgba(var(--muted-foreground-rgb),calc(var(--muted-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-6 svg{width:1.5rem;height:1.5rem}.\[\&_svg\]\:size-\[22px\] svg{width:22px;height:22px}.\[\&_svg\]\:size-full svg{width:100%;height:100%}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.data-\[direction\=start\]\:\[\&_svg\]\:rotate-180 svg[data-direction=start]{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:data-\[orientation\=horizontal\]\:\[\&_svg\]\:rotate-180 svg[data-orientation=horizontal]:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*.2))}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background{--tw-text-opacity:1;color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*var(--tw-text-opacity, 1)))}[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:is(.dark *){background-color:rgba(var(--background-rgb),calc(var(--background-alpha, 1)*.1))}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}a.\[a\&\]\:hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:rgba(var(--accent-rgb),calc(var(--accent-alpha, 1)*var(--tw-bg-opacity, 1)))}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:rgba(var(--destructive-rgb),calc(var(--destructive-alpha, 1)*.9))}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:rgba(var(--primary-rgb),calc(var(--primary-alpha, 1)*.9))}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:rgba(var(--secondary-rgb),calc(var(--secondary-alpha, 1)*.9))}a.\[a\&\]\:hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:rgba(var(--accent-foreground-rgb),calc(var(--accent-foreground-alpha, 1)*var(--tw-text-opacity, 1)))}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}
/* studio — Obsidian & Champagne Gold (Luxury AI Studio Dark Mode, Flat & Refined).
   Bảng màu tối sang trọng, chuyên nghiệp tạo cảm giác tin cậy cao:
   nền Obsidian sâu (#090a0f), bề mặt Slate/Carbon (#11131a), viền mảnh tinh tế 1px (#222634),
   điểm nhấn Champagne Gold (#e5b869) cho CTA chính, số dư token/credits và gói nổi bật.

   | Vai trò                | Giá trị (Obsidian Studio)   | Token                |
   |------------------------|-----------------------------|----------------------|
   | Application bg         | #090a0f                     | --background         |
   | Card surface           | #11131a                     | --card               |
   | Popover surface        | #141720                     | --popover            |
   | Sidebar surface        | #0c0e14                     | --sidebar            |
   | Sunken / input well    | #0d0f16                     | --surface-sunken     |
   | Primary (Champagne)    | #e5b869                     | --primary            |
   | Ocean Teal             | #38bdf8                     | --teal               |
   | Border                 | #222634                     | --border             |
   | Control border         | #2a2f40                     | --input              | */

:root,
[data-theme="studio"],
.dark,
[data-theme="studio"].dark,
[data-theme="studio"] .dark {
    color-scheme: dark;

    --background: #090a0f;
    --background-rgb: 9, 10, 15;
    --background-alpha: 1;
    --foreground: #f4f4f6;
    --foreground-rgb: 244, 244, 246;
    --foreground-alpha: 1;
    --card: #11131a;
    --card-rgb: 17, 19, 26;
    --card-alpha: 1;
    --card-foreground: #f4f4f6;
    --card-foreground-rgb: 244, 244, 246;
    --card-foreground-alpha: 1;
    --popover: #141720;
    --popover-rgb: 20, 23, 32;
    --popover-alpha: 1;
    --popover-foreground: #f4f4f6;
    --popover-foreground-rgb: 244, 244, 246;
    --popover-foreground-alpha: 1;

    --primary: #e5b869;
    --primary-rgb: 229, 184, 105;
    --primary-alpha: 1;
    --primary-foreground: #090a0f;
    --primary-foreground-rgb: 9, 10, 15;
    --primary-foreground-alpha: 1;
    --secondary: #181b26;
    --secondary-rgb: 24, 27, 38;
    --secondary-alpha: 1;
    --secondary-foreground: #f4f4f6;
    --secondary-foreground-rgb: 244, 244, 246;
    --secondary-foreground-alpha: 1;
    --muted: #161922;
    --muted-rgb: 22, 25, 34;
    --muted-alpha: 1;
    --muted-foreground: #9499ad;
    --muted-foreground-rgb: 148, 153, 173;
    --muted-foreground-alpha: 1;
    --accent: #1d2130;
    --accent-rgb: 29, 33, 48;
    --accent-alpha: 1;
    --accent-foreground: #f4f4f6;
    --accent-foreground-rgb: 244, 244, 246;
    --accent-foreground-alpha: 1;
    --destructive: oklch(0.665 0.192 25);
    --destructive-rgb: 243, 87, 84;
    --destructive-alpha: 1;
    --destructive-foreground: oklch(0.16 0.02 204);
    --destructive-foreground-rgb: 3, 16, 17;
    --destructive-foreground-alpha: 1;
    --success: #34d399;
    --success-foreground: #052014;
    --border: #222634;
    --border-rgb: 34, 38, 52;
    --border-alpha: 1;
    --input: #2a2f40;
    --input-rgb: 42, 47, 64;
    --input-alpha: 1;
    --ring: #e5b869;
    --ring-rgb: 229, 184, 105;
    --ring-alpha: 1;

    --ink: #f4f4f6;
    --ink-foreground: #090a0f;

    --teal: #38bdf8;
    --teal-foreground: #061829;

    --gold: #e5b869;
    --gold-soft: #f3d292;
    --gold-muted: #241e14;
    --gold-border: rgba(229, 184, 105, 0.36);

    --chart-1: oklch(0.78 0.12 80);
    --chart-1-rgb: 224, 174, 87;
    --chart-1-alpha: 1;
    --chart-2: oklch(0.72 0.15 160);
    --chart-2-rgb: 47, 193, 131;
    --chart-2-alpha: 1;
    --chart-3: oklch(0.68 0.14 245);
    --chart-3-rgb: 63, 159, 232;
    --chart-3-alpha: 1;
    --chart-4: oklch(0.72 0.126 196);
    --chart-4-rgb: 0, 188, 190;
    --chart-4-alpha: 1;
    --chart-5: oklch(0.73 0.162 24);
    --chart-5-rgb: 253, 121, 116;
    --chart-5-alpha: 1;

    --sidebar: #0c0e14;
    --sidebar-rgb: 12, 14, 20;
    --sidebar-alpha: 1;
    --sidebar-foreground: #f4f4f6;
    --sidebar-foreground-rgb: 244, 244, 246;
    --sidebar-foreground-alpha: 1;
    --sidebar-primary: #e5b869;
    --sidebar-primary-rgb: 229, 184, 105;
    --sidebar-primary-alpha: 1;
    --sidebar-primary-foreground: #090a0f;
    --sidebar-primary-foreground-rgb: 9, 10, 15;
    --sidebar-primary-foreground-alpha: 1;
    --sidebar-accent: #181b26;
    --sidebar-accent-rgb: 24, 27, 38;
    --sidebar-accent-alpha: 1;
    --sidebar-accent-foreground: #f4f4f6;
    --sidebar-accent-foreground-rgb: 244, 244, 246;
    --sidebar-accent-foreground-alpha: 1;
    --sidebar-border: #1e2230;
    --sidebar-border-rgb: 30, 34, 48;
    --sidebar-border-alpha: 1;
    --sidebar-ring: #e5b869;
    --sidebar-ring-rgb: 229, 184, 105;
    --sidebar-ring-alpha: 1;

    /* Obsidian Studio surfaces & wells */
    --surface-ground: var(--background);
    --surface-sunken: #0d0f16;
    --surface-raised: #171a24;
    --surface-overlay: #1c202c;
    --surface-border: var(--border);

    --pastel-peach: #2c1d19;
    --pastel-lilac: #211d3a;
    --pastel-sky: #1c202e;
    --pastel-mint: #112821;
    --pastel-butter: #292114;
    --pastel-rose: #2d1721;

    /* Tương thích với các lớp trong studio.css / chromatic.css */
    --text-subtle: #7c8298;
    --surface-1: var(--card);
    --surface-2: var(--surface-sunken);
    --surface-3: var(--border);
    --surface-elevated: var(--surface-raised);
    --surface-hover: var(--accent);
    --state-success: #34d399;
    --state-warning: #fbbf24;
    --trend-up: #34d399;
    --trend-down: #f87171;

    /* Hình dạng chuẩn AI Studio chuyên nghiệp (0.75rem card, 0.625rem control) */
    --radius-sm: 0.5rem;
    --radius-control: 0.625rem;
    --radius: 0.75rem;
    --radius-lg: 0.875rem;
    --radius-dialog: 1rem;
    --radius-pill: 999px;
    --control-h: 2.5rem;
    --control-text: 0.875rem;

    /* Spacing 4px base */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;

    /* Không 3D — triệt tiêu hoàn toàn bóng 3D lip */
    --elev-1: none;
    --elev-2: none;
    --elev-3: none;
    --elevation-1: none;
    --elevation-2: none;
    --elevation-3: none;
    --elevation-4: none;

    /* Motion */
    --duration-fast: 120ms;
    --duration-ui: 180ms;
    --duration-slow: 320ms;
    --duration-meter: 900ms;
    --dur-fast: var(--duration-fast);
    --dur: var(--duration-ui);
    --dur-slow: var(--duration-slow);
    --ease-ui: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-spring: cubic-bezier(0.34, 1.36, 0.64, 1);
    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ease: var(--ease-ui);

    /* Typography */
    --font-sans: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-family: var(--font-sans);
}

/* Phần CSS của app theo phong cách Obsidian & Champagne Gold (Luxury AI Studio):
   - Bề mặt tối sâu với viền mảnh tinh tế 1px (--border #222634), không bóng 3D lip, không xoay nghiêng.
   - Hỗ trợ hiệu ứng tải ảnh lưới ô (ImageLoader grid-cell blink & color sampling reveal).
   Nối thẳng vào app.css bởi build-css.cjs. */

/* Đảm bảo thuộc tính HTML [hidden] luôn ẩn phần tử kể cả khi có utility .block / .flex / .inline-flex / .grid */
[hidden]:not([hidden="until-found"]) {
    display: none !important;
}

html { background: var(--background); color: var(--foreground); }

body {
    min-height: 100dvh;
    background: var(--background);
    color: var(--foreground);
    font-family: var(--font-sans);
    font-size: 14px;
    line-height: 1.5;
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection { background: rgba(229, 184, 105, 0.28); color: var(--foreground); }

:where(:focus-visible):not(.outline-hidden):not(.outline-none) { outline: 2px solid var(--ring); outline-offset: 2px; }

/* Thanh cuộn mảnh trên tài liệu, không ghi đè scrollbar-width: none của menu/popover/command-list. */
:where(html, body) { scrollbar-width: thin; scrollbar-color: var(--border) transparent; }

.font-mono, .mono {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum", "zero", "ss01";
}

/* ---- Bề mặt nổi phẳng theo Obsidian Studio (không 3D) ---- */
:where(.glass, .glass-surface) {
    background: var(--card);
    border: 1px solid var(--border);
    box-shadow: none;
}

header.glass {
    background: var(--sidebar);
    border-top: 0;
    border-inline: 0;
    border-bottom: 1px solid var(--sidebar-border);
    border-radius: 0;
}

/* ---- Workspace: canvas + inspector ---- */
.studio-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: calc(100dvh - 3.5rem);
}
@media (min-width: 1024px) {
    .studio-workspace { grid-template-columns: minmax(0, 1fr) 21.25rem; }
}
@media (min-width: 1280px) {
    .studio-workspace { grid-template-columns: minmax(0, 1fr) 22.5rem; }
}

.studio-inspector {
    background: var(--sidebar);
    border-left: 1px solid var(--sidebar-border);
}

/* Desktop: inspector đứng yên dưới header (3.5rem) và có thanh cuộn RIÊNG. Thanh tiêu đề giữ nguyên,
   phần cài đặt cuộn bên trong; overscroll-behavior ngăn cuộn lan ra cả trang khi chạm đáy/đỉnh. */
@media (min-width: 1024px) {
    .studio-inspector {
        position: sticky;
        top: 3.5rem;
        align-self: start;
        height: calc(100dvh - 3.5rem);
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    .studio-inspector > :last-child {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* Mobile: inspector thành bottom sheet; canvas giữ nguyên chỗ. */
@media (max-width: 1023.98px) {
    .studio-inspector {
        position: fixed;
        inset: auto 0 0 0;
        z-index: 40;
        max-height: 78dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-left: 0;
        border-top: 1px solid var(--border);
        border-radius: var(--radius-dialog) var(--radius-dialog) 0 0;
        transform: translateY(105%);
        transition: transform var(--duration-ui) var(--ease-ui);
        padding-bottom: env(safe-area-inset-bottom);
        box-shadow: none;
    }
    .studio-workspace[data-sheet="open"] .studio-inspector { transform: translateY(0); }
    .studio-sheet-scrim {
        position: fixed; inset: 0; z-index: 30;
        background: rgba(9, 10, 15, 0.72);
        opacity: 0; pointer-events: none;
        transition: opacity var(--duration-ui) var(--ease-ui);
    }
    .studio-workspace[data-sheet="open"] .studio-sheet-scrim { opacity: 1; pointer-events: auto; }
}
@media (min-width: 1024px) {
    .studio-sheet-scrim { display: none; }
}
.studio-sticky-action {
    position: sticky; bottom: 0; z-index: 20;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
    background: var(--background);
    border-top: 1px solid var(--border);
}
@media (min-width: 1024px) { .studio-sticky-action.mobile-only { display: none; } }

/* ---- Masonry ---- */
.masonry { column-gap: 0.75rem; columns: 2; }
@media (min-width: 768px)  { .masonry { column-gap: 1rem; columns: 3; } }
@media (min-width: 1280px) { .masonry { columns: 4; } }
.masonry > * { break-inside: avoid; margin-bottom: 0.75rem; }
@media (min-width: 768px)  { .masonry > * { margin-bottom: 1rem; } }

/* ---- Thẻ media: action hiện khi hover/focus ---- */
.media-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius);
    background: var(--card);
    border: 1px solid var(--border);
    box-shadow: none;
}
.media-card img, .media-card svg { display: block; width: 100%; height: auto; }
.media-card .media-actions {
    position: absolute; inset: auto 0.5rem 0.5rem 0.5rem; z-index: 20;
    display: flex; gap: 0.25rem; flex-wrap: wrap;
    opacity: 0; transform: translateY(4px);
    transition: opacity var(--duration-ui) var(--ease-ui), transform var(--duration-ui) var(--ease-ui);
}
.media-card:hover .media-actions,
.media-card:focus-within .media-actions,
.media-card[data-selected="true"] .media-actions { opacity: 1; transform: none; }
@media (hover: none) { .media-card .media-actions { opacity: 1; transform: none; } }
.media-card[data-selected="true"] { outline: 2px solid var(--primary); outline-offset: -2px; }

/* ---- ImageLoader: Hiệu ứng lưới ô nhấp nháy & lấy mẫu màu ảnh (image-loading.tsx) ---- */
@keyframes image-loader-blink {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}

.image-loader {
    position: relative;
    overflow: hidden;
}

.image-loader-grid {
    position: absolute;
    inset: 0;
    z-index: 10;
    pointer-events: none;
    overflow: hidden;
}

.image-loader-cell {
    position: absolute;
    will-change: opacity, background-color, width, height, left, top;
}

.image-loader-cell[data-shape="circle"] {
    border-radius: 9999px;
}

.image-loader-cell[data-shape="square"] {
    border-radius: 2px;
}

.has-js [data-image-loader] > img {
    transition: opacity 300ms ease;
}

.has-js [data-image-loader][data-loader-state="loading"] > img,
.has-js [data-image-loader][data-loader-state="transitioning"] > img,
.has-js [data-image-loader][data-pending="true"] > img {
    opacity: 0;
}

/* ---- Tooltip phẳng ---- */
[data-tip] { position: relative; }
[data-tip]::after {
    content: attr(data-tip);
    position: absolute; bottom: calc(100% + 6px); left: 50%; translate: -50% 0;
    z-index: 30; width: max-content; max-width: 13.75rem; pointer-events: none;
    padding: 0.3rem 0.55rem; border-radius: var(--radius-sm);
    background: var(--surface-overlay); color: var(--foreground);
    border: 1px solid var(--border);
    font-size: 0.75rem; line-height: 1.1; font-weight: 600;
    box-shadow: none;
    opacity: 0; transition: opacity var(--duration-fast) var(--ease-ui);
}
[data-tip]:hover::after,
[data-tip]:focus-visible::after { opacity: 1; }
[data-tip][aria-expanded="true"]::after { display: none; }
/* Nút ở mép trái/phải của thanh không để chú thích tràn ra ngoài khung ảnh. */
[data-tip-edge="start"]::after { left: 0; translate: 0 0; }
[data-tip-edge="end"]::after { left: auto; right: 0; translate: 0 0; }
[data-tip-side="below"]::after { bottom: auto; top: calc(100% + 6px); }

.result-select {
    position: absolute; left: 0.5rem; top: 0.5rem; z-index: 20;
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.75rem; height: 1.75rem; border-radius: var(--radius-sm); cursor: pointer;
    opacity: 0; transition: opacity var(--duration-ui) var(--ease-ui);
}
.media-card:hover .result-select,
.media-card:focus-within .result-select,
.result-select:has(input:checked) { opacity: 1; }
@media (hover: none) { .result-select { opacity: 1; } }
.result-actions { justify-content: center; }
.result-actions .glass { gap: 0.125rem; }

/* ---- Canvas: nền phẳng trung tính + lưới ô SVG ---- */
.canvas-checker {
    background-color: var(--surface-sunken);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23e5b869' fill-opacity='0.04' d='M0 0h8v8H0zM8 8h8v8H8z'/%3E%3C/svg%3E");
    background-size: 16px 16px;
}
.canvas-stage { transform-origin: center; transition: transform var(--duration-ui) var(--ease-ui); }

.compare { position: relative; overflow: hidden; --split: 50%; }
.compare > .compare-after { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--split)); }
.compare > .compare-handle {
    position: absolute; top: 0; bottom: 0; left: var(--split); width: 2px;
    background: var(--primary); transform: translateX(-1px); pointer-events: none;
}
.compare > input[type="range"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; }

/* ---- Skeleton ---- */
.skeleton {
    position: relative;
    overflow: hidden;
    background: var(--surface-sunken);
    border-radius: var(--radius);
    animation: skeleton-pulse 1.6s var(--ease-ui) infinite;
}
.skeleton::after { display: none; }
@keyframes skeleton-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}

/* ---- Tiến trình sinh ảnh ---- */
.gen-progress {
    height: 6px;
    background: var(--surface-sunken);
    overflow: hidden;
    border-radius: var(--radius-pill);
}
.gen-progress > span {
    display: block;
    height: 100%;
    width: 0;
    background: var(--primary);
    border-radius: var(--radius-pill);
    transform-origin: left;
    transition: width var(--duration-ui) linear, transform var(--duration-ui) linear;
}

/* ---- Đang chạy: chỉ báo "máy còn sống" cho job chưa xong ---- */
/* Vệt sáng chạy ngang thanh tiến trình; nền giữ màu primary nên không đổi nghĩa của thanh. */
.running-shimmer {
    position: relative;
    overflow: hidden;
}
.running-shimmer::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 0.45), transparent);
    transform: translateX(-100%);
    animation: running-sheen 1.4s var(--ease-ui) infinite;
}
@keyframes running-sheen {
    to { transform: translateX(100%); }
}

/* Chấm nhịp đặt trước nhãn trạng thái; trạng thái vẫn đọc được bằng chữ, chấm chỉ là phụ. */
.running-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    margin-right: 0.375rem;
    border-radius: 9999px;
    background: var(--primary);
    animation: running-dot-pulse 1.4s ease-in-out infinite;
}
@keyframes running-dot-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.35; transform: scale(0.7); }
}

/* Ô thumbnail chưa có ảnh: nhịp sáng nhẹ thay vì ô xám đứng yên. */
.running-tile {
    animation: skeleton-pulse 1.6s var(--ease-ui) infinite;
}

/* ---- Lọc theo trạng thái ---- */
.chip {
    display: inline-flex; align-items: center; gap: 0.375rem;
    height: 1.5rem; padding: 0 0.625rem;
    border: 1px solid var(--border); border-radius: var(--radius-pill);
    background: var(--surface-sunken);
    color: var(--foreground); font-size: 12px; font-weight: 600; line-height: 1;
}
.chip[data-tone="success"] { background: var(--pastel-mint); color: var(--trend-up); border-color: rgba(52, 211, 153, 0.35); }
.chip[data-tone="warning"] { background: var(--pastel-butter); color: var(--state-warning); border-color: rgba(251, 191, 36, 0.35); }
.chip[data-tone="danger"]  { background: var(--pastel-rose); color: var(--trend-down); border-color: rgba(248, 113, 113, 0.35); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    .skeleton { animation: none !important; }
    .running-shimmer::after, .running-dot, .running-tile { animation: none !important; }
    .ai-pixel-cell, .ai-scanline, .ai-canvas-orb, .ai-canvas-source, .ai-mini-scan { animation: none !important; }
    .image-loader-grid { display: none !important; }
    [data-image-loader] > img { opacity: 1 !important; }
}

/* ---- Tiến bộ dần: overlay "đang sinh" chỉ hiện khi studio.js chạy được và sẽ gỡ nó đi ---- */
[data-pending-overlay] { display: none; }
.has-js [data-pending-overlay] {
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 15;
    background: rgba(9, 10, 15, 0.45);
    animation: none;
}

/* ---- Thư viện: lưới đều thay cho masonry ---- */
.grid-view { columns: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
@media (min-width: 768px)  { .grid-view { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 1280px) { .grid-view { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.grid-view > * { margin-bottom: 0; }
.grid-view .media-card img { aspect-ratio: 1 / 1 !important; object-fit: cover; }

/* ---- Dropzone ---- */
[data-dropzone] { transition: border-color var(--duration-ui) var(--ease-ui), background-color var(--duration-ui) var(--ease-ui); }
[data-dropzone][data-over="true"] { border-color: var(--primary); background: var(--pastel-sky); }

/* ---- Compare ---- */
[data-compare][data-mode="off"] .compare-handle,
[data-compare][data-mode="off"] input[type="range"] { display: none; }

/* ---- Công cụ đang chọn: pill phẳng ---- */
.tool-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem;
    height: 2rem; min-width: 2rem; padding: 0 0.625rem;
    border-radius: var(--radius-control);
    color: var(--muted-foreground); font-size: 12px; font-weight: 600;
    transition: background-color var(--duration-fast) var(--ease-ui), color var(--duration-fast) var(--ease-ui);
}
.tool-btn:hover { background: var(--accent); color: var(--foreground); }
.tool-btn[aria-pressed="true"] { background: var(--primary); color: var(--primary-foreground); }
.tool-btn:disabled { opacity: 0.4; pointer-events: none; }

/* ---- Mask vẽ trên canvas ---- */
.mask-canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; }
.mask-canvas[data-tool="brush"], .mask-canvas[data-tool="erase"] { cursor: crosshair; }

/* ---- Video preview ---- */
.video-progress { height: 6px; background: var(--surface-sunken); border-radius: var(--radius-pill); overflow: hidden; }
.video-progress > span { display: block; height: 100%; width: 0; background: var(--primary); border-radius: var(--radius-pill); }

/* ================= Thang chữ Studio ================= */

.t-display { font-family: var(--font-display); font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 1.05; font-weight: 700; letter-spacing: -0.03em; text-wrap: balance; }
.t-metric { font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 2.75rem); line-height: 1; font-weight: 700; letter-spacing: -0.025em; font-variant-numeric: tabular-nums; }
.t-h1 { font-family: var(--font-display); font-size: 1.625rem; line-height: 2rem; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.t-h2 { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.625rem; font-weight: 700; letter-spacing: -0.015em; text-wrap: balance; }
.t-h3 { font-family: var(--font-display); font-size: 1rem; line-height: 1.375rem; font-weight: 600; letter-spacing: -0.01em; }
.t-card-title { font-family: var(--font-display); font-size: 0.9375rem; line-height: 1.375rem; font-weight: 600; letter-spacing: -0.01em; }
.t-body { font-size: 0.875rem; line-height: 1.375rem; font-weight: 400; }
.t-lead { font-size: 1rem; line-height: 1.5; font-weight: 500; color: var(--muted-foreground); }
.t-label { font-size: 0.8125rem; line-height: 1.125rem; font-weight: 600; letter-spacing: -0.005em; }
.t-caps { font-size: 0.6875rem; line-height: 0.875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.t-helper { font-size: 0.75rem; line-height: 1.0625rem; font-weight: 500; color: var(--muted-foreground); }
.t-meta { font-size: 0.75rem; line-height: 1rem; font-weight: 500; letter-spacing: 0.01em; color: var(--text-subtle); }
.t-num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; font-size: 0.75rem; line-height: 1rem; font-weight: 600; }
@media (min-width: 1024px) { .t-h1 { font-size: 1.875rem; line-height: 2.25rem; } }

/* ---- Scrim dưới thẻ media cho tiêu đề ---- */
.media-scrim {
    position: absolute; inset: auto 0 0 0; z-index: 15;
    padding: 0.625rem 0.75rem;
    background: rgba(9, 10, 15, 0.88);
    color: var(--foreground);
    pointer-events: none;
}

/* ---- Hero phẳng ---- */
.hero-glow { position: relative; isolation: isolate; }
.hero-glow::before { display: none; }

/* ---- Skip link ---- */
.skip-link {
    position: absolute; left: 0.75rem; top: -3rem; z-index: 100;
    padding: 0.625rem 1rem; border-radius: var(--radius-pill);
    font-size: 0.875rem; font-weight: 700;
    background: var(--primary); color: var(--primary-foreground); border: 1px solid var(--gold-soft);
    transition: top var(--duration-fast) var(--ease-ui);
}
.skip-link:focus { top: 0.75rem; }

/* ---- Điều hướng mobile (<768px) ---- */
@media (max-width: 767.98px) {
    [data-slot="sidebar"], [data-slot="sidebar-gap"] { display: none !important; }
    .app-main { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
}

/* ---- Mục tiêu chạm 44px trên thiết bị cảm ứng ---- */
@media (pointer: coarse) {
    [data-slot="button"], .tool-btn, [data-slot="toggle-group-item"], [data-slot="tabs-trigger"] { min-height: 2.75rem; }
    [data-slot="button"][data-size="icon"], .tool-btn { min-width: 2.75rem; }
}

/* ---- Composer gắn đáy canvas ---- */
.composer-dock {
    position: sticky; bottom: 0; z-index: 20; margin-top: auto;
    padding: 0.75rem 1rem 1rem;
    background: var(--background);
    border-top: 1px solid var(--border);
}
@media (min-width: 768px) { .composer-dock { padding: 0.75rem 1.5rem 1.25rem; } }
@media (max-width: 767.98px) {
    .composer-dock, .studio-sticky-action { bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
}

/* Ảnh đang chỉnh sửa (N4b) */
.edit-source { min-width: min(20rem, calc(100vw - 4rem)); }

/* ---- Vòng tiến độ % (ProgressRing của thư viện) trong khung ảnh đang chờ ---- */
[data-gen-ring] {
    background: rgba(17, 19, 26, 0.94);
    border: 1px solid rgba(229, 184, 105, 0.38);
    border-radius: 999px;
    padding: 0.5rem;
    box-shadow: 0 0 28px rgba(229, 184, 105, 0.18);
}
[data-gen-ring] circle:nth-of-type(2) { transition: stroke-dashoffset var(--duration-meter) var(--ease-ui); }
[data-gen-ring] [data-slot="progress-ring-label"] { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--foreground); }

/* ---- AI Diffusion Canvas (khung sinh ảnh/video động) ---- */
.ai-canvas {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(229, 184, 105, 0.35);
    background: radial-gradient(circle at 50% 35%, #161926 0%, #0b0d14 100%);
    isolation: isolate;
}

.ai-canvas-backdrop {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
}

.ai-canvas-source {
    position: absolute;
    inset: -12%;
    width: 124%;
    height: 124%;
    object-fit: cover;
    filter: blur(28px) saturate(1.4) brightness(0.42);
    transform: scale(1.06);
    animation: ai-source-breathe 5.5s ease-in-out infinite alternate;
}

@keyframes ai-source-breathe {
    0%   { transform: scale(1.04) rotate(-0.5deg); filter: blur(30px) saturate(1.25) brightness(0.38); }
    100% { transform: scale(1.12) rotate(0.5deg);  filter: blur(22px) saturate(1.55) brightness(0.48); }
}

.ai-canvas-orb {
    position: absolute;
    border-radius: 9999px;
    filter: blur(42px);
    pointer-events: none;
    opacity: 0.65;
}
.ai-canvas-orb-1 {
    width: 15rem;
    height: 15rem;
    left: -3rem;
    top: -3rem;
    background: radial-gradient(circle, rgba(229, 184, 105, 0.34) 0%, transparent 70%);
    animation: ai-orb-drift-1 7s ease-in-out infinite alternate;
}
.ai-canvas-orb-2 {
    width: 16rem;
    height: 16rem;
    right: -3.5rem;
    bottom: -3.5rem;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.24) 0%, rgba(244, 114, 182, 0.16) 45%, transparent 72%);
    animation: ai-orb-drift-2 8.5s ease-in-out infinite alternate;
}

@keyframes ai-orb-drift-1 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(3.5rem, 2.5rem) scale(1.22); }
}
@keyframes ai-orb-drift-2 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-3.5rem, -2rem) scale(1.18); }
}

.ai-pixel-grid {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(0, 1fr));
    gap: 4px;
    padding: 8px;
    z-index: 2;
}

.ai-pixel-cell {
    border-radius: 6px;
    background: rgba(229, 184, 105, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.03);
    animation: ai-cell-shimmer 2.4s ease-in-out infinite;
    animation-delay: var(--cell-delay, 0ms);
}
.ai-pixel-cell[data-tone="1"] {
    background: rgba(56, 189, 248, 0.06);
}
.ai-pixel-cell[data-tone="2"] {
    background: rgba(244, 114, 182, 0.06);
}

@keyframes ai-cell-shimmer {
    0%, 100% {
        opacity: 0.22;
        transform: scale(0.96);
    }
    50% {
        opacity: 0.92;
        transform: scale(1);
        background: rgba(229, 184, 105, 0.18);
        border-color: rgba(229, 184, 105, 0.28);
    }
}

.ai-scanline {
    position: absolute;
    inset-inline: 0;
    height: 32%;
    z-index: 3;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(229, 184, 105, 0.08) 44%,
        rgba(229, 184, 105, 0.45) 50%,
        rgba(56, 189, 248, 0.12) 56%,
        transparent 100%
    );
    animation: ai-scan-sweep 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes ai-scan-sweep {
    0%   { top: -32%; opacity: 0; }
    15%  { opacity: 1; }
    85%  { opacity: 1; }
    100% { top: 100%; opacity: 0; }
}

.ai-canvas-hud {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 17rem;
    height: 100%;
    padding: 1.5rem;
    gap: 0.875rem;
    background: radial-gradient(circle at 50% 50%, rgba(9, 10, 15, 0.72) 0%, rgba(9, 10, 15, 0.28) 75%);
}

.ai-step-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.35rem 0.85rem;
    border-radius: var(--radius-pill);
    background: rgba(17, 19, 26, 0.92);
    border: 1px solid rgba(229, 184, 105, 0.35);
    color: var(--foreground);
    font-size: 0.8125rem;
    font-weight: 600;
}

/* ---- Mini AI Tile trong JobCard (/jobs) ---- */
.ai-mini-tile {
    border-color: rgba(229, 184, 105, 0.42) !important;
    background: radial-gradient(circle at 50% 35%, #191d2c 0%, #0d0f17 100%) !important;
}
.ai-mini-source {
    position: absolute;
    inset: -10%;
    width: 120%;
    height: 120%;
    object-fit: cover;
    filter: blur(8px) brightness(0.45) saturate(1.3);
}
.ai-mini-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(to right, rgba(229, 184, 105, 0.12) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(229, 184, 105, 0.12) 1px, transparent 1px);
    background-size: 10px 10px;
    opacity: 0.7;
}
.ai-mini-scan {
    position: absolute;
    inset-inline: 0;
    height: 45%;
    background: linear-gradient(180deg, transparent, rgba(229, 184, 105, 0.38), transparent);
    animation: ai-scan-sweep 2.2s linear infinite;
}

/* ---- Interactive Spotlight & Ambient Glow (Credits, Subscription & Studio Cards) ---- */
[data-spotlight-card] {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
[data-spotlight-card]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 250ms var(--ease-ui);
    background: radial-gradient(
        360px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
        rgba(229, 184, 105, 0.13),
        transparent 70%
    );
}
[data-spotlight-card]:hover::before {
    opacity: 1;
}

.credit-wallet-glow {
    pointer-events: none;
    position: absolute;
    right: -3rem;
    top: -3.5rem;
    width: 14rem;
    height: 14rem;
    border-radius: 9999px;
    background: radial-gradient(circle, rgba(229, 184, 105, 0.22) 0%, rgba(56, 189, 248, 0.08) 50%, transparent 72%);
    filter: blur(28px);
    z-index: 0;
}

.package-featured-glow {
    pointer-events: none;
    position: absolute;
    inset: -20% -10% auto -10%;
    height: 65%;
    background: radial-gradient(ellipse at 50% 0%, rgba(229, 184, 105, 0.24) 0%, rgba(244, 114, 182, 0.10) 48%, transparent 75%);
    filter: blur(26px);
    z-index: 0;
}

/* Lớp component theo phong cách Obsidian & Champagne Gold (Luxury AI Studio):
   - Bảng màu tối sang trọng (#090a0f / #11131a / #0d0f16), viền mảnh tinh tế 1px (#222634 / #2a2f40),
     bo góc chuẩn Studio (0.625rem cho button/input/select/textarea, 0.75rem cho card, 1rem cho dialog),
     và chữ SemiBold (Plus Jakarta Sans 600/700) hiện đại, đáng tin cậy.
   - Điểm nhấn Champagne Gold (#e5b869) cho CTA chính, trạng thái chọn và khu vực Token / Credits. */

/* ---- Màu theo tính năng ---- */
[data-feature="image"]      { --feature: var(--primary); --feature-rgb: 229, 184, 105; }
[data-feature="edit"]       { --feature: var(--primary); --feature-rgb: 229, 184, 105; }
[data-feature="video"]      { --feature: #e5b869;        --feature-rgb: 229, 184, 105; }
[data-feature="characters"] { --feature: var(--primary); --feature-rgb: 229, 184, 105; }
[data-feature="story"]      { --feature: #fbbf24;        --feature-rgb: 251, 191, 36; }
[data-feature] { --ring: var(--feature); }

.gen-progress > span { background: var(--feature, var(--primary)); }
.media-card[data-selected="true"] { outline-color: var(--feature, var(--primary)); }

/* ---- Quy tắc phẳng (Không 3D): triệt tiêu toàn bộ box-shadow mặc định và 3D lip ---- */
[data-slot="card"],
[data-slot="button"],
[data-slot="input"],
[data-slot="input-group"],
[data-slot="textarea"],
[data-slot="select-trigger"],
[data-slot="combobox-trigger"],
[data-slot="select-content"],
[data-slot="popover-content"],
[data-slot="dropdown-menu-content"],
[data-slot="combobox-content"],
[data-slot="dialog-content"],
[data-slot="sheet-content"],
[data-slot="switch"],
[data-slot="switch-thumb"],
[data-slot="slider-thumb"],
[data-slot="tabs-trigger"],
[data-slot="toggle-group-item"],
[data-slot="alert"],
[data-slot="badge"],
up-modal-box,
up-drawer-box,
up-popup,
.toastify {
    box-shadow: none !important;
}

/* ---- Nút theo Obsidian Studio (bo góc 0.625rem, font-weight 600 tinh tế) ---- */
[data-slot="button"],
[data-slot="dialog-trigger"],
[data-slot="alert-dialog-trigger"] {
    border-radius: 0.625rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background-color var(--duration-fast) var(--ease-ui),
                border-color var(--duration-fast) var(--ease-ui),
                color var(--duration-fast) var(--ease-ui),
                filter var(--duration-fast) var(--ease-ui);
}

[data-slot="button"][data-size="xs"]:not([data-variant="link"]):not(.sr-only) {
    min-height: 1.85rem;
    padding: 0.25rem 0.65rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    gap: 0.35rem;
}

[data-slot="button"][data-size="sm"]:not([data-variant="link"]):not(.sr-only),
[data-slot="dialog-trigger"][data-size="sm"]:not([data-variant="link"]):not(.sr-only),
[data-slot="alert-dialog-trigger"][data-size="sm"]:not([data-variant="link"]):not(.sr-only) {
    min-height: 2.2rem;
    height: auto;
    padding: 0.35rem 0.85rem;
    border-radius: 0.55rem;
    font-size: 0.8125rem;
    gap: 0.375rem;
}

[data-slot="button"][data-size="default"]:not([data-variant="link"]):not(.sr-only) {
    min-height: 2.5rem;
    height: auto;
    padding: 0.5rem 1.1rem;
}

[data-slot="button"][data-size="lg"]:not([data-variant="link"]):not(.sr-only) {
    min-height: 2.85rem;
    height: auto;
    padding: 0.6rem 1.35rem;
    border-radius: 0.75rem;
    font-size: 0.9375rem;
    gap: 0.5rem;
}

[data-slot="button"][data-size="icon"] {
    width: 2.375rem;
    height: 2.375rem;
    min-height: 2.375rem;
    padding: 0;
    border-radius: 0.625rem;
}

[data-slot="button"][data-size="icon-sm"] {
    width: 2rem;
    height: 2rem;
    min-height: 2rem;
    padding: 0;
    border-radius: 0.5rem;
}

[data-slot="button"][data-size="icon-xs"] {
    width: 1.625rem;
    height: 1.625rem;
    min-height: 1.625rem;
    padding: 0;
    border-radius: 0.45rem;
}

:is(:root, .dark) [data-slot="button"]:not([data-variant]),
:is(:root, .dark) [data-slot="button"][data-variant="default"],
:is(:root, .dark) [data-slot="button"][data-variant="primary"],
:is(:root, .dark) [data-slot="dialog-trigger"].bg-primary,
:is(:root, .dark) [data-slot="alert-dialog-trigger"].bg-primary {
    background: linear-gradient(180deg, #edd08d 0%, #e5b869 100%);
    color: #090a0f;
    border: 1px solid #f3d292;
    box-shadow: none;
}

:is(:root, .dark) [data-slot="button"]:not([data-variant]):not(:disabled):hover,
:is(:root, .dark) [data-slot="button"][data-variant="default"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="button"][data-variant="primary"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="dialog-trigger"].bg-primary:not(:disabled):hover,
:is(:root, .dark) [data-slot="alert-dialog-trigger"].bg-primary:not(:disabled):hover {
    background: linear-gradient(180deg, #f5dca0 0%, #ecc377 100%);
    border-color: #fae3b4;
    color: #090a0f;
}

:is(:root, .dark) [data-slot="button"][ data-variant="outline"],
:is(:root, .dark) [data-slot="button"][data-variant="secondary"],
:is(:root, .dark) [data-slot="dialog-trigger"].border:not(.bg-primary),
:is(:root, .dark) [data-slot="alert-dialog-trigger"].border:not(.bg-primary) {
    background: #161922;
    color: var(--foreground);
    border: 1px solid var(--input);
    box-shadow: none;
}

:is(:root, .dark) [data-slot="button"][data-variant="outline"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="button"][data-variant="secondary"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="dialog-trigger"].border:not(.bg-primary):not(:disabled):hover,
:is(:root, .dark) [data-slot="alert-dialog-trigger"].border:not(.bg-primary):not(:disabled):hover {
    background: #1d2130;
    border-color: rgba(229, 184, 105, 0.55);
    color: var(--foreground);
}

:is(:root, .dark) [data-slot="button"][data-variant="ghost"] {
    border: 1px solid transparent;
    background: transparent;
    color: var(--muted-foreground);
    box-shadow: none;
}

:is(:root, .dark) [data-slot="button"][data-variant="ghost"]:not(:disabled):hover {
    background: var(--accent);
    color: var(--foreground);
}

:is(:root, .dark) [data-slot="button"][data-variant="link"],
:is(:root, .dark) [data-slot="dialog-trigger"][data-variant="link"] {
    background: transparent;
    border: 0;
    color: var(--primary);
    box-shadow: none;
}

:is(:root, .dark) [data-slot="button"][data-variant="link"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="dialog-trigger"][data-variant="link"]:not(:disabled):hover {
    background: transparent;
    color: var(--gold-soft);
    text-decoration: underline;
}

[data-slot="button"].p-0,
[data-slot="dialog-trigger"].p-0 {
    padding: 0 !important;
}

[data-slot="button"].h-auto,
[data-slot="dialog-trigger"].h-auto {
    min-height: 0 !important;
    height: auto !important;
}

:is(:root, .dark) [data-slot="button"][data-variant="destructive"] {
    background: #dc2626;
    color: #ffffff;
    border: 1px solid #ef4444;
    box-shadow: none;
}

:is(:root, .dark) [data-slot="button"][data-variant="destructive"]:not(:disabled):hover {
    background: #ef4444;
    border-color: #f87171;
}

/* Nút công cụ đang bật (aria-pressed="true", ví dụ Tô vùng / Tẩy trên /app/edit) */
:is(:root, .dark) [data-slot="button"][aria-pressed="true"],
:is(:root, .dark) [data-slot="button"][aria-pressed="true"]:not(:disabled):hover {
    background: var(--primary) !important;
    color: #090a0f !important;
    border-color: var(--gold-soft) !important;
}

/* Nút bị khoá (:disabled): nền chìm tinh tế */
:is(:root, .dark) [data-slot="button"]:disabled,
:is(:root, .dark) [data-slot="button"][aria-disabled="true"] {
    background: #151821 !important;
    color: #63687a !important;
    border-color: #202432 !important;
    opacity: 1 !important;
    cursor: not-allowed;
}

/* ---- Input / Select / Combobox / Textarea theo Obsidian Studio ---- */
:is(:root, .dark) [data-slot="input"],
:is(:root, .dark) [data-slot="input-group"],
:is(:root, .dark) [data-slot="native-select"],
:is(:root, .dark) [data-slot="select-trigger"],
:is(:root, .dark) [data-slot="combobox-trigger"],
:is(:root, .dark) [data-slot="combobox-chips"] {
    border-radius: 0.625rem;
    background: var(--surface-sunken);
    border: 1px solid var(--input);
    color: var(--foreground);
    font-weight: 500;
}

:is(:root, .dark) [data-slot="select-trigger"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="combobox-trigger"]:not(:disabled):hover,
:is(:root, .dark) [data-slot="native-select"]:not(:disabled):hover {
    background: #141722;
    border-color: rgba(229, 184, 105, 0.5);
    color: var(--foreground);
}

[data-slot="input"]:not(.pr-10),
[data-slot="select-trigger"],
[data-slot="combobox-trigger"] {
    padding-inline: 0.875rem;
}

[data-slot="input"].pr-10 {
    padding-inline: 0.875rem 2.5rem;
}

:is(:root, .dark) [data-slot="input-group-control"] {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    padding-inline: 0.75rem 0.5rem;
    color: var(--foreground);
}

:is(:root, .dark) [data-slot="textarea"] {
    border-radius: 0.625rem;
    padding: 0.75rem 0.875rem;
    background: var(--surface-sunken);
    border: 1px solid var(--input);
    color: var(--foreground);
    font-weight: 500;
}

:is(:root, .dark) [data-slot="input"]:focus-visible,
:is(:root, .dark) [data-slot="input-group"]:focus-within,
:is(:root, .dark) [data-slot="select-trigger"]:focus-visible,
:is(:root, .dark) [data-slot="combobox-trigger"]:focus-visible,
:is(:root, .dark) [data-slot="textarea"]:focus-visible {
    border-color: var(--ring);
    outline: 2px solid var(--ring);
    outline-offset: 2px;
}

:is(:root, .dark) [data-slot="combobox-content"] > [data-slot="input-group"]:focus-within {
    border-color: var(--ring);
    outline: none;
}

/* ---- Checkbox / Radio / Switch / Slider ---- */
:is(:root, .dark) [data-slot="checkbox"],
:is(:root, .dark) [data-slot="radio-group-item"] {
    width: 1.125rem;
    height: 1.125rem;
    background: var(--surface-sunken);
    border: 1px solid var(--input);
}

:is(:root, .dark) [data-slot="checkbox"] {
    border-radius: 0.3rem;
}

:is(:root, .dark) [data-slot="checkbox"]:checked,
:is(:root, .dark) [data-slot="checkbox"]:indeterminate,
:is(:root, .dark) [data-slot="radio-group-item"]:checked {
    background: var(--primary) !important;
    border-color: var(--gold-soft) !important;
    color: #090a0f !important;
}

:is(:root, .dark) [data-slot="switch"]:not(:checked) {
    background: var(--surface-sunken);
    border: 1px solid var(--input);
}

:is(:root, .dark) [data-slot="switch"]:checked {
    background: var(--primary);
    border: 1px solid var(--gold-soft);
}

input[type="range"][data-slot="slider"]::-webkit-slider-runnable-track {
    height: 0.4rem;
    border-radius: 9999px;
    background: linear-gradient(to right,
        var(--primary) 0 var(--slider-fill, 30%),
        var(--surface-sunken) var(--slider-fill, 30%) 100%);
    border: 1px solid var(--input);
}

input[type="range"][data-slot="slider"]::-moz-range-track {
    height: 0.4rem;
    border-radius: 9999px;
    background: linear-gradient(to right,
        var(--primary) 0 var(--slider-fill, 30%),
        var(--surface-sunken) var(--slider-fill, 30%) 100%);
    border: 1px solid var(--input);
}

input[type="range"][data-slot="slider"]::-webkit-slider-thumb,
input[type="range"][data-slot="slider-input"]::-webkit-slider-thumb {
    width: 1.05rem;
    height: 1.05rem;
    margin-top: -0.35rem;
    border-radius: 9999px;
    border: 2px solid var(--primary);
    background: #f4f4f6;
    box-shadow: none !important;
}

input[type="range"][data-slot="slider"]::-moz-range-thumb,
input[type="range"][data-slot="slider-input"]::-moz-range-thumb {
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 9999px;
    border: 2px solid var(--primary);
    background: #f4f4f6;
    box-shadow: none !important;
}

input[type="range"][data-slot="slider"].w-28:not([data-mask-tools] *) {
    inline-size: 7rem;
    width: 7rem;
}

/* Thanh công cụ vẽ vùng [data-mask-tools] trên /app/edit và /app/undress: ẩn mặc định (attr `hidden`
   trong markup), studio.js mở khi có ảnh. `:not([hidden])` là bắt buộc — quy tắc tác giả luôn thắng
   kiểu mặc định `[hidden] { display: none }` của trình duyệt, thiếu nó thanh công cụ lộ cả khi chưa có ảnh. */
.has-js [data-mask-tools]:not([hidden]) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

/* ---- FileUpload (đồng bộ Obsidian Studio dropzone) ---- */
[data-slot="file-upload-zone"] {
    border-radius: 0.75rem;
    border: 1px dashed var(--input);
    background: var(--surface-sunken);
    color: var(--foreground);
    transition: border-color var(--duration-ui) var(--ease-ui), background-color var(--duration-ui) var(--ease-ui);
}

[data-slot="file-upload-zone"]:hover,
[data-slot="file-upload-zone"][data-dragging="true"] {
    border-color: var(--primary);
    background: var(--pastel-sky);
}

[data-slot="file-upload-zone"][data-filled="true"] {
    border-style: solid;
    border-color: var(--border);
    background: var(--surface-sunken);
}

[data-slot="file-upload-empty"] {
    padding: 1rem;
    gap: 0.375rem;
}

/* Khi chưa có ảnh: ẩn hẳn khung preview rỗng và nút xoá để không chiếm chỗ của dòng hướng dẫn */
[data-slot="file-upload-zone"]:not([data-filled="true"]) [data-slot="file-upload-preview"],
[data-slot="file-upload-zone"][data-filled="true"] [data-slot="file-upload-empty"],
[data-slot="file-upload-zone"]:not([data-filled="true"]) [data-slot="file-upload-clear"] {
    display: none !important;
}

/* ---- Hero & Display Headline Highlight ---- */
.aurora { position: relative; background: transparent; isolation: isolate; }
.aurora::before, .aurora::after, .aurora > .aurora-cyan { display: none; }

.text-gradient {
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: var(--primary);
}

/* ---- Prompt composer ---- */
.composer {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 0.5rem;
    box-shadow: none;
    transition: border-color var(--duration-ui) var(--ease-ui);
}
.composer:focus-within {
    border-color: var(--feature, var(--primary));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--feature, var(--primary)) 22%, transparent);
}

/* ---- Bento card / Feature card / Tile (0.75rem radius, 1px border, không 3D) ---- */
[data-slot="card"],
.panel {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: none;
}

[data-slot="badge"] {
    border-radius: 999px;
    padding: 0.1875rem 0.625rem;
    font-weight: 600;
}

.feature-card, .tile {
    position: relative; display: block; overflow: hidden;
    border-radius: var(--radius-lg); padding: 1.25rem;
    background: var(--card); border: 1px solid var(--border);
    box-shadow: none;
    transition: background-color var(--duration-ui) var(--ease-ui), border-color var(--duration-ui) var(--ease-ui);
}
.tile { padding: 0; }
.feature-card::after { display: none; }
.feature-card:hover, .tile:hover {
    background: #151822;
    border-color: rgba(229, 184, 105, 0.55);
    transform: none;
    box-shadow: none;
}
.feature-card-teal {
    background: var(--teal);
    color: #061829;
    border-color: #38bdf8;
    border-radius: var(--radius-lg);
}
.feature-icon {
    display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center;
    border-radius: 0.65rem;
    color: var(--feature, var(--primary));
    background: rgba(229, 184, 105, 0.10);
    border: 1px solid rgba(229, 184, 105, 0.25);
}

.trend-pill {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.625rem; border-radius: var(--radius-pill);
    font-family: var(--font-mono); font-variant-numeric: tabular-nums;
    font-size: 0.75rem; font-weight: 600;
}
.trend-pill[data-trend="up"]   { background: var(--pastel-mint); color: var(--trend-up); border: 1px solid rgba(52, 211, 153, 0.35); }
.trend-pill[data-trend="down"] { background: var(--pastel-rose); color: var(--trend-down); border: 1px solid rgba(248, 113, 113, 0.35); }

/* ---- Sidebar & Top bar theo Obsidian Studio ---- */
[data-slot="sidebar"],
[data-slot="sidebar-inner"] {
    background: var(--sidebar);
    border-right: 1px solid var(--sidebar-border);
}

[data-slot="sidebar-group-label"] {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted-foreground);
}

[data-slot="sidebar-menu-button"] {
    border-radius: 0.625rem;
    height: 2.35rem;
    font-size: 0.875rem;
    font-weight: 500;
    border: 1px solid transparent;
}
[data-slot="sidebar-menu-button"] > svg { color: var(--item-color, var(--muted-foreground)); }
[data-slot="sidebar-menu-button"]:hover {
    background: var(--sidebar-accent);
    color: var(--foreground);
}
[data-slot="sidebar-menu-button"][data-active="true"],
[data-slot="sidebar-menu-button"].up-current {
    background: rgba(229, 184, 105, 0.10);
    color: var(--primary);
    border-color: rgba(229, 184, 105, 0.28);
    font-weight: 600;
    box-shadow: none !important;
}
[data-slot="sidebar-menu-button"][data-active="true"] > svg,
[data-slot="sidebar-menu-button"].up-current > svg {
    color: var(--primary);
}

/* ---- Luxury Token / Credit Badges & Cards ---- */
.credit-badge {
    background: linear-gradient(135deg, rgba(229, 184, 105, 0.12) 0%, rgba(22, 25, 34, 0.95) 100%);
    color: var(--foreground);
    border: 1px solid rgba(229, 184, 105, 0.32);
    border-radius: 0.65rem;
    box-shadow: none;
    font-weight: 600;
    transition: border-color var(--duration-fast) var(--ease-ui), background-color var(--duration-fast) var(--ease-ui);
}
.credit-badge:hover {
    border-color: rgba(229, 184, 105, 0.6);
    background: linear-gradient(135deg, rgba(229, 184, 105, 0.18) 0%, rgba(28, 32, 44, 0.98) 100%);
}
.credit-badge .text-muted-foreground {
    color: var(--muted-foreground);
}
.credit-badge svg {
    color: var(--primary);
}
.credit-badge .mono {
    color: var(--primary);
    font-weight: 600;
}

.credit-wallet-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(229, 184, 105, 0.09) 0%, rgba(17, 19, 26, 0.98) 52%, rgba(17, 19, 26, 1) 100%);
    border: 1px solid rgba(229, 184, 105, 0.28);
    border-radius: var(--radius-lg);
}

.package-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: border-color var(--duration-ui) var(--ease-ui), background-color var(--duration-ui) var(--ease-ui), transform var(--duration-ui) var(--ease-ui), box-shadow var(--duration-ui) var(--ease-ui);
}
.package-card:hover {
    border-color: rgba(229, 184, 105, 0.48);
    background: #141720;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px -10px rgba(0, 0, 0, 0.55);
}
.package-card-featured {
    background: linear-gradient(180deg, rgba(229, 184, 105, 0.11) 0%, rgba(17, 19, 26, 1) 46%);
    border-color: rgba(229, 184, 105, 0.62);
    box-shadow: 0 0 24px -6px rgba(229, 184, 105, 0.18);
}
.package-card-featured:hover {
    border-color: var(--primary);
    background: linear-gradient(180deg, rgba(229, 184, 105, 0.16) 0%, rgba(20, 23, 32, 1) 50%);
    transform: translateY(-3px);
    box-shadow: 0 16px 32px -8px rgba(229, 184, 105, 0.25);
}

.job-card-interactive {
    transition: border-color var(--duration-ui) var(--ease-ui), background-color var(--duration-ui) var(--ease-ui), transform var(--duration-ui) var(--ease-ui);
}
.job-card-interactive:hover {
    border-color: rgba(229, 184, 105, 0.45);
    transform: translateY(-1px);
}

.package-popular-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius-pill);
    background: rgba(229, 184, 105, 0.15);
    color: var(--gold-soft);
    border: 1px solid rgba(229, 184, 105, 0.38);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.trust-pill {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.75rem 0.875rem;
    border-radius: var(--radius);
    background: rgba(13, 15, 22, 0.75);
    border: 1px solid var(--border);
}

/* ---- Top bar command trigger & Command Palette ---- */
[data-command-open] {
    border-radius: 0.625rem;
    border: 1px solid var(--input);
    background: var(--surface-sunken);
    color: var(--muted-foreground);
    font-weight: 500;
}

[data-command-open]:hover {
    background: #141722;
    border-color: rgba(229, 184, 105, 0.45);
    color: var(--foreground);
}

[data-slot="command-dialog"] > [data-slot="command"] {
    background: var(--popover);
    color: var(--popover-foreground);
    border: 1px solid var(--input);
    border-radius: var(--radius-dialog);
    box-shadow: none !important;
}

[data-slot="command-input-wrapper"] {
    height: 3.25rem;
    padding-inline: 1rem;
    border-bottom: 1px solid var(--border);
    background: var(--popover);
}

[data-slot="command-input"],
[data-slot="command-input"]:focus,
[data-slot="command-input"]:focus-visible {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding-inline: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    color: var(--foreground);
    font-weight: 500;
}

[data-slot="command-list"] {
    padding: 0.375rem;
    max-height: 22rem;
}

[data-slot="command-group-heading"] {
    padding: 0.375rem 0.75rem;
    color: var(--muted-foreground);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

[data-slot="command-item"],
[data-slot="dropdown-menu-item"],
[data-slot="select-item"],
[data-slot="combobox-item"] {
    border-radius: 0.5rem;
    font-weight: 500;
    border: 1px solid transparent;
    outline: none !important;
}

[data-slot="command-item"] {
    padding: 0.5rem 0.75rem;
}

[data-slot="command-item"][data-selected="true"],
[data-slot="command-item"][aria-selected="true"],
[data-slot="command-item"]:hover,
[data-slot="dropdown-menu-item"]:hover,
[data-slot="dropdown-menu-item"]:focus-visible,
[data-slot="select-item"][data-selected="true"],
[data-slot="select-item"]:hover,
[data-slot="combobox-item"][data-highlighted],
[data-slot="combobox-item"][data-selected="true"],
[data-slot="combobox-item"]:hover {
    background: #1d2130;
    color: var(--foreground);
    border-color: rgba(229, 184, 105, 0.28);
}

[data-slot="command-item"][data-selected="true"] > svg,
[data-slot="command-item"][aria-selected="true"] > svg,
[data-slot="command-item"]:hover > svg {
    color: var(--primary);
}

/* ---- Dropdown / Popover / Select / Command Content ---- */
[data-slot="popover-content"],
[data-slot="dropdown-menu-content"],
[data-slot="select-content"],
[data-slot="combobox-content"] {
    background: var(--popover);
    color: var(--popover-foreground);
    border: 1px solid var(--input);
    border-radius: var(--radius);
    box-shadow: none !important;
}

/* ---- Dialog ---- */
dialog[data-slot="dialog"] { overflow: visible; max-height: 100dvh; }
dialog[data-slot="dialog"] > [data-slot="dialog-content"],
[data-slot="alert-dialog-content"] {
    background: var(--popover);
    color: var(--popover-foreground);
    border: 1px solid var(--input);
    border-radius: var(--radius-dialog);
    padding: 1.5rem;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: none !important;
}
dialog::backdrop {
    background: rgba(9, 10, 15, 0.72);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

/* ---- Thanh công cụ nổi (editor) & Toast & Kbd ---- */
.floating-toolbar {
    background: var(--card);
    color: var(--foreground);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 0.25rem;
    box-shadow: none;
}

.studio-toast {
    background: var(--popover);
    color: var(--foreground);
    border: 1px solid var(--input);
    border-radius: var(--radius);
    box-shadow: none;
}

[data-slot="kbd-group"] {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

kbd:not([data-slot="kbd-group"]),
[data-slot="kbd"] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    background: var(--surface-sunken);
    color: var(--muted-foreground);
    border-radius: 0.375rem;
    border: 1px solid var(--border);
    padding: 0.1rem 0.375rem;
    box-shadow: none;
}

[data-slot="button"]:not([data-variant]) [data-slot="kbd"],
[data-slot="button"][data-variant="default"] [data-slot="kbd"],
[data-slot="button"][data-variant="primary"] [data-slot="kbd"] {
    background: rgba(9, 10, 15, 0.18);
    color: var(--primary-foreground);
    border-color: rgba(9, 10, 15, 0.32);
}

/* ---- Bỏ bóng/nhấc thẻ ở mọi nơi ---- */
.media-card, .media-card:hover { box-shadow: none; transform: none; }
.media-card:hover { border-color: var(--primary); }

/* ---- Thẻ lựa chọn (model, camera, FieldLabel có Field con) ---- */
.pick-card,
:is(:root, .dark) [data-slot="field-label"]:has(> [data-slot="field"]) {
    display: block; cursor: pointer; padding: 0.625rem 0.75rem; border-radius: var(--radius);
    background: #0e1017; border: 1px solid var(--border);
    box-shadow: none;
    transition: background-color var(--duration-fast) var(--ease-ui), border-color var(--duration-fast) var(--ease-ui);
}
:is(:root, .dark) [data-slot="field-label"]:has(> [data-slot="field"]) > [data-slot="field"] {
    padding: 0;
}
/* `display: block` ở trên đứng sau preflight `[hidden] { display: none }` cùng độ ưu tiên nên thắng: thẻ của Kiểu khác vẫn hiện. */
.pick-card[hidden],
[data-tier-kind][hidden],
[data-style-group][hidden],
[data-garment-consent][hidden] { display: none !important; }
.pick-card:hover,
:is(:root, .dark) [data-slot="field-label"]:has(> [data-slot="field"]):hover {
    background: #151822;
    border-color: color-mix(in oklab, var(--primary) 50%, var(--border));
}
.pick-card:has(input:checked),
:is(:root, .dark) [data-slot="field-label"]:has(> [data-slot="field"]):has(:checked) {
    border-color: var(--feature, var(--primary));
    background: color-mix(in oklab, var(--feature, var(--primary)) 12%, #131620);
    box-shadow: 0 0 0 1px var(--feature, var(--primary));
}
.pick-card:has(input:focus-visible),
:is(:root, .dark) [data-slot="field-label"]:has(> [data-slot="field"]):has(input:focus-visible) {
    outline: 2px solid var(--feature, var(--primary));
    outline-offset: 2px;
}

/* ---- Segmented control / Toggle group / Tabs ----
   KHÔNG đặt display: inline-flex ở đây để không ghi đè class="grid grid-cols-3 / grid-cols-5" trên trang Tạo ảnh & Chỉnh sửa. */
[data-slot="toggle-group"][data-spacing="0"],
[data-slot="tabs-list"] {
    gap: 0.25rem;
    padding: 0.25rem;
    background: var(--surface-sunken);
    border-radius: 0.625rem;
    border: 1px solid var(--border);
}
[data-slot="toggle-group"]:not([data-spacing="0"]) {
    gap: 0.375rem;
    padding: 0;
    background: transparent;
    border: 0;
}
:is(:root, .dark) [data-slot="toggle-group-item"],
:is(:root, .dark) [data-slot="tabs-trigger"] {
    border: 0;
    border-radius: 0.45rem !important;
    padding-inline: 0.65rem;
    min-width: 2.25rem;
    min-height: 2rem;
    margin: 0;
    position: relative;
    background: transparent;
    color: var(--muted-foreground);
    font-weight: 600;
    transition: background-color var(--duration-fast) var(--ease-ui), color var(--duration-fast) var(--ease-ui), border-color var(--duration-fast) var(--ease-ui);
}
:is(:root, .dark) [data-slot="toggle-group"]:not([data-spacing="0"]) [data-slot="toggle-group-item"] {
    background: var(--surface-sunken);
    border: 1px solid var(--input);
    padding-inline: 0.85rem;
}
:is(:root, .dark) [data-slot="toggle-group-item"]:hover,
:is(:root, .dark) [data-slot="tabs-trigger"]:hover {
    color: var(--foreground);
}
:is(:root, .dark) [data-slot="toggle-group"]:not([data-spacing="0"]) [data-slot="toggle-group-item"]:hover {
    background: #151822;
    border-color: rgba(229, 184, 105, 0.5);
}
:is(:root, .dark) [data-slot="toggle-group-item"]:has(input:checked),
:is(:root, .dark) [data-slot="toggle-group-item"][data-state="on"],
:is(:root, .dark) [data-slot="tabs-trigger"][data-state="active"],
:is(:root, .dark) [data-slot="tabs-trigger"][aria-selected="true"] {
    background: var(--primary) !important;
    color: #090a0f !important;
    border-color: transparent !important;
    z-index: 1;
}
:is(:root, .dark) [data-feature] [data-slot="toggle-group-item"]:has(input:checked),
:is(:root, .dark) [data-feature] [data-slot="toggle-group-item"][data-state="on"],
:is(:root, .dark) [data-feature] [data-slot="tabs-trigger"][data-state="active"],
:is(:root, .dark) [data-feature] [data-slot="tabs-trigger"][aria-selected="true"] {
    background: var(--feature, var(--primary)) !important;
    color: #090a0f !important;
    border-color: transparent !important;
}

/* Icon trong thanh action của thẻ media: rule `.media-card svg` của studio.css chỉ dành cho ảnh. */
.media-card svg { width: 1rem; height: 1rem; display: inline-block; }

/* Nút công cụ của editor */
.tool-btn[aria-pressed="true"] { background: var(--primary); color: var(--primary-foreground); }
.tool-btn:not([aria-pressed="true"]):hover { background: var(--accent); color: var(--foreground); }

/* ---- Kích thước & khoảng cách chuẩn (:where để không ghi đè utility gap-0 / py-0 / p-2 trên component) ---- */
:where([data-slot="card"]) { --card-spacing: 1.25rem; }
:where([data-slot="card"][data-size="sm"]) { --card-spacing: 1rem; }
:where([data-slot="card-header"]) { gap: 0.25rem; }
:where([data-slot="field"], [data-slot="form-item"]) { gap: 0.375rem; }
:where([data-slot="dialog-content"]) { gap: 0.75rem; }
:where([data-slot="sidebar-group"]) { padding: 0.5rem; }
.feature-card { padding: 1.25rem; }
[data-slot="alert"] {
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface-sunken);
    box-shadow: none;
}

/* Textarea trong composer & các phần tử .outline-hidden / .outline-none: không vẽ viền focus nội bộ */
.composer textarea,
.composer [data-slot="textarea"],
.composer textarea:focus,
.composer textarea:focus-visible,
.composer [data-slot="textarea"]:focus,
.composer [data-slot="textarea"]:focus-visible {
    background: transparent !important;
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
}

.outline-hidden,
.outline-hidden:focus,
.outline-hidden:focus-visible,
.outline-none,
.outline-none:focus,
.outline-none:focus-visible,
[data-slot="input-group-control"]:focus,
[data-slot="input-group-control"]:focus-visible {
    outline: none !important;
}

.sr-only:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border-width: 0 !important;
}
